diff --git a/.github/scripts/test-no-error-reports.sh b/.github/scripts/test-no-error-reports.sh new file mode 100644 index 00000000..e3876606 --- /dev/null +++ b/.github/scripts/test-no-error-reports.sh @@ -0,0 +1,27 @@ +if [[ -d "run/crash-reports" ]]; then + echo "Crash reports detected:" + cat $directory/* + exit 1 +fi + +if grep --quiet "Fatal errors were detected" server.log; then + echo "Fatal errors detected:" + cat server.log + exit 1 +fi + +if grep --quiet "The state engine was in incorrect state ERRORED and forced into state SERVER_STOPPED" server.log; then + echo "Server force stopped:" + cat server.log + exit 1 +fi + +if grep --quiet 'Done .+ For help, type "help" or "?"' server.log; then + echo "Server didn't finish startup:" + cat server.log + exit 1 +fi + +echo "No crash reports detected" +exit 0 + diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml new file mode 100644 index 00000000..08df9fe8 --- /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.5 minutes + run: | + mkdir run + echo "eula=true" > run/eula.txt + timeout 90 ./gradlew runServer | tee --append server.log || true + + - name: Test no errors reported during server run + run: | + chmod +x .github/scripts/test-no-error-reports.sh + .github/scripts/test-no-error-reports.sh diff --git a/.github/workflows/release-tags.yml b/.github/workflows/release-tags.yml new file mode 100644 index 00000000..96d37f7d --- /dev/null +++ b/.github/workflows/release-tags.yml @@ -0,0 +1,61 @@ +# 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 + + - name: Set repository owner and name + run: | + echo "REPOSITORY_OWNER=${GITHUB_REPOSITORY%/*}" >> $GITHUB_ENV + echo "REPOSITORY_NAME=${GITHUB_REPOSITORY#*/}" >> $GITHUB_ENV + + - name: Publish package + run: ./gradlew publish + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ARTIFACT_GROUP_ID: com.github.${{ env.REPOSITORY_OWNER }} + ARTIFACT_ID: "${{ env.REPOSITORY_NAME }}" + ARTIFACT_VERSION: "${{ env.RELEASE_VERSION }}" + REPOSITORY_NAME: "${{ env.REPOSITORY_NAME }}" + REPOSITORY_OWNER: "${{ env.REPOSITORY_OWNER }}" + diff --git a/.gitignore b/.gitignore index 8262f3e5..75c41f65 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,31 @@ -.classpath .gradle -.idea -.project .settings -bin -build -eclipse -out +/.idea/ +/run/ +/build/ +/eclipse/ +.classpath +.project +/bin/ +/config/ +/crash-reports/ +/logs/ +options.txt +/saves/ +usernamecache.json +banned-ips.json +banned-players.json +eula.txt +ops.json +server.properties +servers.dat +usercache.json +whitelist.json +/out/ *.iml *.ipr *.iws +src/main/resources/mixins.*.json *.bat +*.DS_Store +!gradlew.bat diff --git a/build.gradle b/build.gradle index 3330220b..e0288ec2 100644 --- a/build.gradle +++ b/build.gradle @@ -1,40 +1,59 @@ +//version: 29197fa3cf1ea6ef5c07884a613171d01c026d1d +/* +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 -import java.util.Properties -import groovy.util.ConfigSlurper buildscript { repositories { - mavenCentral() maven { - name = "gregtech forge mirror" - url = "https://gregtech.overminddl1.com" + name = "forge" + url = "https://maven.minecraftforge.net" + } + maven { + name = "sonatype" + url = "https://oss.sonatype.org/content/repositories/snapshots/" } maven { - name = "jitpack.io" + name = "Scala CI dependencies" + url = "https://repo1.maven.org/maven2/" + } + maven { + name = "jitpack" url = "https://jitpack.io" } } dependencies { - classpath("com.github.GTNH2:ForgeGradle:FG_1.2-SNAPSHOT") { - changing = true - } + classpath 'com.github.GTNewHorizons:ForgeGradle:1.2.4' } } +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: 'java' -apply plugin: 'idea' -apply plugin: 'signing' -file "build.properties" withReader { - def prop = new Properties() - prop.load(it) - ext.config = new ConfigSlurper().parse prop -} +def projectJavaVersion = JavaLanguageVersion.of(8) -version = "${config.avaritia.version}" -group = "fox.spiteful.avaritia" -archivesBaseName = "Avaritia" +java { + toolchain { + languageVersion.set(projectJavaVersion) + } +} idea { module { @@ -44,116 +63,500 @@ idea { } } -sourceCompatibility = JavaVersion.VERSION_1_8 -targetCompatibility = JavaVersion.VERSION_1_8 +if(JavaVersion.current() != JavaVersion.VERSION_1_8) { + throw new GradleException("This project requires Java 8, but it's running on " + JavaVersion.current()) +} -minecraft { - version = "${config.minecraft.version}-${config.forge.version}-${config.minecraft.version}" - runDir = "eclipse" +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) } -idea { - module { - inheritOutputDirs = true - downloadJavadoc = true - downloadSources = true +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) } } -configurations { - all { - resolutionStrategy.cacheChangingModulesFor(0, TimeUnit.SECONDS) - setTransitive(false) +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 = minecraftVersion + "-" + forgeVersion + "-" + minecraftVersion + runDir = "run" + + 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 + } } - provided - embedded - compile.extendsFrom provided, embedded +} + +if(file("addon.gradle").exists()) { + apply from: "addon.gradle" +} + +apply from: 'repositories.gradle' + +configurations { + implementation.extendsFrom(shadowImplementation) } repositories { maven { - name = "Chickenbones Maven" - url = "https://chickenbones.net/maven/" + name = "Overmind forge repo mirror" + url = "https://gregtech.overminddl1.com/" } - maven { - name = "Jared Maven" - url = "https://maven.blamejared.com/" + if(usesMixins.toBoolean()) { + maven { + name = "sponge" + url = "https://repo.spongepowered.org/repository/maven-public" + } + maven { + url = "https://jitpack.io" + } } - maven { - name = "Player IC2 Maven" - url = "https://maven.ic2.player.to/" +} + +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") } - maven { - name = "DVS1 Maven" - url = "https://dvs1.progwml6.com/files/maven" +} + +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" +} + +""" } - maven { - name = "MC Mod Dev Maven" - url = "https://maven.mcmoddev.com/" +} + +task relocateShadowJar(type: ConfigureShadowRelocation) { + target = tasks.shadowJar + prefix = modGroup + ".shadow" +} + +shadowJar { + manifest { + attributes(getManifestAttributes()) } - maven { - name = "CurseForge Maven" - url = "https://www.cursemaven.com/" - content { - includeGroup "curse.maven" + + minimize() // This will only allow shading for actually used classes + configurations = [project.configurations.shadowImplementation] + dependsOn(relocateShadowJar) +} + +jar { + 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" + ] } } - ivy { - name = "GTNH" - artifactPattern "http://downloads.gtnewhorizons.com/Mods_for_Jenkins/[module]-[revision](-[classifier]).[ext]" +} + +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) } -dependencies { - provided "codechicken:CodeChickenLib:${config.minecraft.version}-${config.codechickenlib.version}:dev" - provided "codechicken:CodeChickenCore:${config.minecraft.version}-${config.codechickencore.version}:dev" - provided "codechicken:NotEnoughItems:${config.minecraft.version}-${config.nei.version}:dev" - provided "MineTweaker3:ZenScript:${config.minetweaker3.version}" - provided "MineTweaker3:MineTweaker3-API:${config.minetweaker3.version}" - provided "net.sengir.forestry:forestry_${config.minecraft.version}:${config.forestry.version}:dev" - provided "mantle:Mantle:${config.minecraft.version}-${config.mantle.version}:deobf" - provided "tconstruct:TConstruct:${config.minecraft.version}-${config.tconstruct.version}:deobf" - provided "com.azanor:Baubles:${config.minecraft.version}-${config.baubles.version}" - provided "com.azanor:Thaumcraft:${config.minecraft.version}-${config.thaumcraft.version}:deobf" - provided "curse.maven:cofh-core-69162:${config.cofhcore.fileid}" - provided ":BloodMagic:${config.minecraft.version}-${config.bloodmagic.version}:deobf" - provided ":witchery:${config.minecraft.version}-${config.witchery.version}:deobf" - compile fileTree(dir: 'libs', include: '*.jar') +tasks.withType(JavaExec).configureEach { + javaLauncher.set( + javaToolchains.launcherFor { + languageVersion = projectJavaVersion + } + ) } -processResources { - inputs.property "version", project.version - inputs.property "mcversion", project.minecraft.version +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] + } - from(sourceSets.main.resources.srcDirs) { - include 'mcmod.info' - expand 'version':project.version, 'mcversion':project.minecraft.version + if(accessTransformersFile) { + manifestAttributes += ["FMLAT" : accessTransformersFile.toString()] } - from(sourceSets.main.resources.srcDirs) { - exclude 'mcmod.info' + 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) { + from sourceSets.main.output + getArchiveClassifier().set("dev") + + manifest { + attributes(getManifestAttributes()) } + + minimize() // This will only allow shading for actually used classes + configurations = [project.configurations.shadowImplementation] +} + +task relocateShadowDevJar(type: ConfigureShadowRelocation) { + target = tasks.shadowDevJar + prefix = modGroup + ".shadow" +} + +task circularResolverJar(type: Jar) { + dependsOn(relocateShadowDevJar) + dependsOn(shadowDevJar) + enabled = false } -task deobfJar(type: Jar) { +task devJar(type: Jar) { from sourceSets.main.output - classifier = 'deobf' + 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') } -deobfJar.dependsOn classes -assemble.dependsOn deobfJar +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" + } + } + } +} -task signJar(dependsOn: 'reobf'){ +// Updating +task updateBuildScript { 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 - ) - } -} \ No newline at end of file + 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 00000000..9bc758a1 --- /dev/null +++ b/dependencies.gradle @@ -0,0 +1,47 @@ +// Add your dependencies here + +dependencies { + compileOnly("com.github.GTNewHorizons:ForestryMC:master-SNAPSHOT:api") { + transitive = false + } + compileOnly("com.github.GTNewHorizons:Botania:master-SNAPSHOT:dev") { + transitive = false + } + compileOnly("com.github.GTNewHorizons:CodeChickenLib:master-SNAPSHOT:dev") { + transitive = false + } + compileOnly("com.github.GTNewHorizons:CodeChickenCore:master-SNAPSHOT:dev") { + transitive = false + } + compileOnly("com.github.GTNewHorizons:Mantle:master-SNAPSHOT:dev") { + transitive = false + } + compileOnly("com.github.GTNewHorizons:NotEnoughItems:master-SNAPSHOT:dev") { + transitive = false + } + compileOnly("com.github.GTNewHorizons:TinkersConstruct:master-SNAPSHOT:dev") { + transitive = false + } + compileOnly("com.github.GTNewHorizons:BloodMagic:master-SNAPSHOT:dev") { + transitive = false + } + compileOnly("com.github.GTNewHorizons:CraftTweaker:master-SNAPSHOT:dev") { + transitive = false + } + compileOnly("com.github.GTNewHorizons:ZenScript:master-SNAPSHOT") { + transitive = false + } + + compileOnly("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev") { + transitive = false + } + compileOnly("curse.maven:cofh-lib-220333:2388748") { + transitive = false + } + compileOnly("curse.maven:cofh-core-69162:2388751") { + transitive = false + } + compileOnly("curse.maven:witchery-69673:2234410") { + transitive = false + } +} diff --git a/gradle.properties b/gradle.properties index 04bb111a..3fac724a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,64 @@ -systemProp.org.gradle.internal.http.connectionTimeout=120000 -systemProp.org.gradle.internal.http.socketTimeout=120000 \ No newline at end of file +modName = Avaritia + +# This is a case-sensitive string to identify your mod. Convention is to use lower case. +modId = Avaritia + +modGroup = fox.spiteful.avaritia + +# 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 = +gradleTokenModId = +gradleTokenModName = +gradleTokenVersion = +gradleTokenGroupName = + +# 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 'shadowImplementation' 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 99340b4a..5c2d1cf0 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 4c463175..3ab0b725 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ 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-5.6.4-bin.zip diff --git a/gradlew b/gradlew index cccdd3d5..83f2acfd 100644 --- a/gradlew +++ b/gradlew @@ -1,5 +1,21 @@ #!/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. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ 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="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -109,8 +125,8 @@ 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"` diff --git a/gradlew.bat b/gradlew.bat index f9553162..9618d8d9 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 @@ -14,7 +30,7 @@ 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= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome diff --git a/jitpack.yml b/jitpack.yml new file mode 100644 index 00000000..09bbb514 --- /dev/null +++ b/jitpack.yml @@ -0,0 +1,2 @@ +before_install: + - ./gradlew setupCIWorkspace \ No newline at end of file diff --git a/libs/Botania-r1.8-249-deobf.jar b/libs/Botania-r1.8-249-deobf.jar deleted file mode 100644 index 95a29207..00000000 Binary files a/libs/Botania-r1.8-249-deobf.jar and /dev/null differ diff --git a/libs/ForbiddenMagic-1.7.10-0.575-deobf.jar b/libs/ForbiddenMagic-1.7.10-0.575-deobf.jar deleted file mode 100644 index cae0e676..00000000 Binary files a/libs/ForbiddenMagic-1.7.10-0.575-deobf.jar and /dev/null differ diff --git a/repositories.gradle b/repositories.gradle new file mode 100644 index 00000000..f717fc3a --- /dev/null +++ b/repositories.gradle @@ -0,0 +1,10 @@ +// Add any additional repositories for your dependencies here + +repositories { + maven { + url "https://cursemaven.com" + } + maven { + url = "https://jitpack.io" + } +} diff --git a/src/api/java/forestry/api/apiculture/BeeManager.java b/src/api/java/forestry/api/apiculture/BeeManager.java deleted file mode 100644 index 80b03a46..00000000 --- a/src/api/java/forestry/api/apiculture/BeeManager.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import java.util.ArrayList; -import java.util.HashMap; - -import net.minecraft.item.ItemStack; -/** - * - * Some miscellaneous lists and settings for bees. - * - * @author SirSengir - */ -public class BeeManager { - - /** - * 0 - Common Village Bees 1 - Uncommon Village Bees (20 % of spawns) - */ - public static ArrayList[] villageBees; - - /** - * List of items that can induce swarming. Integer denotes x in 1000 chance. - */ - public static HashMap inducers = new HashMap(); - - /** - * Convenient access to AlleleManager.alleleRegistry.getSpeciesRoot("rootBees") - */ - public static IBeeRoot beeRoot; - - /** - * Used to create new bees. - */ - public static IBeeFactory beeFactory; - - /** - * Used to create new bee mutations. - */ - public static IBeeMutationFactory beeMutationFactory; - - /** - * Used to get Forestry's jubilance implementations. - */ - public static IJubilanceFactory jubilanceFactory; -} diff --git a/src/api/java/forestry/api/apiculture/EnumBeeChromosome.java b/src/api/java/forestry/api/apiculture/EnumBeeChromosome.java deleted file mode 100644 index 165247ef..00000000 --- a/src/api/java/forestry/api/apiculture/EnumBeeChromosome.java +++ /dev/null @@ -1,102 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IAlleleArea; -import forestry.api.genetics.IAlleleBoolean; -import forestry.api.genetics.IAlleleFloat; -import forestry.api.genetics.IAlleleFlowers; -import forestry.api.genetics.IAlleleInteger; -import forestry.api.genetics.IAlleleTolerance; -import forestry.api.genetics.IChromosomeType; -import forestry.api.genetics.ISpeciesRoot; - -/** - * Enum representing the order of chromosomes in a bee's genome and what they control. - * - * @author SirSengir - */ -public enum EnumBeeChromosome implements IChromosomeType { - /** - * Species of the bee. Alleles here must implement {@link IAlleleBeeSpecies}. - */ - SPECIES(IAlleleBeeSpecies.class), - /** - * (Production) Speed of the bee. - */ - SPEED(IAlleleFloat.class), - /** - * Lifespan of the bee. - */ - LIFESPAN(IAlleleInteger.class), - /** - * Fertility of the bee. Determines number of offspring. - */ - FERTILITY(IAlleleInteger.class), - /** - * Temperature difference to its native supported one the bee can tolerate. - */ - TEMPERATURE_TOLERANCE(IAlleleTolerance.class), - /** - * Slightly incorrectly named. If true, a naturally dirunal bee can work during the night. If true, a naturally nocturnal bee can work during the day. - */ - NOCTURNAL(IAlleleBoolean.class), - /** - * Not used / superseded by fixed values for the species. Probably going to be replaced with a boolean for FIRE_RESIST. - */ - @Deprecated - HUMIDITY(IAllele.class), - /** - * Humidity difference to its native supported one the bee can tolerate. - */ - HUMIDITY_TOLERANCE(IAlleleTolerance.class), - /** - * If true the bee can work during rain. - */ - TOLERANT_FLYER(IAlleleBoolean.class), - /** - * If true, the bee can work without a clear view of the sky. - */ - CAVE_DWELLING(IAlleleBoolean.class), - /** - * Contains the supported flower provider. - */ - FLOWER_PROVIDER(IAlleleFlowers.class), - /** - * Determines pollination speed. - */ - FLOWERING(IAlleleInteger.class), - /** - * Determines the size of the bee's territory. - */ - TERRITORY(IAlleleArea.class), - /** - * Determines the bee's effect. - */ - EFFECT(IAlleleBeeEffect.class); - - Class clss; - - EnumBeeChromosome(Class clss) { - this.clss = clss; - } - - @Override - public Class getAlleleClass() { - return clss; - } - - @Override - public String getName() { - return this.toString().toLowerCase(); - } - - @Override - public ISpeciesRoot getSpeciesRoot() { - return BeeManager.beeRoot; - } -} diff --git a/src/api/java/forestry/api/apiculture/EnumBeeType.java b/src/api/java/forestry/api/apiculture/EnumBeeType.java deleted file mode 100644 index e3e45c2b..00000000 --- a/src/api/java/forestry/api/apiculture/EnumBeeType.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import java.util.Locale; - -public enum EnumBeeType { - DRONE, PRINCESS, QUEEN, LARVAE, NONE; - - public static final EnumBeeType[] VALUES = values(); - - String name; - - private EnumBeeType() { - this.name = this.toString().toLowerCase(Locale.ENGLISH); - } - - public String getName() { - return name; - } -} diff --git a/src/api/java/forestry/api/apiculture/FlowerManager.java b/src/api/java/forestry/api/apiculture/FlowerManager.java deleted file mode 100644 index 667b4489..00000000 --- a/src/api/java/forestry/api/apiculture/FlowerManager.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import java.util.ArrayList; - -import net.minecraft.item.ItemStack; - -import forestry.api.genetics.IFlowerProvider; -import forestry.api.genetics.IFlowerRegistry; - -public class FlowerManager { - /** - * ItemStacks representing simple flower blocks. Meta-sensitive, processed by the basic {@link IFlowerProvider}. - * - * @deprecated since Forestry 3.4. Use {@link #IFlowerRegistry.registerPlantableFlower(ItemStack flower, double weight, String... flowerTypes)} instead. - *
e.g. FlowerManager.flowerRegister.registerPlantableFlower(new ItemStack(Blocks.red_flower), 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow);
- */ - @Deprecated - public static ArrayList plainFlowers = new ArrayList(); - - /** - *
e.g. FlowerManager.flowerRegister.registerPlantableFlower(new ItemStack(Blocks.red_flower), 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow);
- */ - public static IFlowerRegistry flowerRegistry; - - public static final String FlowerTypeVanilla = "flowersVanilla"; - public static final String FlowerTypeNether = "flowersNether"; - public static final String FlowerTypeCacti = "flowersCacti"; - public static final String FlowerTypeMushrooms = "flowersMushrooms"; - public static final String FlowerTypeEnd = "flowersEnd"; - public static final String FlowerTypeJungle = "flowersJungle"; - public static final String FlowerTypeSnow = "flowersSnow"; - public static final String FlowerTypeWheat = "flowersWheat"; - public static final String FlowerTypeGourd = "flowersGourd"; -} diff --git a/src/api/java/forestry/api/apiculture/IAlleleBeeEffect.java b/src/api/java/forestry/api/apiculture/IAlleleBeeEffect.java deleted file mode 100644 index b2dddb31..00000000 --- a/src/api/java/forestry/api/apiculture/IAlleleBeeEffect.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import forestry.api.genetics.IAlleleEffect; -import forestry.api.genetics.IEffectData; - -public interface IAlleleBeeEffect extends IAlleleEffect { - - /** - * Called by apiaries to cause an effect in the world. - * - * @param genome - * Genome of the bee queen causing this effect - * @param storedData - * Object containing the stored effect data for the apiary/hive the bee is in. - * @param housing {@link IBeeHousing} the bee currently resides in. - * @return storedData, may have been manipulated. - */ - IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing); - - /** - * Is called to produce bee effects. - * - * @param genome - * @param storedData - * Object containing the stored effect data for the apiary/hive the bee is in. - * @param housing {@link IBeeHousing} the bee currently resides in. - * @return storedData, may have been manipulated. - */ - IEffectData doFX(IBeeGenome genome, IEffectData storedData, IBeeHousing housing); - -} diff --git a/src/api/java/forestry/api/apiculture/IAlleleBeeSpecies.java b/src/api/java/forestry/api/apiculture/IAlleleBeeSpecies.java deleted file mode 100644 index 86346639..00000000 --- a/src/api/java/forestry/api/apiculture/IAlleleBeeSpecies.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import java.util.Map; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import forestry.api.genetics.IAlleleSpecies; - -public interface IAlleleBeeSpecies extends IAlleleSpecies { - - /** - * @return the IBeeRoot - */ - IBeeRoot getRoot(); - - /** - * @return true if this species is only active at night. - */ - boolean isNocturnal(); - - /** - * @return Map of possible products with the chance for drop each bee cycle. (0 - 1] - */ - Map getProductChances(); - - /** - * @return Map of possible specialities with the chance for drop each bee cycle. (0 - 1] - */ - Map getSpecialtyChances(); - - /** - * Only jubilant bees produce specialities. - * @return true if the bee is jubilant, false otherwise. - */ - boolean isJubilant(IBeeGenome genome, IBeeHousing housing); - - @SideOnly(Side.CLIENT) - IIcon getIcon(EnumBeeType type, int renderPass); - - /** - * @deprecated since Forestry 3.6. - * @return Path of the texture to use for entity rendering. - */ - @Deprecated - String getEntityTexture(); - - /** - * @deprecated Since Forestry 3.6 use getProductChances() - * @return Map of possible products with the chance for drop each bee cycle. (0 - 100) - */ - @Deprecated - Map getProducts(); - - /** - * @deprecated Since Forestry 3.6 use getSpecialtyChances() - * @return Map of possible specialities with the chance for drop each bee cycle. (0 - 100) - */ - @Deprecated - Map getSpecialty(); -} diff --git a/src/api/java/forestry/api/apiculture/IAlleleBeeSpeciesCustom.java b/src/api/java/forestry/api/apiculture/IAlleleBeeSpeciesCustom.java deleted file mode 100644 index 06664b2f..00000000 --- a/src/api/java/forestry/api/apiculture/IAlleleBeeSpeciesCustom.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import net.minecraft.item.ItemStack; - -import forestry.api.genetics.IAlleleSpeciesCustom; - -public interface IAlleleBeeSpeciesCustom extends IAlleleBeeSpecies, IAlleleSpeciesCustom { - - /** - * Add a product for this bee species. - * Chance is between 0 and 1. - */ - IAlleleBeeSpeciesCustom addProduct(ItemStack product, Float chance); - - /** - * Add a specialty product for this bee species. - * Bees only produce their specialty when they are Jubilant (see IJubilanceProvider) - * Chance is between 0 and 1. - */ - IAlleleBeeSpeciesCustom addSpecialty(ItemStack specialty, Float chance); - - /** - * Set the Jubilance Provider for this bee species. - * Bees only produce their specialty when they are Jubilant (see IJubilanceProvider) - */ - IAlleleBeeSpeciesCustom setJubilanceProvider(IJubilanceProvider provider); - - /** - * Make this species only active at night. - */ - IAlleleBeeSpeciesCustom setNocturnal(); - - /** Use this if you have custom icons for bees. */ - IAlleleBeeSpeciesCustom setCustomBeeIconProvider(IBeeIconProvider beeIconProvider); -} diff --git a/src/api/java/forestry/api/apiculture/IAlvearyComponent.java b/src/api/java/forestry/api/apiculture/IAlvearyComponent.java deleted file mode 100644 index 80cf98b1..00000000 --- a/src/api/java/forestry/api/apiculture/IAlvearyComponent.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import forestry.api.core.ITileStructure; - -/** - * Needs to be implemented by TileEntities that want to be part of an alveary. - */ -public interface IAlvearyComponent extends ITileStructure { - - void registerBeeModifier(IBeeModifier modifier); - - void removeBeeModifier(IBeeModifier modifier); - - void registerBeeListener(IBeeListener event); - - void removeBeeListener(IBeeListener event); - - void addTemperatureChange(float change, float boundaryDown, float boundaryUp); - - void addHumidityChange(float change, float boundaryDown, float boundaryUp); - - /** - * @return true if this TE has a function other than a plain alveary block. Returning true prevents the TE from becoming master. - */ - boolean hasFunction(); - -} diff --git a/src/api/java/forestry/api/apiculture/IApiaristTracker.java b/src/api/java/forestry/api/apiculture/IApiaristTracker.java deleted file mode 100644 index 0c65f56b..00000000 --- a/src/api/java/forestry/api/apiculture/IApiaristTracker.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import forestry.api.genetics.IBreedingTracker; -import forestry.api.genetics.IIndividual; - -/** - * Can be used to garner information on bee breeding. See {@link forestry.api.genetics.ISpeciesRoot} for retrieval functions. - * - * @author SirSengir - */ -public interface IApiaristTracker extends IBreedingTracker { - - /** - * Register the birth of a queen. Will mark species as discovered. - * - * @param queen - * Created queen. - */ - void registerQueen(IIndividual queen); - - /** - * @return Amount of queens bred with this tracker. - */ - int getQueenCount(); - - /** - * Register the birth of a princess. Will mark species as discovered. - * - * @param princess - * Created princess. - */ - void registerPrincess(IIndividual princess); - - /** - * @return Amount of princesses bred with this tracker. - */ - int getPrincessCount(); - - /** - * Register the birth of a drone. Will mark species as discovered. - * - * @param drone - * Created drone. - */ - void registerDrone(IIndividual drone); - - /** - * @return Amount of drones bred with this tracker. - */ - int getDroneCount(); - -} diff --git a/src/api/java/forestry/api/apiculture/IArmorApiarist.java b/src/api/java/forestry/api/apiculture/IArmorApiarist.java deleted file mode 100644 index fef81eb5..00000000 --- a/src/api/java/forestry/api/apiculture/IArmorApiarist.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -/** - * When implemented by armor piece items, allows them to act as apiarist's armor. - */ -public interface IArmorApiarist { - /** - * Called when the apiarist's armor acts as protection against an attack. - * - * @param player - * Player being attacked - * @param armor - * Armor item - * @param cause - * Optional cause of attack, such as a bee effect identifier - * @param doProtect - * Whether or not to actually do the side effects of protection - * @return Whether or not the armor should protect the player from that attack - */ - public boolean protectPlayer(EntityPlayer player, ItemStack armor, String cause, boolean doProtect); -} diff --git a/src/api/java/forestry/api/apiculture/IBee.java b/src/api/java/forestry/api/apiculture/IBee.java deleted file mode 100644 index f1670fb5..00000000 --- a/src/api/java/forestry/api/apiculture/IBee.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import java.util.ArrayList; -import java.util.Set; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.biome.BiomeGenBase; - -import forestry.api.core.IErrorState; -import forestry.api.genetics.IEffectData; -import forestry.api.genetics.IIndividual; -import forestry.api.genetics.IIndividualLiving; - -/** - * Other implementations than Forestry's default one are not supported. - * - * @author SirSengir - */ -public interface IBee extends IIndividualLiving { - - /** - * @return Bee's genetic information. - */ - IBeeGenome getGenome(); - - /** - * @return Genetic information of the bee's mate, null if unmated. - */ - IBeeGenome getMate(); - - /** - * @return true if the individual is originally of natural origin. - */ - boolean isNatural(); - - /** - * @return generation this individual is removed from the original individual. - */ - int getGeneration(); - - /** - * Set the natural flag on this bee. - * @param flag - */ - void setIsNatural(boolean flag); - - IEffectData[] doEffect(IEffectData[] storedData, IBeeHousing housing); - - IEffectData[] doFX(IEffectData[] storedData, IBeeHousing housing); - - /** - * @return true if the bee may spawn offspring - */ - boolean canSpawn(); - - /** - * Determines whether the queen can work. - * @param housing the {@link IBeeHousing} the bee currently resides in. - * @return an empty set if the queen can work, a set of error states if the queen can not work - */ - Set getCanWork(IBeeHousing housing); - - boolean hasFlower(IBeeHousing housing); - - ArrayList getSuitableBiomes(); - - ItemStack[] getProduceList(); - - ItemStack[] getSpecialtyList(); - - ItemStack[] produceStacks(IBeeHousing housing); - - IBee spawnPrincess(IBeeHousing housing); - - IBee[] spawnDrones(IBeeHousing housing); - - void plantFlowerRandom(IBeeHousing housing); - - IIndividual retrievePollen(IBeeHousing housing); - - boolean pollinateRandom(IBeeHousing housing, IIndividual pollen); - - /** - * Determines whether the queen can work. - * - * @param housing the {@link IBeeHousing} the bee currently resides in. - * @return the error code encountered. - * @deprecated since Forestry 3.6. Use getCanWork - */ - @Deprecated - IErrorState canWork(IBeeHousing housing); - -} diff --git a/src/api/java/forestry/api/apiculture/IBeeFactory.java b/src/api/java/forestry/api/apiculture/IBeeFactory.java deleted file mode 100644 index c164731c..00000000 --- a/src/api/java/forestry/api/apiculture/IBeeFactory.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import forestry.api.genetics.IClassification; - -public interface IBeeFactory { - - /** - * Creates a new bee species. - * Automatically registered with AlleleManager.alleleRegistry.registerAllele() - * See IAlleleBeeSpeciesCustom and IAlleleSpeciesCustom for adding additional properties to the returned species. - * - * @param uid Unique Identifier for this species - * @param dominant Whether this species is genetically dominant (false means it is recessive) - * @param authority Authority for the binomial name, e.g. "Sengir" on species of base Forestry. - * @param unlocalizedName Unlocalized name for this species - * @param unlocalizedDescription Unlocalized description for this species - * @param branch Classification of this species - * @param binomial Binomial name of the species sans genus ("Apis"). "humboldti" will have the bee species flavour name be "Apis humboldti". Feel free to use fun names or null. - * @param primaryColor The outline color of this species - * @param secondaryColor The body color of this species - * @return a new bee species allele. - */ - IAlleleBeeSpeciesCustom createSpecies(String uid, boolean dominant, String authority, String unlocalizedName, String unlocalizedDescription, IClassification branch, String binomial, int primaryColor, int secondaryColor); - - /** - * Creates a new bee branch. - * Must be registered with AlleleManager.alleleRegistry.getClassification("family.apidae").addMemberGroup(); - * - * @param uid Unique Identifier for this branch - * @param scientific approximates a "genus" in real life. Real life examples: "Micrapis", "Megapis" - * @return a new bee branch - */ - IClassification createBranch(String uid, String scientific); -} diff --git a/src/api/java/forestry/api/apiculture/IBeeGenome.java b/src/api/java/forestry/api/apiculture/IBeeGenome.java deleted file mode 100644 index 642eeeb5..00000000 --- a/src/api/java/forestry/api/apiculture/IBeeGenome.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import forestry.api.genetics.EnumTolerance; -import forestry.api.genetics.IFlowerProvider; -import forestry.api.genetics.IGenome; - -/** - * Only the default implementation is supported. - * - * @author SirSengir - * - */ -public interface IBeeGenome extends IGenome { - - IAlleleBeeSpecies getPrimary(); - - IAlleleBeeSpecies getSecondary(); - - float getSpeed(); - - int getLifespan(); - - int getFertility(); - - EnumTolerance getToleranceTemp(); - - EnumTolerance getToleranceHumid(); - - boolean getNocturnal(); - - boolean getTolerantFlyer(); - - boolean getCaveDwelling(); - - IFlowerProvider getFlowerProvider(); - - int getFlowering(); - - int[] getTerritory(); - - IAlleleBeeEffect getEffect(); - -} diff --git a/src/api/java/forestry/api/apiculture/IBeeHousing.java b/src/api/java/forestry/api/apiculture/IBeeHousing.java deleted file mode 100644 index 5d795a3b..00000000 --- a/src/api/java/forestry/api/apiculture/IBeeHousing.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import net.minecraft.item.ItemStack; - -import forestry.api.genetics.IHousing; - -public interface IBeeHousing extends IBeeModifier, IBeeListener, IHousing { - - ItemStack getQueen(); - - ItemStack getDrone(); - - void setQueen(ItemStack itemstack); - - void setDrone(ItemStack itemstack); - - /** - * @return true if princesses and drones can (currently) mate in this housing to generate queens. - */ - boolean canBreed(); - -} diff --git a/src/api/java/forestry/api/apiculture/IBeeIconProvider.java b/src/api/java/forestry/api/apiculture/IBeeIconProvider.java deleted file mode 100644 index d29a722b..00000000 --- a/src/api/java/forestry/api/apiculture/IBeeIconProvider.java +++ /dev/null @@ -1,14 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.util.IIcon; - -public interface IBeeIconProvider { - void registerIcons(IIconRegister register); - IIcon getIcon(EnumBeeType type, int renderPass); -} diff --git a/src/api/java/forestry/api/apiculture/IBeeListener.java b/src/api/java/forestry/api/apiculture/IBeeListener.java deleted file mode 100644 index 7fd5865c..00000000 --- a/src/api/java/forestry/api/apiculture/IBeeListener.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import net.minecraft.item.ItemStack; - -import forestry.api.genetics.IIndividual; - -public interface IBeeListener { - - /** - * Called on queen update. - * - * @param queen - */ - void onQueenChange(ItemStack queen); - - /** - * Called when the bees wear out the housing's equipment. - * - * @param amount - * Integer indicating the amount worn out. - */ - void wearOutEquipment(int amount); - - /** - * Called just before the children are generated, and the queen removed. - * - * @param queen - */ - void onQueenDeath(IBee queen); - - /** - * Called after the children have been spawned, but before the queen appears - * - * @param queen - */ - void onPostQueenDeath(IBee queen); - - boolean onPollenRetrieved(IBee queen, IIndividual pollen, boolean isHandled); - - boolean onEggLaid(IBee queen); -} diff --git a/src/api/java/forestry/api/apiculture/IBeeModifier.java b/src/api/java/forestry/api/apiculture/IBeeModifier.java deleted file mode 100644 index 4f9f7bbe..00000000 --- a/src/api/java/forestry/api/apiculture/IBeeModifier.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -public interface IBeeModifier { - - /** - * @param genome Genome of the bee this modifier is called for. - * @param currentModifier Current modifier. - * @return Float used to modify the base territory. - */ - float getTerritoryModifier(IBeeGenome genome, float currentModifier); - - /** - * @param genome Genome of the bee this modifier is called for. - * @param mate - * @param currentModifier Current modifier. - * @return Float used to modify the base mutation chance. - */ - float getMutationModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier); - - /** - * @param genome Genome of the bee this modifier is called for. - * @param currentModifier Current modifier. - * @return Float used to modify the life span of queens. - */ - float getLifespanModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier); - - /** - * @param genome Genome of the bee this modifier is called for. - * @param currentModifier Current modifier. - * @return Float modifying the production speed of queens. - */ - float getProductionModifier(IBeeGenome genome, float currentModifier); - - /** - * @param genome Genome of the bee this modifier is called for. - * @return Float modifying the flowering of queens. - */ - float getFloweringModifier(IBeeGenome genome, float currentModifier); - - /** - * @param genome Genome of the bee this modifier is called for. - * @return Float modifying the chance for a swarmer queen to die off. - */ - float getGeneticDecay(IBeeGenome genome, float currentModifier); - - /** - * @return Boolean indicating if housing can ignore rain - */ - boolean isSealed(); - - /** - * @return Boolean indicating if housing can ignore darkness/night - */ - boolean isSelfLighted(); - - /** - * @return Boolean indicating if housing can ignore not seeing the sky - */ - boolean isSunlightSimulated(); - - /** - * @return Boolean indicating whether this housing simulates the nether - */ - boolean isHellish(); - -} diff --git a/src/api/java/forestry/api/apiculture/IBeeMutation.java b/src/api/java/forestry/api/apiculture/IBeeMutation.java deleted file mode 100644 index 6421c8f6..00000000 --- a/src/api/java/forestry/api/apiculture/IBeeMutation.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IGenome; -import forestry.api.genetics.IMutation; - -public interface IBeeMutation extends IMutation { - - IBeeRoot getRoot(); - - /** - * @param housing - * @param allele0 - * @param allele1 - * @param genome0 - * @param genome1 - * @return float representing the chance for mutation to occur. note that this is 0 - 100 based, since it was an integer previously! - * @deprecated since Forestry 3.6, use the IAlleleBeeSpecies / IBeeGenome version - */ - @Deprecated - float getChance(IBeeHousing housing, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1); - - float getChance(IBeeHousing housing, IAlleleBeeSpecies allele0, IAlleleBeeSpecies allele1, IBeeGenome genome0, IBeeGenome genome1); -} diff --git a/src/api/java/forestry/api/apiculture/IBeeMutationCustom.java b/src/api/java/forestry/api/apiculture/IBeeMutationCustom.java deleted file mode 100644 index d97a839a..00000000 --- a/src/api/java/forestry/api/apiculture/IBeeMutationCustom.java +++ /dev/null @@ -1,12 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import forestry.api.genetics.IMutationCustom; - -public interface IBeeMutationCustom extends IBeeMutation, IMutationCustom { - -} diff --git a/src/api/java/forestry/api/apiculture/IBeeMutationFactory.java b/src/api/java/forestry/api/apiculture/IBeeMutationFactory.java deleted file mode 100644 index 315a4c6f..00000000 --- a/src/api/java/forestry/api/apiculture/IBeeMutationFactory.java +++ /dev/null @@ -1,23 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import forestry.api.genetics.IAllele; - -public interface IBeeMutationFactory { - /** - * Creates a new bee mutation. - * Automatically registered with BeeManager.beeRoot.registerMutation() - * See IBeeMutationCustom and IMutationCustom for adding additional properties to the returned mutation. - * - * @param parentBee0 A parent bee for this mutation - * @param parentBee1 A parent bee for this mutation - * @param result The resulting alleles for this mutation - * @param chance The chance that breeding the two parent bees will result in this mutation - * @return a new bee mutation. - */ - IBeeMutationCustom createMutation(IAlleleBeeSpecies parentBee0, IAlleleBeeSpecies parentBee1, IAllele[] result, int chance); -} diff --git a/src/api/java/forestry/api/apiculture/IBeeRoot.java b/src/api/java/forestry/api/apiculture/IBeeRoot.java deleted file mode 100644 index b4bbb291..00000000 --- a/src/api/java/forestry/api/apiculture/IBeeRoot.java +++ /dev/null @@ -1,128 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import java.util.ArrayList; -import java.util.Collection; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import com.mojang.authlib.GameProfile; - -import forestry.api.core.IStructureLogic; -import forestry.api.genetics.IAllele; -import forestry.api.genetics.ISpeciesRoot; - -public interface IBeeRoot extends ISpeciesRoot { - - /** - * @return true if passed item is a Forestry bee. Equal to getType(ItemStack stack) != EnumBeeType.NONE - */ - @Override - boolean isMember(ItemStack stack); - - /** - * @return {@link IBee} pattern parsed from the passed stack's nbt data. - */ - @Override - IBee getMember(ItemStack stack); - - @Override - IBee getMember(NBTTagCompound compound); - - /* GENOME CONVERSION */ - @Override - IBee templateAsIndividual(IAllele[] template); - - @Override - IBee templateAsIndividual(IAllele[] templateActive, IAllele[] templateInactive); - - @Override - IBeeGenome templateAsGenome(IAllele[] template); - - @Override - IBeeGenome templateAsGenome(IAllele[] templateActive, IAllele[] templateInactive); - - /* BREEDING TRACKER */ - /** - * @param world - * @return {@link IApiaristTracker} associated with the passed world. - */ - IApiaristTracker getBreedingTracker(World world, GameProfile player); - - /* BEE SPECIFIC */ - /** - * @return type of bee encoded on the itemstack. EnumBeeType.NONE if it isn't a bee. - */ - EnumBeeType getType(ItemStack stack); - - /** - * @return true if passed item is a drone. Equal to getType(ItemStack stack) == EnumBeeType.DRONE - */ - boolean isDrone(ItemStack stack); - - /** - * @return true if passed item is mated (i.e. a queen) - */ - boolean isMated(ItemStack stack); - - /** - * @param genome - * Valid {@link IBeeGenome} - * @return {@link IBee} from the passed genome - */ - IBee getBee(World world, IBeeGenome genome); - - /** - * Creates an IBee suitable for a queen containing the necessary second genome for the mate. - * - * @param genome - * Valid {@link IBeeGenome} - * @param mate - * Valid {@link IBee} representing the mate. - * @return Mated {@link IBee} from the passed genomes. - */ - IBee getBee(World world, IBeeGenome genome, IBee mate); - - /* TEMPLATES */ - @Override - ArrayList getIndividualTemplates(); - - /* MUTATIONS */ - @Override - Collection getMutations(boolean shuffle); - - /* GAME MODE */ - void resetBeekeepingMode(); - - ArrayList getBeekeepingModes(); - - IBeekeepingMode getBeekeepingMode(World world); - - IBeekeepingMode getBeekeepingMode(String name); - - void registerBeekeepingMode(IBeekeepingMode mode); - - void setBeekeepingMode(World world, String name); - - /* MISC */ - /** - * @param housing - * Object implementing IBeeHousing. - * @return IBeekeepingLogic - */ - IBeekeepingLogic createBeekeepingLogic(IBeeHousing housing); - - /** - * TileEntities wanting to function as alveary components need to implement structure logic for validation. - * - * @return IStructureLogic for alvearies. - */ - IStructureLogic createAlvearyStructureLogic(IAlvearyComponent structure); - -} diff --git a/src/api/java/forestry/api/apiculture/IBeekeepingLogic.java b/src/api/java/forestry/api/apiculture/IBeekeepingLogic.java deleted file mode 100644 index 22985a3f..00000000 --- a/src/api/java/forestry/api/apiculture/IBeekeepingLogic.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import forestry.api.core.INBTTagable; -import forestry.api.genetics.IEffectData; - -public interface IBeekeepingLogic extends INBTTagable { - - /* STATE INFORMATION */ - int getBreedingTime(); - - int getTotalBreedingTime(); - - IBee getQueen(); - - IBeeHousing getHousing(); - - IEffectData[] getEffectData(); - - /** - * Checks that the bees can work, setting error conditions on the housing where needed - * @return true if no errors are present and doWork should be called - */ - boolean canWork(); - - /** - * Performs actual work, breeding, production, etc. - */ - void doWork(); - - /** - * @deprecated since Forestry 3.6. use canWork() and doWork() instead - */ - @Deprecated - void update(); - -} diff --git a/src/api/java/forestry/api/apiculture/IBeekeepingMode.java b/src/api/java/forestry/api/apiculture/IBeekeepingMode.java deleted file mode 100644 index 80d30981..00000000 --- a/src/api/java/forestry/api/apiculture/IBeekeepingMode.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import java.util.ArrayList; - -import net.minecraft.world.World; - -public interface IBeekeepingMode extends IBeeModifier { - - /** - * @return Localized name of this beekeeping mode. - */ - String getName(); - - /** - * @return Localized list of strings outlining the behaviour of this beekeeping mode. - */ - ArrayList getDescription(); - - /** - * @return Float used to modify the wear on comb frames. - */ - float getWearModifier(); - - /** - * @param queen - * @return fertility taking into account the birthing queen and surroundings. - */ - int getFinalFertility(IBee queen, World world, int x, int y, int z); - - /** - * @param queen - * @return true if the queen is genetically "fatigued" and should not be reproduced anymore. - */ - boolean isFatigued(IBee queen, IBeeHousing housing); - - /** - * @param queen - * @param housing - * @return true if the queen is being overworked in the bee housing (with chance). will trigger a negative effect. - */ - boolean isOverworked(IBee queen, IBeeHousing housing); - - /** - * - * @param queen - * @param offspring - * @param housing - * @return true if the genetic structure of the queen is breaking down during spawning of the offspring (with chance). will trigger a negative effect. - */ - boolean isDegenerating(IBee queen, IBee offspring, IBeeHousing housing); - - /** - * @param queen - * @return true if an offspring of this queen is considered a natural - */ - boolean isNaturalOffspring(IBee queen); - - /** - * @param queen - * @return true if this mode allows the passed queen or princess to be multiplied - */ - boolean mayMultiplyPrincess(IBee queen); - - -} diff --git a/src/api/java/forestry/api/apiculture/IHiveDrop.java b/src/api/java/forestry/api/apiculture/IHiveDrop.java deleted file mode 100644 index ea175f8b..00000000 --- a/src/api/java/forestry/api/apiculture/IHiveDrop.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import java.util.Collection; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -/** - * Bees can be seeded either as hive drops or as mutation results. - * - * Add IHiveDrops with HiveManager.get___Hive.addDrop - * - * @author SirSengir - */ -public interface IHiveDrop { - - ItemStack getPrincess(World world, int x, int y, int z, int fortune); - - Collection getDrones(World world, int x, int y, int z, int fortune); - - Collection getAdditional(World world, int x, int y, int z, int fortune); - - /** - * Chance to drop. Default drops have 80 (= 80 %). - * - * @param world Minecraft world this is called for. - * @param x x-Coordinate of the broken hive. - * @param y y-Coordinate of the broken hive. - * @param z z-Coordinate of the broken hive. - * @return Chance for drop as an integer of 0 - 100. - */ - int getChance(World world, int x, int y, int z); -} diff --git a/src/api/java/forestry/api/apiculture/IHiveFrame.java b/src/api/java/forestry/api/apiculture/IHiveFrame.java deleted file mode 100644 index dabc9e01..00000000 --- a/src/api/java/forestry/api/apiculture/IHiveFrame.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import net.minecraft.item.ItemStack; - -public interface IHiveFrame extends IBeeModifier { - - /** - * Wears out a frame. - * - * @param housing - * IBeeHousing the frame is contained in. - * @param frame - * ItemStack containing the actual frame. - * @param queen - * Current queen in the caller. - * @param wear - * Integer denoting the amount worn out. The wear modifier of the current beekeeping mode has already been taken into account. - * @return ItemStack containing the actual frame with adjusted damage. - */ - ItemStack frameUsed(IBeeHousing housing, ItemStack frame, IBee queen, int wear); - -} diff --git a/src/api/java/forestry/api/apiculture/IJubilanceFactory.java b/src/api/java/forestry/api/apiculture/IJubilanceFactory.java deleted file mode 100644 index 1b81a9d0..00000000 --- a/src/api/java/forestry/api/apiculture/IJubilanceFactory.java +++ /dev/null @@ -1,16 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -import net.minecraft.block.Block; - -public interface IJubilanceFactory { - /** The default Jubilance Provider is satisfied when the humidity and temperature are ideal for the bee. */ - IJubilanceProvider getDefault(); - - /** The Requires Resource Jubilance Provider is satisfied when a specific block is under the hive. */ - IJubilanceProvider getRequiresResource(Block block, int meta); -} diff --git a/src/api/java/forestry/api/apiculture/IJubilanceProvider.java b/src/api/java/forestry/api/apiculture/IJubilanceProvider.java deleted file mode 100644 index faf34d05..00000000 --- a/src/api/java/forestry/api/apiculture/IJubilanceProvider.java +++ /dev/null @@ -1,15 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture; - -public interface IJubilanceProvider { - - /** - * Returns true when conditions are right to make this species Jubilant. - * Jubilant bees can produce their Specialty products. - */ - boolean isJubilant(IAlleleBeeSpecies species, IBeeGenome genome, IBeeHousing housing); -} diff --git a/src/api/java/forestry/api/apiculture/hives/HiveManager.java b/src/api/java/forestry/api/apiculture/hives/HiveManager.java deleted file mode 100644 index 17ca7d20..00000000 --- a/src/api/java/forestry/api/apiculture/hives/HiveManager.java +++ /dev/null @@ -1,13 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture.hives; - -public class HiveManager { - - public static IHiveRegistry hiveRegistry; - public static IHiveGenHelper genHelper; - -} diff --git a/src/api/java/forestry/api/apiculture/hives/IHiveDescription.java b/src/api/java/forestry/api/apiculture/hives/IHiveDescription.java deleted file mode 100644 index 82d761db..00000000 --- a/src/api/java/forestry/api/apiculture/hives/IHiveDescription.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture.hives; - -import net.minecraft.block.Block; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; - -import forestry.api.core.EnumHumidity; -import forestry.api.core.EnumTemperature; - -public interface IHiveDescription { - - /** - * The hive generator for this hive. - */ - IHiveGen getHiveGen(); - - /** - * The hive block to be placed in the world. - */ - Block getBlock(); - int getMeta(); - - /** - * returns true if the hive can be generated in these conditions. - * Used as a fast early-elimination check for hives that have no hope of spawning in the area. - */ - boolean isGoodBiome(BiomeGenBase biome); - boolean isGoodHumidity(EnumHumidity humidity); - boolean isGoodTemperature(EnumTemperature temperature); - - /** - * float representing the relative chance a hive will generate in a chunk. - * Default is 1.0, higher numbers result in more hives, smaller will result in fewer. - * Tree hives want around 3.0 to 4.0 since there are less locations to generate on. - */ - float getGenChance(); - - /** - * Called after successful hive generation. - * world, x, y, z give the location of the new hive. - **/ - void postGen(World world, int x, int y, int z); -} diff --git a/src/api/java/forestry/api/apiculture/hives/IHiveGen.java b/src/api/java/forestry/api/apiculture/hives/IHiveGen.java deleted file mode 100644 index 57569d26..00000000 --- a/src/api/java/forestry/api/apiculture/hives/IHiveGen.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture.hives; - -import net.minecraft.world.World; - -public interface IHiveGen { - - /** - * return a Y value that the hive should try to generate at. - * returns negative if the hive can't be placed anywhere. - */ - int getYForHive(World world, int x, int z); - - /** - * returns true if the hive can be generated at this location. - * Used for advanced conditions, like checking that the ground below the hive is a certain type. - */ - boolean isValidLocation(World world, int x, int y, int z); - - /** - * returns true if the hive can safely replace the block at this location. - */ - boolean canReplace(World world, int x, int y, int z); - -} diff --git a/src/api/java/forestry/api/apiculture/hives/IHiveGenHelper.java b/src/api/java/forestry/api/apiculture/hives/IHiveGenHelper.java deleted file mode 100644 index 0eb6400c..00000000 --- a/src/api/java/forestry/api/apiculture/hives/IHiveGenHelper.java +++ /dev/null @@ -1,23 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture.hives; - -import net.minecraft.block.Block; - -public interface IHiveGenHelper { - - /** - * Returns a hiveGen for a hive that spawns on the ground. - * validGroundBlocks specifies which block materials it can spawn on. - */ - IHiveGen ground(Block... validGroundBlocks); - - /** - * Returns a hiveGen for a hive that spawns in trees. - */ - IHiveGen tree(); - -} diff --git a/src/api/java/forestry/api/apiculture/hives/IHiveRegistry.java b/src/api/java/forestry/api/apiculture/hives/IHiveRegistry.java deleted file mode 100644 index 73f3524c..00000000 --- a/src/api/java/forestry/api/apiculture/hives/IHiveRegistry.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.apiculture.hives; - -import java.util.List; - -import forestry.api.apiculture.IHiveDrop; - -public interface IHiveRegistry { - - /* Forestry Hive Names */ - public static final String forest = "Forestry:forest"; - public static final String meadows = "Forestry:meadows"; - public static final String desert = "Forestry:desert"; - public static final String jungle = "Forestry:jungle"; - public static final String end = "Forestry:end"; - public static final String snow = "Forestry:snow"; - public static final String swamp = "Forestry:swamp"; - - /** - * Adds a new hive to be generated in the world. - */ - void registerHive(String hiveName, IHiveDescription hiveDescription); - - /** - * Add drops to a registered hive. - */ - void addDrops(String hiveName, IHiveDrop... drops); - void addDrops(String hiveName, List drop); -} diff --git a/src/api/java/forestry/api/apiculture/hives/package-info.java b/src/api/java/forestry/api/apiculture/hives/package-info.java deleted file mode 100644 index a045530c..00000000 --- a/src/api/java/forestry/api/apiculture/hives/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="4.1.0", owner="ForestryAPI|apiculture", provides="ForestryAPI|hives") -package forestry.api.apiculture.hives; -import cpw.mods.fml.common.API; diff --git a/src/api/java/forestry/api/apiculture/package-info.java b/src/api/java/forestry/api/apiculture/package-info.java deleted file mode 100644 index 9258ac9a..00000000 --- a/src/api/java/forestry/api/apiculture/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="3.5.0", owner="ForestryAPI|core", provides="ForestryAPI|apiculture") -package forestry.api.apiculture; -import cpw.mods.fml.common.API; diff --git a/src/api/java/forestry/api/arboriculture/EnumGermlingType.java b/src/api/java/forestry/api/arboriculture/EnumGermlingType.java deleted file mode 100644 index a564be0d..00000000 --- a/src/api/java/forestry/api/arboriculture/EnumGermlingType.java +++ /dev/null @@ -1,23 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -public enum EnumGermlingType { - SAPLING("sapling"), BLOSSOM("blossom"), POLLEN("pollen"), GERMLING("germling"), NONE("none"); - - public static final EnumGermlingType[] VALUES = values(); - - private final String name; - - private EnumGermlingType(String name) { - this.name = name; - } - - public String getName() { - return name; - } - -} diff --git a/src/api/java/forestry/api/arboriculture/EnumGrowthConditions.java b/src/api/java/forestry/api/arboriculture/EnumGrowthConditions.java deleted file mode 100644 index 8b28601c..00000000 --- a/src/api/java/forestry/api/arboriculture/EnumGrowthConditions.java +++ /dev/null @@ -1,10 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -public enum EnumGrowthConditions { - HOSTILE, PALTRY, NORMAL, GOOD, EXCELLENT -} diff --git a/src/api/java/forestry/api/arboriculture/EnumTreeChromosome.java b/src/api/java/forestry/api/arboriculture/EnumTreeChromosome.java deleted file mode 100644 index 8f74d0c2..00000000 --- a/src/api/java/forestry/api/arboriculture/EnumTreeChromosome.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import forestry.api.genetics.AlleleManager; -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IAlleleArea; -import forestry.api.genetics.IAlleleBoolean; -import forestry.api.genetics.IAlleleFloat; -import forestry.api.genetics.IAlleleInteger; -import forestry.api.genetics.IAllelePlantType; -import forestry.api.genetics.IChromosomeType; -import forestry.api.genetics.IFruitFamily; -import forestry.api.genetics.ISpeciesRoot; -import net.minecraftforge.common.EnumPlantType; - -public enum EnumTreeChromosome implements IChromosomeType { - - /** - * Determines the following: - WorldGen, including the used wood blocks - {@link IFruitFamily}s supported. Limits which {@link IFruitProvider} - * will actually yield fruit with this species. - Native {@link EnumPlantType} for this tree. Combines with the PLANT chromosome. - */ - SPECIES(IAlleleTreeSpecies.class), - /** - * {@link IGrowthProvider}, determines conditions required by the tree to grow. - */ - GROWTH(IAlleleGrowth.class), - /** - * A float modifying the height of the tree. Taken into account at worldgen. - */ - HEIGHT(IAlleleFloat.class), - /** - * Chance for saplings. - */ - FERTILITY(IAlleleFloat.class), - /** - * {@link IFruitProvider}, determines if and what fruits are grown on the tree. Limited by the {@link IFruitFamily}s the species supports. - */ - FRUITS(IAlleleFruit.class), - /** - * Chance for fruit leaves and/or drops. - */ - YIELD(IAlleleFloat.class), - /** - * May add additional tolerances for {@link EnumPlantTypes}. - */ - PLANT(IAllelePlantType.class), - /** - * Determines the speed at which fruit will ripen on this tree. - */ - SAPPINESS(IAlleleFloat.class), - /** - * Territory for leaf effects. Unused. - */ - TERRITORY(IAlleleArea.class), - /** - * Leaf effect. Unused. - */ - EFFECT(IAlleleLeafEffect.class), - /** - * Amount of random ticks which need to elapse before a sapling will grow into a tree. - */ - MATURATION(IAlleleInteger.class), - - GIRTH(IAlleleInteger.class), - /** - * Determines if the tree can burn. - */ - FIREPROOF(IAlleleBoolean.class), - ; - - Class clss; - - EnumTreeChromosome(Class clss) { - this.clss = clss; - } - - @Override - public Class getAlleleClass() { - return clss; - } - - @Override - public String getName() { - return this.toString().toLowerCase(); - } - - @Override - public ISpeciesRoot getSpeciesRoot() { - return AlleleManager.alleleRegistry.getSpeciesRoot("rootTrees"); - } - -} diff --git a/src/api/java/forestry/api/arboriculture/IAlleleFruit.java b/src/api/java/forestry/api/arboriculture/IAlleleFruit.java deleted file mode 100644 index 0f54db51..00000000 --- a/src/api/java/forestry/api/arboriculture/IAlleleFruit.java +++ /dev/null @@ -1,17 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import forestry.api.genetics.IAllele; - -/** - * Simple allele encapsulating an {@link IFruitProvider}. - */ -public interface IAlleleFruit extends IAllele { - - IFruitProvider getProvider(); - -} diff --git a/src/api/java/forestry/api/arboriculture/IAlleleGrowth.java b/src/api/java/forestry/api/arboriculture/IAlleleGrowth.java deleted file mode 100644 index 6cb4b438..00000000 --- a/src/api/java/forestry/api/arboriculture/IAlleleGrowth.java +++ /dev/null @@ -1,17 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import forestry.api.genetics.IAllele; - -/** - * Simple allele encapsulating an {@link IGrowthProvider}. - */ -public interface IAlleleGrowth extends IAllele { - - IGrowthProvider getProvider(); - -} diff --git a/src/api/java/forestry/api/arboriculture/IAlleleLeafEffect.java b/src/api/java/forestry/api/arboriculture/IAlleleLeafEffect.java deleted file mode 100644 index d52d963a..00000000 --- a/src/api/java/forestry/api/arboriculture/IAlleleLeafEffect.java +++ /dev/null @@ -1,20 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import net.minecraft.world.World; - -import forestry.api.genetics.IAlleleEffect; -import forestry.api.genetics.IEffectData; - -/** - * Simple allele encapsulating a leaf effect. (Not implemented) - */ -public interface IAlleleLeafEffect extends IAlleleEffect { - - IEffectData doEffect(ITreeGenome genome, IEffectData storedData, World world, int x, int y, int z); - -} diff --git a/src/api/java/forestry/api/arboriculture/IAlleleTreeSpecies.java b/src/api/java/forestry/api/arboriculture/IAlleleTreeSpecies.java deleted file mode 100644 index be057254..00000000 --- a/src/api/java/forestry/api/arboriculture/IAlleleTreeSpecies.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import java.util.Collection; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import net.minecraftforge.common.EnumPlantType; - -import forestry.api.genetics.IAlleleSpecies; -import forestry.api.genetics.IFruitFamily; - -public interface IAlleleTreeSpecies extends IAlleleSpecies { - - ITreeRoot getRoot(); - - /** - * @return Native plant type of this species. - */ - EnumPlantType getPlantType(); - - /** - * @return List of all {@link IFruitFamily}s which can grow on leaves generated by this species. - */ - Collection getSuitableFruit(); - - /** - * @param tree - * @param world - * @param x - * @param y - * @param z - * @return Tree generator for the tree at the given location. - */ - WorldGenerator getGenerator(ITree tree, World world, int x, int y, int z); - - /** - * @return All available generator classes for this species. - */ - Class[] getGeneratorClasses(); - - /* TEXTURES AND OVERRIDES */ - int getLeafColour(ITree tree); - - short getLeafIconIndex(ITree tree, boolean fancy); - - @SideOnly(Side.CLIENT) - IIcon getGermlingIcon(EnumGermlingType type, int renderPass); - - @SideOnly(Side.CLIENT) - int getGermlingColour(EnumGermlingType type, int renderPass); - - /** - * - * @return Array of ItemStacks representing logs that these tree produces, the first one being the primary one - */ - ItemStack[] getLogStacks(); - -} diff --git a/src/api/java/forestry/api/arboriculture/IArboristTracker.java b/src/api/java/forestry/api/arboriculture/IArboristTracker.java deleted file mode 100644 index 9777e876..00000000 --- a/src/api/java/forestry/api/arboriculture/IArboristTracker.java +++ /dev/null @@ -1,12 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import forestry.api.genetics.IBreedingTracker; - -public interface IArboristTracker extends IBreedingTracker { - -} diff --git a/src/api/java/forestry/api/arboriculture/IFruitProvider.java b/src/api/java/forestry/api/arboriculture/IFruitProvider.java deleted file mode 100644 index ef54fc99..00000000 --- a/src/api/java/forestry/api/arboriculture/IFruitProvider.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.item.ItemStack; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import forestry.api.genetics.IFruitFamily; - -public interface IFruitProvider { - - IFruitFamily getFamily(); - - int getColour(ITreeGenome genome, IBlockAccess world, int x, int y, int z, int ripeningTime); - - boolean markAsFruitLeaf(ITreeGenome genome, World world, int x, int y, int z); - - int getRipeningPeriod(); - - // / Products, Chance - ItemStack[] getProducts(); - - // / Specialty, Chance - ItemStack[] getSpecialty(); - - ItemStack[] getFruits(ITreeGenome genome, World world, int x, int y, int z, int ripeningTime); - - /** - * @return Short, human-readable identifier used in the treealyzer. - */ - String getDescription(); - - /* TEXTURE OVERLAY */ - /** - * @param genome - * @param world - * @param x - * @param y - * @param z - * @param ripeningTime - * Elapsed ripening time for the fruit. - * @param fancy - * @return IIcon index of the texture to overlay on the leaf block. - */ - short getIconIndex(ITreeGenome genome, IBlockAccess world, int x, int y, int z, int ripeningTime, boolean fancy); - - /** - * @return true if this fruit provider requires fruit blocks to spawn, false otherwise. - */ - boolean requiresFruitBlocks(); - - /** - * Tries to spawn a fruit block at the potential position when the tree generates. - * - * @param genome - * @param world - * @param x - * @param y - * @param z - * @return true if a fruit block was spawned, false otherwise. - */ - boolean trySpawnFruitBlock(ITreeGenome genome, World world, int x, int y, int z); - - @SideOnly(Side.CLIENT) - void registerIcons(IIconRegister register); -} diff --git a/src/api/java/forestry/api/arboriculture/IGrowthProvider.java b/src/api/java/forestry/api/arboriculture/IGrowthProvider.java deleted file mode 100644 index 92e553e0..00000000 --- a/src/api/java/forestry/api/arboriculture/IGrowthProvider.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import net.minecraft.world.World; - -public interface IGrowthProvider { - - /** - * Check to see whether a sapling at the given location with the given genome can grow into a tree. - * - * @param genome Genome of the tree this is called for. - * @param world Minecraft world the tree will inhabit. - * @param xPos x-Coordinate to attempt growth at. - * @param yPos y-Coordinate to attempt growth at. - * @param zPos z-Coordinate to attempt growth at. - * @param expectedGirth Trunk size of the tree to generate. - * @param expectedHeight Height of the tree to generate. - * @return true if the tree can grow at the given coordinates, false otherwise. - */ - boolean canGrow(ITreeGenome genome, World world, int xPos, int yPos, int zPos, int expectedGirth, int expectedHeight); - - EnumGrowthConditions getGrowthConditions(ITreeGenome genome, World world, int xPos, int yPos, int zPos); - - /** - * @return Short, human-readable identifier used in the treealyzer. - */ - String getDescription(); - - /** - * @return Detailed description of growth behaviour used in the treealyzer. - */ - String[] getInfo(); - -} diff --git a/src/api/java/forestry/api/arboriculture/ILeafTickHandler.java b/src/api/java/forestry/api/arboriculture/ILeafTickHandler.java deleted file mode 100644 index 4d7fba44..00000000 --- a/src/api/java/forestry/api/arboriculture/ILeafTickHandler.java +++ /dev/null @@ -1,12 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import net.minecraft.world.World; - -public interface ILeafTickHandler { - boolean onRandomLeafTick(ITree tree, World world, int biomeId, int x, int y, int z, boolean isDestroyed); -} diff --git a/src/api/java/forestry/api/arboriculture/IToolGrafter.java b/src/api/java/forestry/api/arboriculture/IToolGrafter.java deleted file mode 100644 index 339725e6..00000000 --- a/src/api/java/forestry/api/arboriculture/IToolGrafter.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface IToolGrafter { - /** - * Called by leaves to determine the increase in sapling droprate. - * - * @param stack ItemStack containing the grafter. - * @param world Minecraft world the player and the target block inhabit. - * @param x x-Coordinate of the broken leaf block. - * @param y y-Coordinate of the broken leaf block. - * @param z z-Coordinate of the broken leaf block. - * @return Float representing the factor the usual drop chance is to be multiplied by. - */ - float getSaplingModifier(ItemStack stack, World world, EntityPlayer player, int x, int y, int z); -} diff --git a/src/api/java/forestry/api/arboriculture/ITree.java b/src/api/java/forestry/api/arboriculture/ITree.java deleted file mode 100644 index 5cbd736f..00000000 --- a/src/api/java/forestry/api/arboriculture/ITree.java +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import java.util.EnumSet; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -import net.minecraftforge.common.EnumPlantType; - -import forestry.api.genetics.IEffectData; -import forestry.api.genetics.IIndividual; -import forestry.api.world.ITreeGenData; - -public interface ITree extends IIndividual, ITreeGenData { - - void mate(ITree other); - - IEffectData[] doEffect(IEffectData[] storedData, World world, int biomeid, int x, int y, int z); - - IEffectData[] doFX(IEffectData[] storedData, World world, int biomeid, int x, int y, int z); - - ITreeGenome getGenome(); - - ITreeGenome getMate(); - - EnumSet getPlantTypes(); - - ITree[] getSaplings(World world, int x, int y, int z, float modifier); - - ItemStack[] getProduceList(); - - ItemStack[] getSpecialtyList(); - - ItemStack[] produceStacks(World world, int x, int y, int z, int ripeningTime); - - /** - * - * @param world - * @param x - * @param y - * @param z - * @return Boolean indicating whether a sapling can stay planted at the given position. - */ - boolean canStay(World world, int x, int y, int z); - - /** - * - * @param world - * @param x - * @param y - * @param z - * @return Boolean indicating whether a sapling at the given position can grow into a tree. - */ - boolean canGrow(World world, int x, int y, int z, int expectedGirth, int expectedHeight); - - /** - * @return Integer denoting the maturity (block ticks) required for a sapling to attempt to grow into a tree. - */ - int getRequiredMaturity(); - - /** - * @return Integer denoting how resilient leaf blocks are against adverse influences (i.e. caterpillars). - */ - int getResilience(); - - /** - * @param world - * @param x - * @param y - * @param z - * @return Integer denoting the size of the tree trunk. - */ - int getGirth(World world, int x, int y, int z); - - - - /** - * - * @param world - * @param x - * @param y - * @param z - * @return Growth conditions at the given position. - */ - EnumGrowthConditions getGrowthCondition(World world, int x, int y, int z); - - WorldGenerator getTreeGenerator(World world, int x, int y, int z, boolean wasBonemealed); - - ITree copy(); - - boolean isPureBred(EnumTreeChromosome chromosome); - - boolean canBearFruit(); -} diff --git a/src/api/java/forestry/api/arboriculture/ITreeGenome.java b/src/api/java/forestry/api/arboriculture/ITreeGenome.java deleted file mode 100644 index ee5a1f02..00000000 --- a/src/api/java/forestry/api/arboriculture/ITreeGenome.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import java.util.EnumSet; - -import net.minecraftforge.common.EnumPlantType; - -import forestry.api.genetics.IGenome; - -public interface ITreeGenome extends IGenome { - - IAlleleTreeSpecies getPrimary(); - - IAlleleTreeSpecies getSecondary(); - - IFruitProvider getFruitProvider(); - - IGrowthProvider getGrowthProvider(); - - float getHeight(); - - float getFertility(); - - /** - * @return Determines either a) how many fruit leaves there are or b) the chance for any fruit leave to drop a sapling. Exact usage determined by the - * IFruitProvider - */ - float getYield(); - - float getSappiness(); - - EnumSet getPlantTypes(); - - /** - * @return Amount of random block ticks required for a sapling to mature into a fully grown tree. - */ - int getMaturationTime(); - - int getGirth(); - - IAlleleLeafEffect getEffect(); -} diff --git a/src/api/java/forestry/api/arboriculture/ITreeModifier.java b/src/api/java/forestry/api/arboriculture/ITreeModifier.java deleted file mode 100644 index 775f91eb..00000000 --- a/src/api/java/forestry/api/arboriculture/ITreeModifier.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -public interface ITreeModifier { - - /** - * - * @param genome - * @return Float used to modify the height. - */ - float getHeightModifier(ITreeGenome genome, float currentModifier); - - /** - * - * @param genome - * @return Float used to modify the yield. - */ - float getYieldModifier(ITreeGenome genome, float currentModifier); - - /** - * - * @param genome - * @return Float used to modify the sappiness. - */ - float getSappinessModifier(ITreeGenome genome, float currentModifier); - - /** - * - * @param genome - * @return Float used to modify the maturation. - */ - float getMaturationModifier(ITreeGenome genome, float currentModifier); - - /** - * @param genome0 - * @param genome1 - * @return Float used to modify the base mutation chance. - */ - float getMutationModifier(ITreeGenome genome0, ITreeGenome genome1, float currentModifier); - -} diff --git a/src/api/java/forestry/api/arboriculture/ITreeMutation.java b/src/api/java/forestry/api/arboriculture/ITreeMutation.java deleted file mode 100644 index 65804969..00000000 --- a/src/api/java/forestry/api/arboriculture/ITreeMutation.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import net.minecraft.world.World; - -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IGenome; -import forestry.api.genetics.IMutation; -import forestry.api.genetics.ISpeciesRoot; - -public interface ITreeMutation extends IMutation { - - /** - * @return {@link ISpeciesRoot} this mutation is associated with. - */ - ITreeRoot getRoot(); - - /** - * @param world - * @param x - * @param y - * @param z - * @param allele0 - * @param allele1 - * @param genome0 - * @param genome1 - * @return float representing the chance for mutation to occur. note that this is 0 - 100 based, since it was an integer previously! - */ - float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1); -} diff --git a/src/api/java/forestry/api/arboriculture/ITreeRoot.java b/src/api/java/forestry/api/arboriculture/ITreeRoot.java deleted file mode 100644 index e966ca04..00000000 --- a/src/api/java/forestry/api/arboriculture/ITreeRoot.java +++ /dev/null @@ -1,113 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import java.util.ArrayList; -import java.util.Collection; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import com.mojang.authlib.GameProfile; - -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IChromosome; -import forestry.api.genetics.IIndividual; -import forestry.api.genetics.ISpeciesRoot; - -public interface ITreeRoot extends ISpeciesRoot { - - @Override - boolean isMember(ItemStack itemstack); - - @Override - ITree getMember(ItemStack itemstack); - - @Override - ITree getMember(NBTTagCompound compound); - - @Override - ITree templateAsIndividual(IAllele[] template); - - @Override - ITree templateAsIndividual(IAllele[] templateActive, IAllele[] templateInactive); - - @Override - ITreeGenome templateAsGenome(IAllele[] template); - - @Override - ITreeGenome templateAsGenome(IAllele[] templateActive, IAllele[] templateInactive); - - /** - * @param world - * @return {@link IArboristTracker} associated with the passed world. - */ - @Override - IArboristTracker getBreedingTracker(World world, GameProfile player); - - /* TREE SPECIFIC */ - /** - * Register a leaf tick handler. - * @param handler the {@link ILeafTickHandler} to register. - */ - void registerLeafTickHandler(ILeafTickHandler handler); - - Collection getLeafTickHandlers(); - - /** - * @return type of tree encoded on the itemstack. EnumBeeType.NONE if it isn't a tree. - */ - EnumGermlingType getType(ItemStack stack); - - ITree getTree(World world, int x, int y, int z); - - ITree getTree(World world, ITreeGenome genome); - - boolean plantSapling(World world, ITree tree, GameProfile owner, int x, int y, int z); - - /** - * @deprecated since Forestry 3.5.0. Use ITreeGenData setLeavesDecorative. - */ - @Deprecated - // decorative=true for creative and player-placed leaves. No decay, pollination, or drops. - boolean setLeaves(World world, IIndividual tree, GameProfile owner, int x, int y, int z, boolean decorative); - - /** - * @deprecated since Forestry 3.5.0. Use ITreeGenData setLeaves. - */ - @Deprecated - // set normal leaves created as worldgen - boolean setLeaves(World world, IIndividual tree, GameProfile owner, int x, int y, int z); - - @Override - IChromosome[] templateAsChromosomes(IAllele[] template); - - @Override - IChromosome[] templateAsChromosomes(IAllele[] templateActive, IAllele[] templateInactive); - - boolean setFruitBlock(World world, IAlleleFruit allele, float sappiness, short[] indices, int x, int y, int z); - - /* GAME MODE */ - ArrayList getTreekeepingModes(); - - ITreekeepingMode getTreekeepingMode(World world); - - ITreekeepingMode getTreekeepingMode(String name); - - void registerTreekeepingMode(ITreekeepingMode mode); - - void setTreekeepingMode(World world, String name); - - /* TEMPLATES */ - @Override - ArrayList getIndividualTemplates(); - - /* MUTATIONS */ - @Override - Collection getMutations(boolean shuffle); - -} diff --git a/src/api/java/forestry/api/arboriculture/ITreekeepingMode.java b/src/api/java/forestry/api/arboriculture/ITreekeepingMode.java deleted file mode 100644 index cc5224d8..00000000 --- a/src/api/java/forestry/api/arboriculture/ITreekeepingMode.java +++ /dev/null @@ -1,22 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.arboriculture; - -import java.util.ArrayList; - -public interface ITreekeepingMode extends ITreeModifier { - - /** - * @return Localized name of this treekeeping mode. - */ - String getName(); - - /** - * @return Localized list of strings outlining the behaviour of this treekeeping mode. - */ - ArrayList getDescription(); - -} diff --git a/src/api/java/forestry/api/arboriculture/package-info.java b/src/api/java/forestry/api/arboriculture/package-info.java deleted file mode 100644 index de961141..00000000 --- a/src/api/java/forestry/api/arboriculture/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="2.3.0", owner="ForestryAPI|core", provides="ForestryAPI|arboriculture") -package forestry.api.arboriculture; -import cpw.mods.fml.common.API; diff --git a/src/api/java/forestry/api/circuits/ChipsetManager.java b/src/api/java/forestry/api/circuits/ChipsetManager.java deleted file mode 100644 index c5f0db5c..00000000 --- a/src/api/java/forestry/api/circuits/ChipsetManager.java +++ /dev/null @@ -1,13 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.circuits; - -public class ChipsetManager { - - public static ISolderManager solderManager; - public static ICircuitRegistry circuitRegistry; - -} diff --git a/src/api/java/forestry/api/circuits/ICircuit.java b/src/api/java/forestry/api/circuits/ICircuit.java deleted file mode 100644 index 01b7e79d..00000000 --- a/src/api/java/forestry/api/circuits/ICircuit.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.circuits; - -import java.util.List; - -import net.minecraft.tileentity.TileEntity; - -public interface ICircuit { - String getUID(); - - boolean requiresDiscovery(); - - int getLimit(); - - String getName(); - - boolean isCircuitable(TileEntity tile); - - void onInsertion(int slot, TileEntity tile); - - void onLoad(int slot, TileEntity tile); - - void onRemoval(int slot, TileEntity tile); - - void onTick(int slot, TileEntity tile); - - void addTooltip(List list); -} diff --git a/src/api/java/forestry/api/circuits/ICircuitBoard.java b/src/api/java/forestry/api/circuits/ICircuitBoard.java deleted file mode 100644 index 3b424d75..00000000 --- a/src/api/java/forestry/api/circuits/ICircuitBoard.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.circuits; - -import java.util.List; - -import net.minecraft.tileentity.TileEntity; - -import forestry.api.core.INBTTagable; - -public interface ICircuitBoard extends INBTTagable { - - int getPrimaryColor(); - - int getSecondaryColor(); - - void addTooltip(List list); - - void onInsertion(TileEntity tile); - - void onLoad(TileEntity tile); - - void onRemoval(TileEntity tile); - - void onTick(TileEntity tile); - - ICircuit[] getCircuits(); - -} diff --git a/src/api/java/forestry/api/circuits/ICircuitLayout.java b/src/api/java/forestry/api/circuits/ICircuitLayout.java deleted file mode 100644 index e90853b9..00000000 --- a/src/api/java/forestry/api/circuits/ICircuitLayout.java +++ /dev/null @@ -1,16 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.circuits; - -public interface ICircuitLayout { - - String getUID(); - - String getName(); - - String getUsage(); - -} diff --git a/src/api/java/forestry/api/circuits/ICircuitLibrary.java b/src/api/java/forestry/api/circuits/ICircuitLibrary.java deleted file mode 100644 index 0d65ba45..00000000 --- a/src/api/java/forestry/api/circuits/ICircuitLibrary.java +++ /dev/null @@ -1,10 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.circuits; - -public interface ICircuitLibrary { - -} diff --git a/src/api/java/forestry/api/circuits/ICircuitRegistry.java b/src/api/java/forestry/api/circuits/ICircuitRegistry.java deleted file mode 100644 index 9fb2b94d..00000000 --- a/src/api/java/forestry/api/circuits/ICircuitRegistry.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.circuits; - -import java.util.Map; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface ICircuitRegistry { - - /* CIRCUITS */ - Map getRegisteredCircuits(); - - void registerCircuit(ICircuit circuit); - - ICircuit getCircuit(String uid); - - ICircuitLibrary getCircuitLibrary(World world, String playername); - - /* LAYOUTS */ - Map getRegisteredLayouts(); - - void registerLayout(ICircuitLayout layout); - - ICircuitLayout getLayout(String uid); - - ICircuitLayout getDefaultLayout(); - - ICircuitBoard getCircuitboard(ItemStack itemstack); - - boolean isChipset(ItemStack itemstack); - -} diff --git a/src/api/java/forestry/api/circuits/ISolderManager.java b/src/api/java/forestry/api/circuits/ISolderManager.java deleted file mode 100644 index af9b41f1..00000000 --- a/src/api/java/forestry/api/circuits/ISolderManager.java +++ /dev/null @@ -1,14 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.circuits; - -import net.minecraft.item.ItemStack; - -public interface ISolderManager { - - void addRecipe(ICircuitLayout layout, ItemStack resource, ICircuit circuit); - -} diff --git a/src/api/java/forestry/api/circuits/package-info.java b/src/api/java/forestry/api/circuits/package-info.java deleted file mode 100644 index 88612198..00000000 --- a/src/api/java/forestry/api/circuits/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="2.0.0", owner="ForestryAPI|core", provides="ForestryAPI|circuits") -package forestry.api.circuits; -import cpw.mods.fml.common.API; diff --git a/src/api/java/forestry/api/core/BiomeHelper.java b/src/api/java/forestry/api/core/BiomeHelper.java deleted file mode 100644 index bc20cd66..00000000 --- a/src/api/java/forestry/api/core/BiomeHelper.java +++ /dev/null @@ -1,36 +0,0 @@ -package forestry.api.core; - -import java.util.HashMap; -import java.util.Map; - -import net.minecraft.world.biome.BiomeGenBase; - -import net.minecraftforge.common.BiomeDictionary; - -public class BiomeHelper { - - private static final Map isBiomeHellishCache = new HashMap(); - - /** - * Determines if it can rain or snow in the given biome. - */ - public static boolean canRainOrSnow(BiomeGenBase biomeGenBase) { - return biomeGenBase.getEnableSnow() || biomeGenBase.canSpawnLightningBolt(); - } - - /** - * Determines if a given BiomeGenBase is of HELLISH temperature, since it is treated separately from actual temperature values. - * Uses the BiomeDictionary. - * @param biomeGen BiomeGenBase of the biome in question - * @return true, if the BiomeGenBase is a Nether-type biome; false otherwise. - */ - public static boolean isBiomeHellish(BiomeGenBase biomeGen) { - if (isBiomeHellishCache.containsKey(biomeGen)) { - return isBiomeHellishCache.get(biomeGen); - } - - boolean isBiomeHellish = BiomeDictionary.isBiomeOfType(biomeGen, BiomeDictionary.Type.NETHER); - isBiomeHellishCache.put(biomeGen, isBiomeHellish); - return isBiomeHellish; - } -} diff --git a/src/api/java/forestry/api/core/EnumHumidity.java b/src/api/java/forestry/api/core/EnumHumidity.java deleted file mode 100644 index a8743169..00000000 --- a/src/api/java/forestry/api/core/EnumHumidity.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -/** - * Many things Forestry use temperature and humidity of a biome to determine whether they can or how they can work or spawn at a given location. - * - * This enum concerns humidity. - */ -public enum EnumHumidity { - ARID("Arid"), NORMAL("Normal"), DAMP("Damp"); - - public final String name; - - private EnumHumidity(String name) { - this.name = name; - } - - public String getName() { - return this.name; - } - - /** - * Determines the EnumHumidity given a floating point representation of Minecraft Rainfall. - * To check if rainfall is possible in a biome, use BiomeHelper.canRainOrSnow(). - * @param rawHumidity raw rainfall value - * @return EnumHumidity corresponding to rainfall value - */ - public static EnumHumidity getFromValue(float rawHumidity) { - if (rawHumidity > 0.85f) { // matches BiomeGenBase.isHighHumidity() - return DAMP; - } - else if (rawHumidity >= 0.3f) { - return NORMAL; - } - else { - return ARID; - } - } -} diff --git a/src/api/java/forestry/api/core/EnumTemperature.java b/src/api/java/forestry/api/core/EnumTemperature.java deleted file mode 100644 index a6036692..00000000 --- a/src/api/java/forestry/api/core/EnumTemperature.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -import net.minecraft.util.IIcon; -import net.minecraft.world.biome.BiomeGenBase; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -/** - * Many things Forestry use temperature and humidity of a biome to determine whether they can or how they can work or spawn at a given location. - * - * This enum concerns temperature. - */ -public enum EnumTemperature { - NONE("None", "habitats/ocean"), ICY("Icy", "habitats/snow"), COLD("Cold", "habitats/taiga"), - NORMAL("Normal", "habitats/plains"), WARM("Warm", "habitats/jungle"), HOT("Hot", "habitats/desert"), HELLISH("Hellish", "habitats/nether"); - - public final String name; - public final String iconIndex; - - private EnumTemperature(String name, String iconIndex) { - this.name = name; - this.iconIndex = iconIndex; - } - - public String getName() { - return this.name; - } - - @SideOnly(Side.CLIENT) - public IIcon getIcon() { - return ForestryAPI.textureManager.getDefault(iconIndex); - } - - /** - * Determines the EnumTemperature given a floating point representation of - * Minecraft temperature. Hellish biomes are handled based on their biome - * type - check BiomeHelper.isBiomeHellish. - * @param rawTemp raw temperature value - * @return EnumTemperature corresponding to value of rawTemp - */ - public static EnumTemperature getFromValue(float rawTemp) { - if (rawTemp > 1.00f) { - return HOT; - } - else if (rawTemp > 0.80f) { - return WARM; - } - else if (rawTemp > 0.30f) { - return NORMAL; - } - else if (rawTemp > 0.0f) { - return COLD; - } - else { - return ICY; - } - } - - public static EnumTemperature getFromBiome(BiomeGenBase biomeGenBase) { - if (BiomeHelper.isBiomeHellish(biomeGenBase)) { - return HELLISH; - } - return getFromValue(biomeGenBase.temperature); - } - - public static EnumTemperature getFromBiome(BiomeGenBase biomeGenBase, int x, int y, int z) { - if (BiomeHelper.isBiomeHellish(biomeGenBase)) { - return HELLISH; - } - float temperature = biomeGenBase.getFloatTemperature(x, y, z); - return getFromValue(temperature); - } -} diff --git a/src/api/java/forestry/api/core/ErrorStateRegistry.java b/src/api/java/forestry/api/core/ErrorStateRegistry.java deleted file mode 100644 index 67e5c466..00000000 --- a/src/api/java/forestry/api/core/ErrorStateRegistry.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - ******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************* - */ -package forestry.api.core; - -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import net.minecraft.client.renderer.texture.IIconRegister; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -/** - * - * @author CovertJaguar - */ -public class ErrorStateRegistry { - - private static final BiMap states = HashBiMap.create(); - private static final Map stateNames = new HashMap(); - private static final Set stateView = Collections.unmodifiableSet(states.inverse().keySet()); - - public static void registerErrorState(IErrorState state) { - if (states.containsKey(state.getID())) - throw new RuntimeException("Forestry Error State does not possess a unique id."); - states.put(state.getID(), state); - addStateName(state, state.getUniqueName()); - } - - public static void addAlias(IErrorState state, String name) { - if (!states.values().contains(state)) - throw new RuntimeException("Forestry Error State did not exist while trying to register alias."); - addStateName(state, name); - } - - private static void addStateName(IErrorState state, String name) { - if (!name.contains(":")) - throw new RuntimeException("Forestry Error State name must be in the format :."); - if (stateNames.containsKey(name)) - throw new RuntimeException("Forestry Error State does not possess a unique name."); - stateNames.put(name, state); - } - - public static IErrorState getErrorState(short id) { - return states.get(id); - } - - public static IErrorState getErrorState(String name) { - return stateNames.get(name); - } - - public static Set getErrorStates() { - return stateView; - } - - @SideOnly(Side.CLIENT) - public static void initIcons(IIconRegister register) { - for (IErrorState code : states.values()) { - code.registerIcons(register); - } - } -} diff --git a/src/api/java/forestry/api/core/ForestryAPI.java b/src/api/java/forestry/api/core/ForestryAPI.java deleted file mode 100644 index 24c5b7eb..00000000 --- a/src/api/java/forestry/api/core/ForestryAPI.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -/** - * Forestry's API is divided into several subcategories to make it easier to understand. - * - * If you need to distribute API files, try to only include the parts you are actually - * using to minimize conflicts due to API changes. - * - * .core - Miscallenous base classes and interfaces as well as some basics for tools, armor, game modes and stuff needed by biome mods. - * .fuels - Managers and classes to facilitate adding fuels to various engines and machines. - * .recipes - Managers and helpers to facilitate adding new recipes to various machines. - * .storage - Managers, events and interfaces for defining new backpacks and handling backpack behaviour. - * .mail - Anything related to handling letters and adding new mail carrier systems. - * .genetics - Shared code for all genetic subclasses. - * \ .apiculture - Bees. - * \ .arboriculture - Trees. - * \ .lepidopterology - Butterflies. - * - * Note that if Forestry is not present, all these references will be null. - */ -public class ForestryAPI { - - /** - * The main mod instance for Forestry. - */ - public static Object instance; - - /** - * A {@link ITextureManager} needed for some things in the API. - */ - @SideOnly(Side.CLIENT) - public static ITextureManager textureManager; - - /** - * The currently active {@link IGameMode}. - */ - public static IGameMode activeMode; - - /** - * Provides information on certain Forestry constants (Villager IDs, Chest gen keys, etc) - */ - public static IForestryConstants forestryConstants; - -} diff --git a/src/api/java/forestry/api/core/ForestryEvent.java b/src/api/java/forestry/api/core/ForestryEvent.java deleted file mode 100644 index 86aac9bc..00000000 --- a/src/api/java/forestry/api/core/ForestryEvent.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -import net.minecraft.entity.player.EntityPlayer; - -import com.mojang.authlib.GameProfile; - -import cpw.mods.fml.common.eventhandler.Event; - -import forestry.api.genetics.IAlleleSpecies; -import forestry.api.genetics.IBreedingTracker; -import forestry.api.genetics.IMutation; -import forestry.api.genetics.ISpeciesRoot; - -public abstract class ForestryEvent extends Event { - - private static abstract class BreedingEvent extends ForestryEvent { - public final ISpeciesRoot root; - public final IBreedingTracker tracker; - public final GameProfile username; - - private BreedingEvent(ISpeciesRoot root, GameProfile username, IBreedingTracker tracker) { - super(); - this.root = root; - this.username = username; - this.tracker = tracker; - } - } - - public static class SpeciesDiscovered extends BreedingEvent { - public final IAlleleSpecies species; - public SpeciesDiscovered(ISpeciesRoot root, GameProfile username, IAlleleSpecies species, IBreedingTracker tracker) { - super(root, username, tracker); - this.species = species; - } - } - - public static class MutationDiscovered extends BreedingEvent { - public final IMutation allele; - public MutationDiscovered(ISpeciesRoot root, GameProfile username, IMutation allele, IBreedingTracker tracker) { - super(root, username, tracker); - this.allele = allele; - } - } - - public static class SyncedBreedingTracker extends ForestryEvent { - public final IBreedingTracker tracker; - public final EntityPlayer player; - public SyncedBreedingTracker(IBreedingTracker tracker, EntityPlayer player) { - super(); - this.tracker = tracker; - this.player = player; - } - - } -} diff --git a/src/api/java/forestry/api/core/IArmorNaturalist.java b/src/api/java/forestry/api/core/IArmorNaturalist.java deleted file mode 100644 index 87400e27..00000000 --- a/src/api/java/forestry/api/core/IArmorNaturalist.java +++ /dev/null @@ -1,25 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public interface IArmorNaturalist { - - /** - * Called when the naturalist's armor acts as spectacles for seeing pollinated tree leaves/flowers. - * - * @param player - * Player doing the viewing - * @param armor - * Armor item - * @param doSee - * Whether or not to actually do the side effects of viewing - * @return true if the armor actually allows the player to see pollination. - */ - public boolean canSeePollination(EntityPlayer player, ItemStack armor, boolean doSee); -} diff --git a/src/api/java/forestry/api/core/IErrorState.java b/src/api/java/forestry/api/core/IErrorState.java deleted file mode 100644 index b17305fb..00000000 --- a/src/api/java/forestry/api/core/IErrorState.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - ******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************* - */ -package forestry.api.core; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.util.IIcon; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -/** - * - * @author CovertJaguar - */ -public interface IErrorState { - - short getID(); - - String getUniqueName(); - - String getDescription(); - - String getHelp(); - - @SideOnly(Side.CLIENT) - void registerIcons(IIconRegister register); - - @SideOnly(value = Side.CLIENT) - IIcon getIcon(); - -} diff --git a/src/api/java/forestry/api/core/IForestryConstants.java b/src/api/java/forestry/api/core/IForestryConstants.java deleted file mode 100644 index 4cf876f6..00000000 --- a/src/api/java/forestry/api/core/IForestryConstants.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -public interface IForestryConstants { - - /** - * @return The villager ID for the Apiarist Villager. - */ - public int getApicultureVillagerID(); - - /** - * @return The villager ID for the Arborist Villager. - */ - public int getArboricultureVillagerID(); - - /** - * @return The ChestGenHooks key for adding items to the Forestry Villager chest. - */ - public String getVillagerChestGenKey(); -} diff --git a/src/api/java/forestry/api/core/IGameMode.java b/src/api/java/forestry/api/core/IGameMode.java deleted file mode 100644 index 0b2b0c55..00000000 --- a/src/api/java/forestry/api/core/IGameMode.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -import net.minecraft.item.ItemStack; - -public interface IGameMode { - - /** - * @return Human-readable identifier for the game mode. (i.e. 'EASY', 'NORMAL', 'HARD') - */ - String getIdentifier(); - - /** - * @param ident Identifier for the setting. (See the gamemode config.) - * @return Value of the requested setting, false if unknown setting. - */ - boolean getBooleanSetting(String ident); - - /** - * @param ident Identifier for the setting. (See the gamemode config.) - * @return Value of the requested setting, 0 if unknown setting. - */ - int getIntegerSetting(String ident); - - /** - * @param ident Identifier for the setting. (See the gamemode config.) - * @return Value of the requested setting, 0 if unknown setting. - */ - float getFloatSetting(String ident); - - /** - * @param ident Identifier for the setting. (See the gamemode config.) - * @return Value of the requested setting, an itemstack containing an apple if unknown setting. - */ - ItemStack getStackSetting(String ident); - -} diff --git a/src/api/java/forestry/api/core/IIconProvider.java b/src/api/java/forestry/api/core/IIconProvider.java deleted file mode 100644 index 308e3ce5..00000000 --- a/src/api/java/forestry/api/core/IIconProvider.java +++ /dev/null @@ -1,25 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.util.IIcon; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -/** - * Provides icons, needed in some interfaces, most notably for bees and trees. - */ -public interface IIconProvider { - - @SideOnly(Side.CLIENT) - IIcon getIcon(short texUID); - - @SideOnly(Side.CLIENT) - void registerIcons(IIconRegister register); - -} diff --git a/src/api/java/forestry/api/core/INBTTagable.java b/src/api/java/forestry/api/core/INBTTagable.java deleted file mode 100644 index 1d3f8580..00000000 --- a/src/api/java/forestry/api/core/INBTTagable.java +++ /dev/null @@ -1,14 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -import net.minecraft.nbt.NBTTagCompound; - -public interface INBTTagable { - void readFromNBT(NBTTagCompound nbttagcompound); - - void writeToNBT(NBTTagCompound nbttagcompound); -} diff --git a/src/api/java/forestry/api/core/IStructureLogic.java b/src/api/java/forestry/api/core/IStructureLogic.java deleted file mode 100644 index aa93d171..00000000 --- a/src/api/java/forestry/api/core/IStructureLogic.java +++ /dev/null @@ -1,20 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -public interface IStructureLogic extends INBTTagable { - - /** - * @return String unique to the type of structure controlled by this structure logic. - */ - String getTypeUID(); - - /** - * Called by {@link ITileStructure}'s validateStructure(). - */ - void validateStructure(); - -} diff --git a/src/api/java/forestry/api/core/ITextureManager.java b/src/api/java/forestry/api/core/ITextureManager.java deleted file mode 100644 index a259fcae..00000000 --- a/src/api/java/forestry/api/core/ITextureManager.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -import net.minecraft.util.IIcon; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public interface ITextureManager { - - void registerIconProvider(IIconProvider provider); - - IIcon getIcon(short texUID); - - IIcon getDefault(String ident); -} diff --git a/src/api/java/forestry/api/core/ITileStructure.java b/src/api/java/forestry/api/core/ITileStructure.java deleted file mode 100644 index c8c29cad..00000000 --- a/src/api/java/forestry/api/core/ITileStructure.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.tileentity.TileEntity; - -/** - * The basis for multiblock components. - */ -public interface ITileStructure { - - /** - * @return String unique to the type of structure controlled by this structure logic. Should map to {@link IStructureLogic} - */ - String getTypeUID(); - - /** - * Should map to {@link IStructureLogic} - */ - void validateStructure(); - - /** - * Called when the structure resets. - */ - void onStructureReset(); - - /** - * @return TileEntity that is the master in this structure, null if no structure exists. - */ - ITileStructure getCentralTE(); - - /** - * Called to set the master TileEntity. Implementing TileEntity should keep track of the master's coordinates, not refer to the TE object itself. - * - * @param tile - */ - void setCentralTE(TileEntity tile); - - /** - * @return ISidedInventory representing the inventory accessed from this block. - */ - ISidedInventory getStructureInventory(); - - /** - * Only called on Forestry's own blocks. - */ - void makeMaster(); - - /** - * @return true if this TE is the master in a structure, false otherwise. - */ - boolean isMaster(); - - /** - * @return true if the TE is master or has a master. - */ - boolean isIntegratedIntoStructure(); - -} diff --git a/src/api/java/forestry/api/core/IToolPipette.java b/src/api/java/forestry/api/core/IToolPipette.java deleted file mode 100644 index f5f1a633..00000000 --- a/src/api/java/forestry/api/core/IToolPipette.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.api.core; - -import net.minecraft.item.ItemStack; - -import net.minecraftforge.fluids.FluidStack; - -/** - * Taken from BuildCraft 5.0.x - */ -public interface IToolPipette { - - /** - * @param pipette - * ItemStack of the pipette. - * @return Capacity of the pipette. - */ - int getCapacity(ItemStack pipette); - - /** - * @param pipette - * @return true if the pipette can pipette. - */ - boolean canPipette(ItemStack pipette); - - /** - * Fills the pipette with the given liquid stack. - * - * @param pipette - * @param liquid - * @param doFill - * @return Amount of liquid used in filling the pipette. - */ - int fill(ItemStack pipette, FluidStack liquid, boolean doFill); - - /** - * Drains liquid from the pipette - * - * @param pipette - * @param maxDrain - * @param doDrain - * @return Fluid stack representing the liquid and amount drained from the pipette. - */ - FluidStack drain(ItemStack pipette, int maxDrain, boolean doDrain); -} diff --git a/src/api/java/forestry/api/core/IToolScoop.java b/src/api/java/forestry/api/core/IToolScoop.java deleted file mode 100644 index 583b6c7e..00000000 --- a/src/api/java/forestry/api/core/IToolScoop.java +++ /dev/null @@ -1,13 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -/** - * Marks a tool as a scoop. - */ -public interface IToolScoop { - -} diff --git a/src/api/java/forestry/api/core/Tabs.java b/src/api/java/forestry/api/core/Tabs.java deleted file mode 100644 index 4ce85838..00000000 --- a/src/api/java/forestry/api/core/Tabs.java +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.core; - -import net.minecraft.creativetab.CreativeTabs; - -/** - * References to the specialised tabs added by Forestry to creative inventory. - */ -public class Tabs { - - public static CreativeTabs tabApiculture; - public static CreativeTabs tabArboriculture; - public static CreativeTabs tabLepidopterology; - -} diff --git a/src/api/java/forestry/api/core/package-info.java b/src/api/java/forestry/api/core/package-info.java deleted file mode 100644 index d23a348d..00000000 --- a/src/api/java/forestry/api/core/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="3.1.0", owner="Forestry", provides="ForestryAPI|core") -package forestry.api.core; -import cpw.mods.fml.common.API; diff --git a/src/api/java/forestry/api/farming/Farmables.java b/src/api/java/forestry/api/farming/Farmables.java deleted file mode 100644 index bc4c159c..00000000 --- a/src/api/java/forestry/api/farming/Farmables.java +++ /dev/null @@ -1,20 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.farming; - -import java.util.Collection; -import java.util.HashMap; - -public class Farmables { - /** - * Can be used to add IFarmables to some of the vanilla farm logics. - * - * Identifiers: farmArboreal farmWheat farmGourd farmInfernal farmPoales farmSucculentes farmVegetables farmShroom - */ - public static HashMap> farmables = new HashMap>(); - - public static IFarmInterface farmInterface; -} diff --git a/src/api/java/forestry/api/farming/ICrop.java b/src/api/java/forestry/api/farming/ICrop.java deleted file mode 100644 index 22575477..00000000 --- a/src/api/java/forestry/api/farming/ICrop.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.farming; - -import java.util.Collection; - -import net.minecraft.item.ItemStack; - -public interface ICrop { - - /** - * Harvests this crop. Performs the necessary manipulations to set the crop into a "harvested" state. - * - * @return Products harvested. - */ - Collection harvest(); - -} diff --git a/src/api/java/forestry/api/farming/IFarmComponent.java b/src/api/java/forestry/api/farming/IFarmComponent.java deleted file mode 100644 index 3387f7a3..00000000 --- a/src/api/java/forestry/api/farming/IFarmComponent.java +++ /dev/null @@ -1,17 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.farming; - -import forestry.api.core.ITileStructure; - -public interface IFarmComponent extends ITileStructure { - - boolean hasFunction(); - - void registerListener(IFarmListener listener); - - void removeListener(IFarmListener listener); -} diff --git a/src/api/java/forestry/api/farming/IFarmHousing.java b/src/api/java/forestry/api/farming/IFarmHousing.java deleted file mode 100644 index acdd982d..00000000 --- a/src/api/java/forestry/api/farming/IFarmHousing.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.farming; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; - -public interface IFarmHousing { - - int[] getCoords(); - - int[] getArea(); - - int[] getOffset(); - - World getWorld(); - - /** - * Will run the work cycle on a master TE. Will do nothing on any other farm component. - * - * @return true if any work was done, false otherwise. - */ - boolean doWork(); - - boolean hasLiquid(FluidStack liquid); - - void removeLiquid(FluidStack liquid); - - boolean hasResources(ItemStack[] resources); - - void removeResources(ItemStack[] resources); - - /** - * Callback for {@link IFarmLogic}s to plant a sapling, seed, germling, stem. Will remove the appropriate germling from the farm's inventory. It's up to the - * logic to only call this on a valid location. - * - * @param farmable - * @param world - * @param x - * @param y - * @param z - * @return true if planting was successful, false otherwise. - */ - boolean plantGermling(IFarmable farmable, World world, int x, int y, int z); - - /* INTERACTION WITH HATCHES */ - boolean acceptsAsGermling(ItemStack itemstack); - - boolean acceptsAsResource(ItemStack itemstack); - - boolean acceptsAsFertilizer(ItemStack itemstack); - - /* LOGIC */ - /** - * Set a farm logic for the given direction. UP/DOWN/UNKNOWN are invalid! - * - * @param direction - * @param logic - */ - void setFarmLogic(ForgeDirection direction, IFarmLogic logic); - - /** - * Reset the farm logic for the given direction to default. UP/DOWN/UNKNOWN are invalid! - * - * @param direction - */ - void resetFarmLogic(ForgeDirection direction); -} diff --git a/src/api/java/forestry/api/farming/IFarmInterface.java b/src/api/java/forestry/api/farming/IFarmInterface.java deleted file mode 100644 index 08968747..00000000 --- a/src/api/java/forestry/api/farming/IFarmInterface.java +++ /dev/null @@ -1,20 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.farming; - -import forestry.api.core.IStructureLogic; - -public interface IFarmInterface { - - /** - * Creates {@link IStructureLogic} for use in farm components. - * - * @param structure - * {@link IFarmComponent} to create the logic for. - * @return {@link IStructureLogic} for use in farm components - */ - IStructureLogic createFarmStructureLogic(IFarmComponent structure); -} diff --git a/src/api/java/forestry/api/farming/IFarmListener.java b/src/api/java/forestry/api/farming/IFarmListener.java deleted file mode 100644 index 461525ff..00000000 --- a/src/api/java/forestry/api/farming/IFarmListener.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.farming; - -import java.util.Collection; - -import net.minecraft.item.ItemStack; - -import net.minecraftforge.common.util.ForgeDirection; - -public interface IFarmListener { - - /** - * Called before a crop is harvested. - * - * @param crop - * ICrop about to be harvested. - * @return true to cancel further processing of this crop. - */ - boolean beforeCropHarvest(ICrop crop); - - /** - * Called after a crop has been harvested, but before harvested items are stowed in the farms inventory. - * - * @param harvested - * Collection of harvested stacks. May be manipulated. Ensure removal of stacks with 0 or less items! - * @param crop - * Harvested {@link ICrop} - */ - void afterCropHarvest(Collection harvested, ICrop crop); - - /** - * Called after the stack of collected items has been returned by the farm logic, but before it is added to the farm's pending queue. - * - * @param collected - * Collection of collected stacks. May be manipulated. Ensure removal of stacks with 0 or less items! - * @param logic - */ - void hasCollected(Collection collected, IFarmLogic logic); - - /** - * Called after farmland has successfully been cultivated by a farm logic. - * - * @param logic - * @param x - * @param y - * @param z - * @param direction - * @param extent - */ - void hasCultivated(IFarmLogic logic, int x, int y, int z, ForgeDirection direction, int extent); - - /** - * Called after the stack of harvested crops has been returned by the farm logic, but before it is added to the farm's pending queue. - * - * @param harvested - * @param logic - * @param x - * @param y - * @param z - * @param direction - * @param extent - */ - void hasScheduledHarvest(Collection harvested, IFarmLogic logic, int x, int y, int z, ForgeDirection direction, int extent); - - /** - * Can be used to cancel farm task on a per side/{@link IFarmLogic} basis. - * - * @param logic - * @param direction - * @return true to skip any work action on the given logic and direction for this work cycle. - */ - boolean cancelTask(IFarmLogic logic, ForgeDirection direction); -} diff --git a/src/api/java/forestry/api/farming/IFarmLogic.java b/src/api/java/forestry/api/farming/IFarmLogic.java deleted file mode 100644 index 1c2482c0..00000000 --- a/src/api/java/forestry/api/farming/IFarmLogic.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.farming; - -import java.util.Collection; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import net.minecraftforge.common.util.ForgeDirection; - -public interface IFarmLogic { - - int getFertilizerConsumption(); - - int getWaterConsumption(float hydrationModifier); - - boolean isAcceptedResource(ItemStack itemstack); - - boolean isAcceptedGermling(ItemStack itemstack); - - Collection collect(); - - boolean cultivate(int x, int y, int z, ForgeDirection direction, int extent); - - Collection harvest(int x, int y, int z, ForgeDirection direction, int extent); - - IFarmLogic setManual(boolean manual); - - @SideOnly(Side.CLIENT) - IIcon getIcon(); - - ResourceLocation getSpriteSheet(); - - String getName(); -} diff --git a/src/api/java/forestry/api/farming/IFarmable.java b/src/api/java/forestry/api/farming/IFarmable.java deleted file mode 100644 index 440ae599..00000000 --- a/src/api/java/forestry/api/farming/IFarmable.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.farming; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -/** - * IGermling describes a crop or other harvestable object and can be used to inspect item stacks and blocks for matches. - */ -public interface IFarmable { - - /** - * @param world - * @param x - * @param y - * @param z - * @return true if the block at the given location is a "sapling" for this type, i.e. a non-harvestable immature version of the crop. - */ - boolean isSaplingAt(World world, int x, int y, int z); - - /** - * @param world - * @param x - * @param y - * @param z - * @return {@link ICrop} if the block at the given location is a harvestable and mature crop, null otherwise. - */ - ICrop getCropAt(World world, int x, int y, int z); - - /** - * @param itemstack - * @return true if the item is a valid germling (plantable sapling, seed, etc.) for this type. - */ - boolean isGermling(ItemStack itemstack); - - /** - * @param itemstack - * @return true if the item is something that can drop from this type without actually being harvested as a crop. (Apples or sapling from decaying leaves.) - */ - boolean isWindfall(ItemStack itemstack); - - /** - * Plants a sapling by manipulating the world. The {@link IFarmLogic} should have verified the given location as valid. Called by the {@link IFarmHousing} - * which handles resources. - * - * @param germling - * @param world - * @param x - * @param y - * @param z - * @return true on success, false otherwise. - */ - boolean plantSaplingAt(EntityPlayer player, ItemStack germling, World world, int x, int y, int z); - -} diff --git a/src/api/java/forestry/api/farming/package-info.java b/src/api/java/forestry/api/farming/package-info.java deleted file mode 100644 index 4460886c..00000000 --- a/src/api/java/forestry/api/farming/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="1.1.0", owner="ForestryAPI|core", provides="ForestryAPI|farming") -package forestry.api.farming; -import cpw.mods.fml.common.API; diff --git a/src/api/java/forestry/api/food/BeverageManager.java b/src/api/java/forestry/api/food/BeverageManager.java deleted file mode 100644 index 2b0143ab..00000000 --- a/src/api/java/forestry/api/food/BeverageManager.java +++ /dev/null @@ -1,13 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.food; - -public class BeverageManager { - public static IBeverageEffect[] effectList = new IBeverageEffect[128]; - - public static IInfuserManager infuserManager; - public static IIngredientManager ingredientManager; -} diff --git a/src/api/java/forestry/api/food/IBeverageEffect.java b/src/api/java/forestry/api/food/IBeverageEffect.java deleted file mode 100644 index 6a787411..00000000 --- a/src/api/java/forestry/api/food/IBeverageEffect.java +++ /dev/null @@ -1,17 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.food; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public interface IBeverageEffect { - int getId(); - - void doEffect(World world, EntityPlayer player); - - String getDescription(); -} diff --git a/src/api/java/forestry/api/food/IInfuserManager.java b/src/api/java/forestry/api/food/IInfuserManager.java deleted file mode 100644 index d778ffa4..00000000 --- a/src/api/java/forestry/api/food/IInfuserManager.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.food; - -import net.minecraft.item.ItemStack; - -public interface IInfuserManager { - - void addMixture(int meta, ItemStack ingredient, IBeverageEffect effect); - - void addMixture(int meta, ItemStack[] ingredients, IBeverageEffect effect); - - ItemStack getSeasoned(ItemStack base, ItemStack[] ingredients); - - boolean hasMixtures(ItemStack[] ingredients); - - boolean isIngredient(ItemStack itemstack); - - ItemStack[] getRequired(ItemStack[] ingredients); - -} diff --git a/src/api/java/forestry/api/food/IIngredientManager.java b/src/api/java/forestry/api/food/IIngredientManager.java deleted file mode 100644 index fab0e012..00000000 --- a/src/api/java/forestry/api/food/IIngredientManager.java +++ /dev/null @@ -1,16 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.food; - -import net.minecraft.item.ItemStack; - -public interface IIngredientManager { - - String getDescription(ItemStack itemstack); - - void addIngredient(ItemStack ingredient, String description); - -} diff --git a/src/api/java/forestry/api/food/package-info.java b/src/api/java/forestry/api/food/package-info.java deleted file mode 100644 index 372c3016..00000000 --- a/src/api/java/forestry/api/food/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="1.1.0", owner="ForestryAPI|core", provides="ForestryAPI|food") -package forestry.api.food; -import cpw.mods.fml.common.API; diff --git a/src/api/java/forestry/api/fuels/EngineBronzeFuel.java b/src/api/java/forestry/api/fuels/EngineBronzeFuel.java deleted file mode 100644 index cbab0caf..00000000 --- a/src/api/java/forestry/api/fuels/EngineBronzeFuel.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.fuels; - -import net.minecraftforge.fluids.Fluid; - -public class EngineBronzeFuel { - /** - * Item that is valid fuel for a biogas engine. - */ - public final Fluid liquid; - /** - * Power produced by this fuel per work cycle of the engine. - */ - public final int powerPerCycle; - /** - * How many work cycles a single "stack" of this type lasts. - */ - public final int burnDuration; - /** - * By how much the normal heat dissipation rate of 1 is multiplied when using this fuel type. - */ - public final int dissipationMultiplier; - - public EngineBronzeFuel(Fluid liquid, int powerPerCycle, int burnDuration, int dissipationMultiplier) { - this.liquid = liquid; - this.powerPerCycle = powerPerCycle; - this.burnDuration = burnDuration; - this.dissipationMultiplier = dissipationMultiplier; - } -} diff --git a/src/api/java/forestry/api/fuels/EngineCopperFuel.java b/src/api/java/forestry/api/fuels/EngineCopperFuel.java deleted file mode 100644 index af568dd4..00000000 --- a/src/api/java/forestry/api/fuels/EngineCopperFuel.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.fuels; - -import net.minecraft.item.ItemStack; - -public class EngineCopperFuel { - - /** - * Item that is valid fuel for a peat-fired engine. - */ - public final ItemStack fuel; - /** - * Power produced by this fuel per work cycle. - */ - public final int powerPerCycle; - /** - * Amount of work cycles this item lasts before being consumed. - */ - public final int burnDuration; - - public EngineCopperFuel(ItemStack fuel, int powerPerCycle, int burnDuration) { - this.fuel = fuel; - this.powerPerCycle = powerPerCycle; - this.burnDuration = burnDuration; - } - -} diff --git a/src/api/java/forestry/api/fuels/FermenterFuel.java b/src/api/java/forestry/api/fuels/FermenterFuel.java deleted file mode 100644 index 32989a80..00000000 --- a/src/api/java/forestry/api/fuels/FermenterFuel.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.fuels; - -import net.minecraft.item.ItemStack; - -public class FermenterFuel { - /** - * Item that is a valid fuel for the fermenter (i.e. fertilizer). - */ - public final ItemStack item; - /** - * How much is fermeted per work cycle, i.e. how much biomass is produced per cycle. - */ - public final int fermentPerCycle; - /** - * Amount of work cycles a single item of this fuel lasts before expiring. - */ - public final int burnDuration; - - public FermenterFuel(ItemStack item, int fermentPerCycle, int burnDuration) { - this.item = item; - this.fermentPerCycle = fermentPerCycle; - this.burnDuration = burnDuration; - } -} diff --git a/src/api/java/forestry/api/fuels/FuelManager.java b/src/api/java/forestry/api/fuels/FuelManager.java deleted file mode 100644 index f53d6fb7..00000000 --- a/src/api/java/forestry/api/fuels/FuelManager.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.fuels; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; - -import java.util.HashMap; - - -public class FuelManager { - /** - * Add new fuels for the fermenter here (i.e. fertilizer). - */ - public static HashMap fermenterFuel; - /** - * Add new resources for the moistener here (i.e. wheat) - */ - public static HashMap moistenerResource; - /** - * Add new substrates for the rainmaker here - */ - public static HashMap rainSubstrate; - /** - * Add new fuels for EngineBronze (= biogas engine) here - */ - public static HashMap bronzeEngineFuel; - /** - * Add new fuels for EngineCopper (= peat-fired engine) here - */ - public static HashMap copperEngineFuel; - /** - * Add new fuels for Generator here - */ - public static HashMap generatorFuel; - -} diff --git a/src/api/java/forestry/api/fuels/GeneratorFuel.java b/src/api/java/forestry/api/fuels/GeneratorFuel.java deleted file mode 100644 index 16e2ee4d..00000000 --- a/src/api/java/forestry/api/fuels/GeneratorFuel.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.fuels; - -import net.minecraftforge.fluids.FluidStack; - -public class GeneratorFuel { - - /** - * LiquidStack representing the fuel type and amount consumed per triggered cycle. - */ - public final FluidStack fuelConsumed; - /** - * EU emitted per tick while this fuel is being consumed in the generator (i.e. biofuel = 32, biomass = 8). - */ - public final int eu; - /** - * Rate at which the fuel is consumed. 1 - Every tick 2 - Every second tick 3 - Every third tick etc. - */ - public final int rate; - - public GeneratorFuel(FluidStack fuelConsumed, int eu, int rate) { - this.fuelConsumed = fuelConsumed; - this.eu = eu; - this.rate = rate; - } - -} diff --git a/src/api/java/forestry/api/fuels/MoistenerFuel.java b/src/api/java/forestry/api/fuels/MoistenerFuel.java deleted file mode 100644 index 4c4c7a0b..00000000 --- a/src/api/java/forestry/api/fuels/MoistenerFuel.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.fuels; - -import net.minecraft.item.ItemStack; - -public class MoistenerFuel { - /** - * The item to use - */ - public final ItemStack item; - /** - * The item that leaves the moistener's working slot (i.e. mouldy wheat, decayed wheat, mulch) - */ - public final ItemStack product; - /** - * How much this item contributes to the final product of the moistener (i.e. mycelium) - */ - public final int moistenerValue; - /** - * What stage this product represents. Resources with lower stage value will be consumed first. - */ - public final int stage; - - public MoistenerFuel(ItemStack item, ItemStack product, int stage, int moistenerValue) { - this.item = item; - this.product = product; - this.stage = stage; - this.moistenerValue = moistenerValue; - } -} diff --git a/src/api/java/forestry/api/fuels/RainSubstrate.java b/src/api/java/forestry/api/fuels/RainSubstrate.java deleted file mode 100644 index ab0deb5a..00000000 --- a/src/api/java/forestry/api/fuels/RainSubstrate.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.fuels; - -import net.minecraft.item.ItemStack; - -public class RainSubstrate { - /** - * Rain substrate capable of activating the rainmaker. - */ - public ItemStack item; - /** - * Duration of the rain shower triggered by this substrate in Minecraft ticks. - */ - public int duration; - /** - * Speed of activation sequence triggered. - */ - public float speed; - - public boolean reverse; - - public RainSubstrate(ItemStack item, int duration, float speed) { - this(item, duration, speed, false); - } - - public RainSubstrate(ItemStack item, float speed) { - this(item, 0, speed, true); - } - - public RainSubstrate(ItemStack item, int duration, float speed, boolean reverse) { - this.item = item; - this.duration = duration; - this.speed = speed; - this.reverse = reverse; - } -} diff --git a/src/api/java/forestry/api/fuels/package-info.java b/src/api/java/forestry/api/fuels/package-info.java deleted file mode 100644 index 748fa228..00000000 --- a/src/api/java/forestry/api/fuels/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="2.0.1", owner="ForestryAPI|core", provides="ForestryAPI|fuels") -package forestry.api.fuels; -import cpw.mods.fml.common.API; diff --git a/src/api/java/forestry/api/genetics/AlleleManager.java b/src/api/java/forestry/api/genetics/AlleleManager.java deleted file mode 100644 index 6e351162..00000000 --- a/src/api/java/forestry/api/genetics/AlleleManager.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import java.util.HashMap; - -import net.minecraft.item.ItemStack; - -/** - * Holds a static reference to the {@link IAlleleRegistry}. - */ -public class AlleleManager { - /** - * Main access point for all things related to genetics. See {@link IAlleleRegistry} for details. - */ - public static IAlleleRegistry alleleRegistry; - /** - * Translates plain leaf blocks into genetic data. Used by bees and butterflies to convert and pollinate foreign leaf blocks. - */ - public static HashMap ersatzSpecimen = new HashMap(); - /** - * Translates plain saplings into genetic data. Used by the treealyzer and the farm to convert foreign saplings. - */ - public static HashMap ersatzSaplings = new HashMap(); - /** - * Queryable instance of an {@link IClimateHelper} for easier implementation. - */ - public static IClimateHelper climateHelper; - /** - * Creates Forestry alleles. - */ - public static IAlleleFactory alleleFactory; -} diff --git a/src/api/java/forestry/api/genetics/EnumTolerance.java b/src/api/java/forestry/api/genetics/EnumTolerance.java deleted file mode 100644 index 6ff0085e..00000000 --- a/src/api/java/forestry/api/genetics/EnumTolerance.java +++ /dev/null @@ -1,16 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -public enum EnumTolerance { - NONE, - - BOTH_1, BOTH_2, BOTH_3, BOTH_4, BOTH_5, - - UP_1, UP_2, UP_3, UP_4, UP_5, - - DOWN_1, DOWN_2, DOWN_3, DOWN_4, DOWN_5 -} diff --git a/src/api/java/forestry/api/genetics/IAllele.java b/src/api/java/forestry/api/genetics/IAllele.java deleted file mode 100644 index 52747410..00000000 --- a/src/api/java/forestry/api/genetics/IAllele.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -/** - * An {@link IIndividual}'s {@link IGenome} is composed of {@link IChromosome}s consisting each of a primary and secondary {@link IAllele}. - * - * {@link IAllele}s hold all information regarding an {@link IIndividual}'s traits, from species to size, temperature tolerances, etc. - * - * Should be extended for different types of alleles. ISpeciesAllele, IBiomeAllele, etc. - * - * @author SirSengir - */ -public interface IAllele { - - /** - * @return A unique string identifier for this allele. - */ - String getUID(); - - /** - * @return true if the allele is dominant, false otherwise. - */ - boolean isDominant(); - - /** - * @return Localized short, human-readable identifier used in tooltips and beealyzer. - */ - String getName(); - - /** - * @return The unlocalized identifier - */ - String getUnlocalizedName(); - -} diff --git a/src/api/java/forestry/api/genetics/IAlleleArea.java b/src/api/java/forestry/api/genetics/IAlleleArea.java deleted file mode 100644 index 7277ff0a..00000000 --- a/src/api/java/forestry/api/genetics/IAlleleArea.java +++ /dev/null @@ -1,15 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -/** - * Simple interface to allow adding additional alleles containing float values. - */ -public interface IAlleleArea extends IAllele { - - int[] getValue(); - -} diff --git a/src/api/java/forestry/api/genetics/IAlleleBoolean.java b/src/api/java/forestry/api/genetics/IAlleleBoolean.java deleted file mode 100644 index 887da3b9..00000000 --- a/src/api/java/forestry/api/genetics/IAlleleBoolean.java +++ /dev/null @@ -1,16 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -/** - * Simple interface to allow adding additional alleles containing float values. - */ -public interface IAlleleBoolean extends IAllele { - - boolean getValue(); - - -} diff --git a/src/api/java/forestry/api/genetics/IAlleleEffect.java b/src/api/java/forestry/api/genetics/IAlleleEffect.java deleted file mode 100644 index 7b94e6b1..00000000 --- a/src/api/java/forestry/api/genetics/IAlleleEffect.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -/** - * Basic effect allele. - */ -public interface IAlleleEffect extends IAllele { - /** - * @return true if this effect can combine with the effect on other allele (i.e. run before or after). combination can only occur if both effects are - * combinable. - */ - boolean isCombinable(); - - /** - * Returns the passed data storage if it is valid for this effect or a new one if the passed storage object was invalid for this effect. - * - * @param storedData - * @return {@link IEffectData} for the next cycle. - */ - IEffectData validateStorage(IEffectData storedData); - -} diff --git a/src/api/java/forestry/api/genetics/IAlleleFactory.java b/src/api/java/forestry/api/genetics/IAlleleFactory.java deleted file mode 100644 index 2b390069..00000000 --- a/src/api/java/forestry/api/genetics/IAlleleFactory.java +++ /dev/null @@ -1,80 +0,0 @@ -package forestry.api.genetics; - -/** - * Creates new alleles with smart localization. - * - * - * UID is created like this: - * modId + '.' + category + WordUtils.capitalize(valueName); - * For Example: - * modId:forestry, category:height, valueName:smallest => forestry.heightSmallest - * This is mainly for legacy compatibility and may change in future major versions. - * - * - * The default localization uses: - * [modId].allele.[valueName] - * - * Languages that need category-specific names can override it by defining: - * [modId].allele.[category].[valueName] - * - * For example: - * en_US - * forestry.allele.smallest=Smallest - * ru_RU - * forestry.allele.smallest=????? ????????? - * forestry.allele.height.smallest=????? ?????? - */ -public interface IAlleleFactory { - /** - * @param modId mod prefix for uid and localization (i.e. "forestry") - * @param category allele category for uid and localization (i.e. "height") - * @param valueName allele value name for uid and localization (i.e. "smallest") - * @param value allele float value - * @param isDominant allele dominance - * @return a new IAlleleFloat - */ - IAlleleFloat createFloat(String modId, String category, String valueName, float value, boolean isDominant); - - /** - * @param modId mod prefix for uid and localization (i.e. "forestry") - * @param category allele category for uid and localization (i.e. "territory") - * @param valueName allele value name for uid and localization (i.e. "large") - * @param xDimValue allele area X Size - * @param yDimValue allele area Y Size - * @param zDimValue allele area Z Size - * @param isDominant allele dominance - * @return a new IAlleleArea - */ - IAlleleArea createArea(String modId, String category, String valueName, int xDimValue, int yDimValue, int zDimValue, boolean isDominant); - - /** - * @param modId mod prefix for uid and localization (i.e. "forestry") - * @param category allele category for uid and localization (i.e. "fertility") - * @param valueName allele value name for uid and localization (i.e. "low") - * @param value allele int value - * @param isDominant allele dominance - * @return a new IAlleleInteger - */ - IAlleleInteger createInteger(String modId, String category, String valueName, int value, boolean isDominant); - - /** - * @param modId mod prefix for uid and localization (i.e. "forestry") - * @param category allele category for uid and localization (i.e. "fireproof") - * @param value allele boolean value - * @param isDominant allele dominance - * @return a new IAlleleBoolean - * Note that valueName will always be "true" or "false" - */ - IAlleleBoolean createBoolean(String modId, String category, boolean value, boolean isDominant); - - /** - * @param modId mod prefix for uid (i.e. "forestry") - * @param category allele category for uid (i.e. "flowers") - * @param valueName allele value name for uid (i.e. "vanilla") - * @param value allele IFlowerProvider value - * @param isDominant allele dominance - * @return a new IAlleleFlowers - * IAlleleFlowers localization is handled by the IFlowerProvider.getDescription(), unlike the other alleles. - */ - IAlleleFlowers createFlowers(String modId, String category, String valueName, IFlowerProvider value, boolean isDominant); -} diff --git a/src/api/java/forestry/api/genetics/IAlleleFloat.java b/src/api/java/forestry/api/genetics/IAlleleFloat.java deleted file mode 100644 index 6ca28776..00000000 --- a/src/api/java/forestry/api/genetics/IAlleleFloat.java +++ /dev/null @@ -1,15 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -/** - * Simple interface to allow adding additional alleles containing float values. - */ -public interface IAlleleFloat extends IAllele { - - float getValue(); - -} diff --git a/src/api/java/forestry/api/genetics/IAlleleFlowers.java b/src/api/java/forestry/api/genetics/IAlleleFlowers.java deleted file mode 100644 index 0368ca41..00000000 --- a/src/api/java/forestry/api/genetics/IAlleleFlowers.java +++ /dev/null @@ -1,16 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - - -public interface IAlleleFlowers extends IAllele { - - /** - * @return FlowerProvider - */ - IFlowerProvider getProvider(); - -} diff --git a/src/api/java/forestry/api/genetics/IAlleleHandler.java b/src/api/java/forestry/api/genetics/IAlleleHandler.java deleted file mode 100644 index 3d052afe..00000000 --- a/src/api/java/forestry/api/genetics/IAlleleHandler.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -/** - * @author Alex Binnie - * - * Handler for events that occur in IAlleleRegistry, such as registering alleles, branches etc. Useful for handling plugin specific behavior (i.e. - * creating a list of all bee species etc.) - * - */ -public interface IAlleleHandler { - - /** - * Called when an allele is registered with {@link IAlleleRegistry}. - * - * @param allele - * Allele which was registered. - */ - public void onRegisterAllele(IAllele allele); - - /** - * Called when a classification is registered with {@link IAlleleRegistry}. - * - * @param classification - * Classification which was registered. - */ - public void onRegisterClassification(IClassification classification); - - /** - * Called when a fruit family is registered with {@link IAlleleRegistry}. - * - * @param family - * Fruit family which was registered. - */ - public void onRegisterFruitFamily(IFruitFamily family); - -} diff --git a/src/api/java/forestry/api/genetics/IAlleleInteger.java b/src/api/java/forestry/api/genetics/IAlleleInteger.java deleted file mode 100644 index 6991efe5..00000000 --- a/src/api/java/forestry/api/genetics/IAlleleInteger.java +++ /dev/null @@ -1,15 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -/** - * Simple interface to allow adding additional alleles containing integer values. - */ -public interface IAlleleInteger extends IAllele { - - int getValue(); - -} diff --git a/src/api/java/forestry/api/genetics/IAllelePlantType.java b/src/api/java/forestry/api/genetics/IAllelePlantType.java deleted file mode 100644 index 211237f2..00000000 --- a/src/api/java/forestry/api/genetics/IAllelePlantType.java +++ /dev/null @@ -1,16 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import java.util.EnumSet; - -import net.minecraftforge.common.EnumPlantType; - -public interface IAllelePlantType extends IAllele { - - public EnumSet getPlantTypes(); - -} diff --git a/src/api/java/forestry/api/genetics/IAlleleRegistry.java b/src/api/java/forestry/api/genetics/IAlleleRegistry.java deleted file mode 100644 index 9b0907b0..00000000 --- a/src/api/java/forestry/api/genetics/IAlleleRegistry.java +++ /dev/null @@ -1,218 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import java.util.Collection; -import java.util.Map; - -import net.minecraft.item.ItemStack; - -import com.mojang.authlib.GameProfile; - -import forestry.api.genetics.IClassification.EnumClassLevel; - -/** - * Manages {@link ISpeciesRoot}, {@link IAllele}s, {@link IFruitFamily}s, {@link IClassification}, the blacklist and allows creation of research notes. - * - * @author SirSengir - */ -public interface IAlleleRegistry { - - /* SPECIES ROOT CLASSES */ - /** - * Register a {@link ISpeciesRoot}. - * @param root {@link ISpeciesRoot} to register. - */ - void registerSpeciesRoot(ISpeciesRoot root); - - /** - * @return Map of all registered {@link ISpeciesRoot}. - */ - Map getSpeciesRoot(); - - /** - * Retrieve the {@link ISpeciesRoot} with the given uid. - * @param uid Unique id for the species class, i.e. "rootBees", "rootTrees", "rootButterflies". - * @return {@link ISpeciesRoot} if it exists, null otherwise. - */ - ISpeciesRoot getSpeciesRoot(String uid); - - /** - * Retrieve a matching {@link ISpeciesRoot} for the given itemstack. - * @param stack An itemstack possibly containing NBT data which can be converted by a species root. - * @return {@link ISpeciesRoot} if found, null otherwise. - */ - ISpeciesRoot getSpeciesRoot(ItemStack stack); - - /** - * Retrieve a matching {@link ISpeciesRoot} for the given {@link IIndividual}-class. - * @param clz Class extending {@link IIndividual}. - * @return {@link ISpeciesRoot} if found, null otherwise. - */ - ISpeciesRoot getSpeciesRoot(Class clz); - - /* INDIVIDUAL */ - /** - * Tests the itemstack for genetic information. - * - * @param stack - * @return true if the itemstack is an individual. - */ - boolean isIndividual(ItemStack stack); - - /** - * Retrieve genetic information from an itemstack. - * - * @param stack - * Stack to retrieve genetic information for. - * @return IIndividual containing genetic information, null if none could be extracted. - */ - IIndividual getIndividual(ItemStack stack); - - /* ALLELES */ - - /** - * @return HashMap of all currently registered alleles. - */ - Map getRegisteredAlleles(); - - /** - * Registers an allele. - * - * @param allele - * IAllele to register. - */ - void registerAllele(IAllele allele); - - /** - * @return HashMap of all registered deprecated alleles and their corresponding replacements - */ - Map getDeprecatedAlleleReplacements(); - - /** - * Registers an old allele UID and the new IAllele to replace instances of it with. - * - * @param deprecatedAlleleUID - * the old allele's UID - * @param replacement - * the IAllele that the deprecated Allele will be replaced with. - */ - void registerDeprecatedAlleleReplacement(String deprecatedAlleleUID, IAllele replacement); - - /** - * Gets an allele - * - * @param uid - * String based unique identifier of the allele to retrieve. - * @return IAllele if found or a replacement is found in the Deprecated Allele map, null otherwise. - */ - IAllele getAllele(String uid); - - /* CLASSIFICATIONS */ - /** - * @return HashMap of all currently registered classifications. - */ - Map getRegisteredClassifications(); - - /** - * Registers a classification. - * - * @param classification - * IClassification to register. - */ - void registerClassification(IClassification classification); - - /** - * Creates and returns a classification. - * - * @param level - * EnumClassLevel of the classification to create. - * @param uid - * String based unique identifier. Implementation will throw an exception if the key is already taken. - * @param scientific - * Binomial for the given classification. - * @return Created {@link IClassification} for easier chaining. - */ - IClassification createAndRegisterClassification(EnumClassLevel level, String uid, String scientific); - - /** - * Gets a classification. - * - * @param uid - * String based unique identifier of the classification to retrieve. - * @return {@link IClassification} if found, null otherwise. - */ - IClassification getClassification(String uid); - - /* FRUIT FAMILIES */ - /** - * Get all registered fruit families. - * - * @return A map of registered fruit families and their UIDs. - */ - Map getRegisteredFruitFamilies(); - - /** - * Registers a new fruit family. - * - * @param family - */ - void registerFruitFamily(IFruitFamily family); - - /** - * Retrieves a fruit family identified by uid. - * - * @param uid - * @return {IFruitFamily} if found, false otherwise. - */ - IFruitFamily getFruitFamily(String uid); - - /* ALLELE HANDLERS */ - /** - * Registers a new IAlleleHandler - * - * @param handler - * IAlleleHandler to register. - */ - void registerAlleleHandler(IAlleleHandler handler); - - /* BLACKLIST */ - /** - * Blacklist an allele identified by its UID from mutation. - * - * @param uid - * UID of the allele to blacklist. - */ - void blacklistAllele(String uid); - - /** - * @return Current blacklisted alleles. - */ - Collection getAlleleBlacklist(); - - /** - * @param uid - * UID of the species to vet. - * @return true if the allele is blacklisted. - */ - boolean isBlacklisted(String uid); - - /* RESEARCH */ - /** - * @param researcher Username of the player who researched this note. - * @param species {@link IAlleleSpecies} to encode on the research note. - * @return An itemstack containing a research note with the given species encoded onto it. - */ - ItemStack getSpeciesNoteStack(GameProfile researcher, IAlleleSpecies species); - - /** - * @param researcher Username of the player who researched this note. - * @param mutation {@link IMutation} to encode on the research note. - * @return An itemstack containing a research note with the given mutation encoded onto it. - */ - ItemStack getMutationNoteStack(GameProfile researcher, IMutation mutation); - -} diff --git a/src/api/java/forestry/api/genetics/IAlleleSpecies.java b/src/api/java/forestry/api/genetics/IAlleleSpecies.java deleted file mode 100644 index 5a75adef..00000000 --- a/src/api/java/forestry/api/genetics/IAlleleSpecies.java +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import com.mojang.authlib.GameProfile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import forestry.api.core.EnumHumidity; -import forestry.api.core.EnumTemperature; -import forestry.api.core.IIconProvider; - -/** - * Basic species allele. - */ -public interface IAlleleSpecies extends IAllele { - - /** - * @return the {@link ISpeciesRoot} associated with this species. - */ - ISpeciesRoot getRoot(); - - /** - * @return Localized short description of this species. (May be null.) - */ - String getDescription(); - - /** - * Binomial name of the species sans genus ("Apis"). Returning "humboldti" will have the bee species flavour name be "Apis humboldti". Feel free to use fun - * names or return null. - * - * @return flavour text (may be null) - */ - String getBinomial(); - - /** - * Authority for the binomial name, e.g. "Sengir" on species of base Forestry. - * - * @return flavour text (may be null) - */ - String getAuthority(); - - /** - * @return Branch this species is associated with. - */ - IClassification getBranch(); - - /* RESEARCH */ - /** - * Complexity determines the difficulty researching a species. The values of primary and secondary are - * added together (and rounded) to determine the amount of pairs needed for successful research. - * @return Values between 3 - 11 are useful. - */ - int getComplexity(); - - /** - * @param itemstack - * @return A float signifying the chance for the passed itemstack to yield a research success. - */ - float getResearchSuitability(ItemStack itemstack); - - /** - * @param world - * @param gameProfile - * @param individual - * @param bountyLevel - * @return Array of itemstacks representing the bounty for this research success. - */ - ItemStack[] getResearchBounty(World world, GameProfile gameProfile, IIndividual individual, int bountyLevel); - - /* CLIMATE */ - /** - * @return Preferred temperature - */ - EnumTemperature getTemperature(); - - /** - * @return Preferred humidity - */ - EnumHumidity getHumidity(); - - /* MISC */ - /** - * @return true if the species icon should have a glowing effect. - */ - boolean hasEffect(); - - /** - * @return true if the species should not be displayed in NEI or creative inventory. - */ - boolean isSecret(); - - /** - * @return true to have the species count against the species total. - */ - boolean isCounted(); - - /* APPEARANCE */ - /** - * @param renderPass Render pass to get the colour for. - * @return Colour to use for the render pass. - */ - int getIconColour(int renderPass); - - @SideOnly(Side.CLIENT) - IIconProvider getIconProvider(); - -} diff --git a/src/api/java/forestry/api/genetics/IAlleleSpeciesCustom.java b/src/api/java/forestry/api/genetics/IAlleleSpeciesCustom.java deleted file mode 100644 index ff138162..00000000 --- a/src/api/java/forestry/api/genetics/IAlleleSpeciesCustom.java +++ /dev/null @@ -1,23 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import forestry.api.core.EnumHumidity; -import forestry.api.core.EnumTemperature; - -public interface IAlleleSpeciesCustom extends IAlleleSpecies { - - IAlleleSpeciesCustom setTemperature(EnumTemperature temperature); - IAlleleSpeciesCustom setHumidity(EnumHumidity humidity); - - IAlleleSpeciesCustom setHasEffect(); - - /** Secret species are not shown in creative mode. */ - IAlleleSpeciesCustom setIsSecret(); - - /** Uncounted species do not count toward total species discovered. */ - IAlleleSpeciesCustom setIsNotCounted(); -} diff --git a/src/api/java/forestry/api/genetics/IAlleleTolerance.java b/src/api/java/forestry/api/genetics/IAlleleTolerance.java deleted file mode 100644 index f5ba9e67..00000000 --- a/src/api/java/forestry/api/genetics/IAlleleTolerance.java +++ /dev/null @@ -1,15 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -/** - * Simple interface to allow adding additional alleles containing float values. - */ -public interface IAlleleTolerance extends IAllele { - - EnumTolerance getValue(); - -} diff --git a/src/api/java/forestry/api/genetics/IBreedingTracker.java b/src/api/java/forestry/api/genetics/IBreedingTracker.java deleted file mode 100644 index e3614481..00000000 --- a/src/api/java/forestry/api/genetics/IBreedingTracker.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; - -import forestry.api.apiculture.IBeekeepingMode; - -/** - * Keeps track of who bred and/or discovered which species in a world. - * - * @author SirSengir - */ -public interface IBreedingTracker { - - /** - * @return Name of the current {@link IBeekeepingMode}. - */ - String getModeName(); - - /** - * Set the current {@link IBeekeepingMode}. - */ - void setModeName(String name); - - /** - * @return Amount of species discovered. - */ - int getSpeciesBred(); - - /** - * Register the birth of an individual. Will mark it as discovered. - * - * @param individual - */ - void registerBirth(IIndividual individual); - - /** - * Register the pickup of an individual. - * - * @param individual - */ - void registerPickup(IIndividual individual); - - /** - * Marks a species as discovered. Should only be called from registerIndividual normally. - * - * @param species - */ - void registerSpecies(IAlleleSpecies species); - - /** - * Register a successful mutation. Will mark it as discovered. - * - * @param mutation - */ - void registerMutation(IMutation mutation); - - /** - * Queries the tracker for discovered species. - * - * @param mutation - * Mutation to query for. - * @return true if the mutation has been discovered. - */ - boolean isDiscovered(IMutation mutation); - - /** - * Queries the tracker for discovered species. - * - * @param species - * Species to check. - * @return true if the species has been bred. - */ - boolean isDiscovered(IAlleleSpecies species); - - /** - * Synchronizes the tracker to the client side. Should be called before opening any gui needing that information. - * - * @param player - */ - void synchToPlayer(EntityPlayer player); - - /* LOADING & SAVING */ - void decodeFromNBT(NBTTagCompound nbttagcompound); - - void encodeToNBT(NBTTagCompound nbttagcompound); - -} diff --git a/src/api/java/forestry/api/genetics/IChromosome.java b/src/api/java/forestry/api/genetics/IChromosome.java deleted file mode 100644 index d501efba..00000000 --- a/src/api/java/forestry/api/genetics/IChromosome.java +++ /dev/null @@ -1,25 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import forestry.api.core.INBTTagable; - -/** - * Implementations other than Forestry's default one are not supported! - * - * @author SirSengir - */ -public interface IChromosome extends INBTTagable { - - IAllele getPrimaryAllele(); - - IAllele getSecondaryAllele(); - - IAllele getInactiveAllele(); - - IAllele getActiveAllele(); - -} diff --git a/src/api/java/forestry/api/genetics/IChromosomeType.java b/src/api/java/forestry/api/genetics/IChromosomeType.java deleted file mode 100644 index a3b1f8e0..00000000 --- a/src/api/java/forestry/api/genetics/IChromosomeType.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -/* - * Interface to be implemented by the enums representing the various chromosomes - */ -public interface IChromosomeType { - - /* - * Get class which all alleles on this chromosome must interface - */ - Class getAlleleClass(); - - String getName(); - - ISpeciesRoot getSpeciesRoot(); - - int ordinal(); - -} diff --git a/src/api/java/forestry/api/genetics/IClassification.java b/src/api/java/forestry/api/genetics/IClassification.java deleted file mode 100644 index f365b915..00000000 --- a/src/api/java/forestry/api/genetics/IClassification.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -/** - * Biological classifications from domain down to genus. - * - * Used by the *alyzers to display hierarchies. - */ -public interface IClassification { - - public enum EnumClassLevel { - - DOMAIN(0x777fff, true), KINGDOM(0x77c3ff), PHYLUM(0x77ffb6, true), DIVISION(0x77ffb6, true), CLASS(0x7bff77), ORDER(0xbeff77), FAMILY(0xfffd77), - SUBFAMILY(0xfffd77), TRIBE(0xfffd77), GENUS(0xffba77); - - private int colour; - private boolean isDroppable; - - private EnumClassLevel(int colour) { - this(colour, false); - } - - private EnumClassLevel(int colour, boolean isDroppable) { - this.colour = colour; - this.isDroppable = isDroppable; - } - - /** - * @return Colour to use for displaying this classification. - */ - public int getColour() { - return colour; - } - - /** - * @return Indicates whether display of this classification level can be ommitted in case of space constraints. - */ - public boolean isDroppable() { - return isDroppable; - } - } - - /** - * @return Level inside the full hierarchy this particular classification is located at. - */ - EnumClassLevel getLevel(); - - /** - * @return Unique String identifier. - */ - String getUID(); - - /** - * @return Localized branch name for user display. - */ - String getName(); - - /** - * A branch approximates a "genus" in real life. Real life examples: "Micrapis", "Megapis" - * - * @return flavour text (may be null) - */ - String getScientific(); - - /** - * @return Localized description of this branch. (May be null.) - */ - String getDescription(); - - /** - * @return Member groups of this one. - */ - IClassification[] getMemberGroups(); - - /** - * Adds subgroups to this group. - */ - void addMemberGroup(IClassification group); - - /** - * @return Member species of this group. - */ - IAlleleSpecies[] getMemberSpecies(); - - /** - * Used by the allele registry to populate internal collection of branch members on the fly. - * - * @param species - */ - void addMemberSpecies(IAlleleSpecies species); - - /** - * @return Parent classification, null if this is root. - */ - IClassification getParent(); - - /** - * Only used internally by the AlleleRegistry if this classification has been added to another one. - * - * @param parent - */ - void setParent(IClassification parent); -} diff --git a/src/api/java/forestry/api/genetics/IClimateHelper.java b/src/api/java/forestry/api/genetics/IClimateHelper.java deleted file mode 100644 index 48146042..00000000 --- a/src/api/java/forestry/api/genetics/IClimateHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package forestry.api.genetics; - -import java.util.Collection; - -import forestry.api.core.EnumHumidity; -import forestry.api.core.EnumTemperature; - -public interface IClimateHelper { - /** - * Determines whether the given temperature and humidity are within the given constraints. - * @param temperature The temperature to test. - * @param humidity The humidity to test. - * @param baseTemp Base temperature for the test. - * @param tolTemp Temperature tolerance to apply. - * @param baseHumid Base humidity for the test. - * @param tolHumid Humidity tolerance to apply. - * @return true if both temperature and humidity fit the given constraints. - */ - boolean isWithinLimits(EnumTemperature temperature, EnumHumidity humidity, - EnumTemperature baseTemp, EnumTolerance tolTemp, - EnumHumidity baseHumid, EnumTolerance tolHumid); - - boolean isWithinLimits(EnumTemperature temperature, EnumTemperature baseTemp, EnumTolerance tolTemp); - boolean isWithinLimits(EnumHumidity humidity, EnumHumidity baseHumid, EnumTolerance tolHumid); - - /** - * Gets a collection of humidities which fit the given parameters. - * @param prefered Base humidity from which to measure. - * @param tolerance Tolerance to apply to the base humidity. - * @return A collection of humidities which fall within the given parameters. - */ - Collection getToleratedHumidity(EnumHumidity prefered, EnumTolerance tolerance); - /** - * Gets a collection of temperatures which fit the given parameters. - * @param prefered Base temperature from which to measure. - * @param tolerance Tolerance to apply to the base temperatures. - * @return A collection of temperatures which fall within the given parameters. - */ - Collection getToleratedTemperature(EnumTemperature prefered, EnumTolerance tolerance); - - /** - * Gets a localized, human readable string for the given temperature. - * @param temperature Temperature to generate the string for. - * @return A localized, human readable string for the given temperature. - */ - String toDisplay(EnumTemperature temperature); - /** - * Gets a localized, human readable string for the given humidity. - * @param humidity Humidity to generate the string for. - * @return A localized, human readable string for the given humidity. - */ - String toDisplay(EnumHumidity humidity); -} \ No newline at end of file diff --git a/src/api/java/forestry/api/genetics/IEffectData.java b/src/api/java/forestry/api/genetics/IEffectData.java deleted file mode 100644 index 909ab78d..00000000 --- a/src/api/java/forestry/api/genetics/IEffectData.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import forestry.api.core.INBTTagable; - -/** - * Container to hold some temporary data for bee, tree and butterfly effects. - * - * @author SirSengir - */ -public interface IEffectData extends INBTTagable { - void setInteger(int index, int val); - - void setFloat(int index, float val); - - void setBoolean(int index, boolean val); - - int getInteger(int index); - - float getFloat(int index); - - boolean getBoolean(int index); -} diff --git a/src/api/java/forestry/api/genetics/IFlower.java b/src/api/java/forestry/api/genetics/IFlower.java deleted file mode 100644 index 79ef8115..00000000 --- a/src/api/java/forestry/api/genetics/IFlower.java +++ /dev/null @@ -1,20 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import net.minecraft.block.Block; - -public interface IFlower extends Comparable { - - Block getBlock(); - int getMeta(); - - double getWeight(); - void setWeight(double weight); - - boolean isPlantable(); - -} diff --git a/src/api/java/forestry/api/genetics/IFlowerGrowthRule.java b/src/api/java/forestry/api/genetics/IFlowerGrowthRule.java deleted file mode 100644 index 55237399..00000000 --- a/src/api/java/forestry/api/genetics/IFlowerGrowthRule.java +++ /dev/null @@ -1,15 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import net.minecraft.world.World; - -/** - * Basic condition for flower growing - */ -public interface IFlowerGrowthRule { - boolean growFlower(IFlowerRegistry fr, String flowerType, World world, IIndividual individual, int x, int y, int z); -} diff --git a/src/api/java/forestry/api/genetics/IFlowerProvider.java b/src/api/java/forestry/api/genetics/IFlowerProvider.java deleted file mode 100644 index 9849da03..00000000 --- a/src/api/java/forestry/api/genetics/IFlowerProvider.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import java.util.List; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface IFlowerProvider { - /** - * @return True if the block at the passed coordinates is a valid flower for the species. - */ - boolean isAcceptedFlower(World world, IIndividual individual, int x, int y, int z); - - boolean isAcceptedPollinatable(World world, IPollinatable pollinatable); - - /** - * @return True if a flower was planted. - */ - boolean growFlower(World world, IIndividual individual, int x, int y, int z); - - /** - * @return Short, human-readable identifier used in the beealyzer. - */ - String getDescription(); - - /** - * Allows the flower provider to affect the produce at the given location. - * - * @return Array of itemstacks being the (modified or unmodified) produce. - */ - ItemStack[] affectProducts(World world, IIndividual individual, int x, int y, int z, ItemStack[] products); - - /** - * @return List of valid flowers for the flower provider. The first in the array is for use as an icon. - * Returns an empty list if the flower provider does not have any valid flowers. - */ - List getFlowers(); -} diff --git a/src/api/java/forestry/api/genetics/IFlowerRegistry.java b/src/api/java/forestry/api/genetics/IFlowerRegistry.java deleted file mode 100644 index ce6cb42c..00000000 --- a/src/api/java/forestry/api/genetics/IFlowerRegistry.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import java.util.List; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.world.World; - -public interface IFlowerRegistry { - - List getAcceptableFlowers(String flowerType); - - boolean growFlower(String flowerType, World world, IIndividual individual, int x, int y, int z); - - boolean isAcceptedFlower(String flowerType, World world, IIndividual individual, int x, int y, int z); - - /** - * Registers a non-plantable flower, but bees accept them. - * - * @param flowerTypes See {@link forestry.api.apiculture.FlowerManager}.FlowerTypeXXX - */ - void registerAcceptableFlower(Block flowerBlock, String... flowerTypes); - void registerAcceptableFlower(Block flowerBlock, int flowerMeta, String... flowerTypes); - - void registerGrowthRule(IFlowerGrowthRule rule, String... flowerTypes); - - /** - * Registers a plantable flower. - * The distribution is based on its own weight and the total number of plants for this flowerType. - * - * @param weight Weight for the Flower (Vanilla = 1.0, Modded flowers < 1.0) - * @param flowerTypes See {@link forestry.api.apiculture.FlowerManager}.FlowerTypeXXX - */ - void registerPlantableFlower(Block flowerBlock, int flowerMeta, double weight, String... flowerTypes); - - IFlower getRandomPlantableFlower(String flowerType, Random rand); - -} diff --git a/src/api/java/forestry/api/genetics/IFruitBearer.java b/src/api/java/forestry/api/genetics/IFruitBearer.java deleted file mode 100644 index 5316f9eb..00000000 --- a/src/api/java/forestry/api/genetics/IFruitBearer.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import java.util.Collection; - -import net.minecraft.item.ItemStack; - -/** - * Can be implemented by tile entities which can bear fruit. - * - * @author SirSengir - */ -public interface IFruitBearer { - - /** - * @return true if the actual tile can bear fruits. - */ - boolean hasFruit(); - - /** - * @return Family of the potential fruits on this tile. - */ - IFruitFamily getFruitFamily(); - - /** - * Picks the fruits of this tile, resetting it to unripe fruits. - * - * @param tool - * Tool used in picking the fruits. May be null. - * @return Picked fruits. - */ - Collection pickFruit(ItemStack tool); - - /** - * @return float indicating the ripeness of the fruit with >= 1.0f indicating full ripeness. - */ - float getRipeness(); - - /** - * Increases the ripeness of the fruit. - * - * @param add - * Float to add to the ripeness. Will truncate to valid values. - */ - void addRipeness(float add); -} diff --git a/src/api/java/forestry/api/genetics/IFruitFamily.java b/src/api/java/forestry/api/genetics/IFruitFamily.java deleted file mode 100644 index d48a4d8a..00000000 --- a/src/api/java/forestry/api/genetics/IFruitFamily.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -public interface IFruitFamily { - - /** - * @return Unique String identifier. - */ - String getUID(); - - /** - * @return Localized family name for user display. - */ - String getName(); - - /** - * A scientific-y name for this fruit family - * - * @return flavour text (may be null) - */ - String getScientific(); - - /** - * @return Localized description of this fruit family. (May be null.) - */ - String getDescription(); - -} diff --git a/src/api/java/forestry/api/genetics/IGenome.java b/src/api/java/forestry/api/genetics/IGenome.java deleted file mode 100644 index 0d3ad231..00000000 --- a/src/api/java/forestry/api/genetics/IGenome.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import forestry.api.core.INBTTagable; - -/** - * Holds the {@link IChromosome}s which comprise the traits of a given individual. - * - * Only the default implementation is supported. - */ -public interface IGenome extends INBTTagable { - - IAlleleSpecies getPrimary(); - - IAlleleSpecies getSecondary(); - - IChromosome[] getChromosomes(); - - IAllele getActiveAllele(IChromosomeType chromosomeType); - - IAllele getInactiveAllele(IChromosomeType chromosomeType); - - boolean isGeneticEqual(IGenome other); - - ISpeciesRoot getSpeciesRoot(); -} diff --git a/src/api/java/forestry/api/genetics/IHousing.java b/src/api/java/forestry/api/genetics/IHousing.java deleted file mode 100644 index a6b775db..00000000 --- a/src/api/java/forestry/api/genetics/IHousing.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import java.util.Set; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; - -import com.mojang.authlib.GameProfile; - -import forestry.api.core.EnumHumidity; -import forestry.api.core.EnumTemperature; -import forestry.api.core.IErrorState; - -/** - * Any housing, hatchery or nest which is a fixed location in the world. - */ -public interface IHousing { - - /** - * @return String containing the login of this housing's owner. - */ - GameProfile getOwnerName(); - - World getWorld(); - - int getXCoord(); - - int getYCoord(); - - int getZCoord(); - - BiomeGenBase getBiome(); - - EnumTemperature getTemperature(); - - EnumHumidity getHumidity(); - - /** - * Sets the errorState when condition is true, and unsets it when condition is false. - * @return condition - */ - boolean setErrorCondition(boolean condition, IErrorState errorState); - - /** - * @return the error states for this housing. An empty Set indicates no errors. - */ - Set getErrorStates(); - - /** - * Adds products to the housing's inventory. - * - * @param product - * ItemStack with the product to add. - * @param all - * if true, success requires that all products are added - * @return Boolean indicating success or failure. - */ - boolean addProduct(ItemStack product, boolean all); - - /** - * @deprecated since Forestry 3.6. use setErrorCondition() - */ - @Deprecated - void setErrorState(IErrorState state); - - /** - * @deprecated since Forestry 3.6. use getErrorStates() - */ - @Deprecated - IErrorState getErrorState(); - -} diff --git a/src/api/java/forestry/api/genetics/IIndividual.java b/src/api/java/forestry/api/genetics/IIndividual.java deleted file mode 100644 index f86aa582..00000000 --- a/src/api/java/forestry/api/genetics/IIndividual.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import java.util.List; - -import forestry.api.core.INBTTagable; - -/** - * An actual individual with genetic information. - * - * Only the default implementation is supported. - */ -public interface IIndividual extends INBTTagable { - - String getIdent(); - - String getDisplayName(); - - void addTooltip(List list); - - /** - * Call to mark the IIndividual as analyzed. - * @return true if the IIndividual has not been analyzed previously. - */ - boolean analyze(); - - boolean isAnalyzed(); - - boolean hasEffect(); - - boolean isSecret(); - - IGenome getGenome(); - - /** - * Check whether the genetic makeup of two IIndividuals is identical. Ignores additional data like generations, irregular mating, etc.. - * @param other - * @return true if the given other IIndividual has the amount of chromosomes and their alleles are identical. - */ - boolean isGeneticEqual(IIndividual other); - - /** - * @return A deep copy of this individual. - */ - IIndividual copy(); - - boolean isPureBred(IChromosomeType chromosomeType); - -} diff --git a/src/api/java/forestry/api/genetics/IIndividualLiving.java b/src/api/java/forestry/api/genetics/IIndividualLiving.java deleted file mode 100644 index 67ce0a97..00000000 --- a/src/api/java/forestry/api/genetics/IIndividualLiving.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import net.minecraft.world.World; - -public interface IIndividualLiving extends IIndividual { - - /** - * @return Genetic information of the mate, null if unmated. - */ - IGenome getMate(); - - /** - * @return Current health of the individual. - */ - int getHealth(); - - /** - * @return Maximum health of the individual. - */ - int getMaxHealth(); - - /** - * Age the individual. - * @param world - * @param ageModifier - */ - void age(World world, float ageModifier); - - /** - * Mate with the given individual. - * @param individual the {@link IIndividual} to mate this one with. - */ - void mate(IIndividual individual); - - /** - * @return true if the individual is among the living. - */ - boolean isAlive(); - -} diff --git a/src/api/java/forestry/api/genetics/IMutation.java b/src/api/java/forestry/api/genetics/IMutation.java deleted file mode 100644 index 8c15ca58..00000000 --- a/src/api/java/forestry/api/genetics/IMutation.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import java.util.Collection; - -/** - * Individuals can be seeded either as hive drops or as mutation results. - * - * {@link IAlleleRegistry} manages these. - * - * @author SirSengir - */ -public interface IMutation { - - /** - * @return {@link ISpeciesRoot} this mutation is associated with. - */ - ISpeciesRoot getRoot(); - - /** - * @return first of the alleles implementing IAlleleSpecies required for this mutation. - */ - IAllele getAllele0(); - - /** - * @return second of the alleles implementing IAlleleSpecies required for this mutation. - */ - IAllele getAllele1(); - - /** - * @return Array of {@link IAllele} representing the full default genome of the mutated side. - * - * Make sure to return a proper array for the species class. Returning an allele of the wrong type will cause cast errors on runtime. - */ - IAllele[] getTemplate(); - - /** - * @return Unmodified base chance for mutation to fire. - */ - float getBaseChance(); - - /** - * @return Collection of localized, human-readable strings describing special mutation conditions, if any. - */ - Collection getSpecialConditions(); - - /** - * @param allele - * @return true if the passed allele is one of the alleles participating in this mutation. - */ - boolean isPartner(IAllele allele); - - /** - * @param allele - * @return the other allele which was not passed as argument. - */ - IAllele getPartner(IAllele allele); - - /** - * @return true if the mutation should not be displayed in the beealyzer. - */ - boolean isSecret(); - -} diff --git a/src/api/java/forestry/api/genetics/IMutationCondition.java b/src/api/java/forestry/api/genetics/IMutationCondition.java deleted file mode 100644 index ac8de0a2..00000000 --- a/src/api/java/forestry/api/genetics/IMutationCondition.java +++ /dev/null @@ -1,23 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import net.minecraft.world.World; - -public interface IMutationCondition { - - /** - * Returns a float from 0 to 1 representing the chance for mutation to occur. - * Most will return 1 if the condition is met and 0 otherwise, - * but the float offers flexibility for more advanced conditions. - */ - float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1); - - /** - * A localized description of the mutation condition. (i.e. "A temperature of HOT is required.") - */ - String getDescription(); -} diff --git a/src/api/java/forestry/api/genetics/IMutationCustom.java b/src/api/java/forestry/api/genetics/IMutationCustom.java deleted file mode 100644 index f6d366cd..00000000 --- a/src/api/java/forestry/api/genetics/IMutationCustom.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import net.minecraft.block.Block; - -import net.minecraftforge.common.BiomeDictionary; - -import forestry.api.core.EnumHumidity; -import forestry.api.core.EnumTemperature; - -/** Set custom mutation requirements */ -public interface IMutationCustom extends IMutation { - - /** Prevent this mutation from being shown in the analyzers */ - IMutationCustom setIsSecret(); - - /** Require a specific temperature for this mutation to occur */ - IMutationCustom restrictTemperature(EnumTemperature temperature); - IMutationCustom restrictTemperature(EnumTemperature minTemperature, EnumTemperature maxTemperature); - - /** Require a specific humidity for this mutation to occur */ - IMutationCustom restrictHumidity(EnumHumidity humidity); - IMutationCustom restrictHumidity(EnumHumidity minHumidity, EnumHumidity maxHumidity); - - /** - * Restrict this mutation to certain types of biomes. - * @param types The types of biomes this mutation can occur. - */ - IMutationCustom restrictBiomeType(BiomeDictionary.Type... types); - - /** Restrict the days of the year that this mutation can occur */ - IMutationCustom restrictDateRange(int startMonth, int startDay, int endMonth, int endDay); - - /** Restrict the time of day that this mutation can occur */ - IMutationCustom requireDay(); - IMutationCustom requireNight(); - - /** Require a specific resource to be under the location of the mutation */ - IMutationCustom requireResource(Block block, int meta); - - /** Require some other custom mutation condition */ - IMutationCustom addMutationCondition(IMutationCondition mutationCondition); -} diff --git a/src/api/java/forestry/api/genetics/IPollinatable.java b/src/api/java/forestry/api/genetics/IPollinatable.java deleted file mode 100644 index 5b0694d7..00000000 --- a/src/api/java/forestry/api/genetics/IPollinatable.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import java.util.EnumSet; - -import net.minecraftforge.common.EnumPlantType; - -/** - * Can be implemented by tile entities, if they wish to be pollinatable. - * - * @author SirSengir - */ -public interface IPollinatable { - - /** - * @return plant types this pollinatable is classified as. (Can be used by bees to determine whether to interact or not. - */ - EnumSet getPlantType(); - - /** - * @return IIndividual containing the genetic information of this IPollinatable - */ - IIndividual getPollen(); - - /** - * Checks whether this {@link IPollinatable} can mate with the given pollen. - * - * Must be the one to check genetic equivalency. - * - * @param pollen - * IIndividual representing the pollen. - * @return true if mating is possible, false otherwise. - */ - boolean canMateWith(IIndividual pollen); - - /** - * Pollinates this entity. - * - * @param pollen - * IIndividual representing the pollen. - */ - void mateWith(IIndividual pollen); - -} diff --git a/src/api/java/forestry/api/genetics/ISpeciesRoot.java b/src/api/java/forestry/api/genetics/ISpeciesRoot.java deleted file mode 100644 index 7424405d..00000000 --- a/src/api/java/forestry/api/genetics/ISpeciesRoot.java +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.genetics; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; -import java.util.Random; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import com.mojang.authlib.GameProfile; - -/** - * Describes a class of species (i.e. bees, trees, butterflies), provides helper functions and access to common functionality. - */ -public interface ISpeciesRoot { - - /** - * @return A unique identifier for the species class. Should consist of "root" + a common name for the species class in camel-case, i.e. "rootBees", "rootTrees", "rootButterflies". - */ - String getUID(); - - /** - * @return Class of the sub-interface inheriting from {@link IIndividual}. - */ - Class getMemberClass(); - - /** - * @return Integer denoting the number of (counted) species of this type in the world. - */ - int getSpeciesCount(); - - /** - * Used to check whether a given itemstack contains genetic data corresponding to an {@link IIndividual} of this class. - * @param stack itemstack to check. - * @return true if the itemstack contains an {@link IIndividual} of this class, false otherwise. - */ - boolean isMember(ItemStack stack); - - /** - * Used to check whether a given itemstack contains genetic data corresponding to an {@link IIndividual} of this class and matches the given type. - * @param stack itemstack to check. - * @param type Integer denoting the type needed to match. (i.e. butterfly vs. butterfly serum; bee queens, princesses, drones; etc.) - * @return true if the itemstack contains an {@link IIndividual} of this class, false otherwise. - */ - boolean isMember(ItemStack stack, int type); - - /** - * Used to check whether the given {@link IIndividual} is member of this class. - * @param individual {@link IIndividual} to check. - * @return true if the individual is member of this class, false otherwise. - */ - boolean isMember(IIndividual individual); - - IIndividual getMember(ItemStack stack); - - IIndividual getMember(NBTTagCompound compound); - - ItemStack getMemberStack(IIndividual individual, int type); - - /* BREEDING TRACKER */ - IBreedingTracker getBreedingTracker(World world, GameProfile player); - - /* GENOME MANIPULATION */ - IIndividual templateAsIndividual(IAllele[] template); - - IIndividual templateAsIndividual(IAllele[] templateActive, IAllele[] templateInactive); - - IChromosome[] templateAsChromosomes(IAllele[] template); - - IChromosome[] templateAsChromosomes(IAllele[] templateActive, IAllele[] templateInactive); - - IGenome templateAsGenome(IAllele[] template); - - IGenome templateAsGenome(IAllele[] templateActive, IAllele[] templateInactive); - - /* TEMPLATES */ - /** - * Registers a bee template using the UID of the first allele as identifier. - * - * @param template - */ - void registerTemplate(IAllele[] template); - - /** - * Registers a bee template using the passed identifier. - * - * @param template - */ - void registerTemplate(String identifier, IAllele[] template); - - /** - * Retrieves a registered template using the passed identifier. - * - * @param identifier - * @return Array of {@link IAllele} representing a genome. - */ - IAllele[] getTemplate(String identifier); - - /** - * @return Default individual template for use when stuff breaks. - */ - IAllele[] getDefaultTemplate(); - - /** - * @param rand Random to use. - * @return A random template from the pool of registered species templates. - */ - IAllele[] getRandomTemplate(Random rand); - - Map getGenomeTemplates(); - ArrayList getIndividualTemplates(); - - /* MUTATIONS */ - /** - * Use to register mutations. - * - * @param mutation - */ - void registerMutation(IMutation mutation); - - /** - * @return All registered mutations. - */ - Collection getMutations(boolean shuffle); - - /** - * @param other Allele to match mutations against. - * @return All registered mutations the given allele is part of. - */ - Collection getCombinations(IAllele other); - - Collection getPaths(IAllele result, IChromosomeType chromosomeType); - - /* RESEARCH */ - /** - * @return List of generic catalysts which should be accepted for research by species of this class. - */ - Map getResearchCatalysts(); - - /** - * Sets an item stack as a valid (generic) research catalyst for this class. - * @param itemstack ItemStack to set as suitable. - * @param suitability Float between 0 and 1 to indicate suitability. - */ - void setResearchSuitability(ItemStack itemstack, float suitability); - - /** - * @return Array of {@link IChromosomeType} which are in this species genome - */ - IChromosomeType[] getKaryotype(); - - /** - * @return {@link IChromosomeType} which is the "key" for this species class, usually the species chromosome. - */ - IChromosomeType getKaryotypeKey(); -} diff --git a/src/api/java/forestry/api/genetics/package-info.java b/src/api/java/forestry/api/genetics/package-info.java deleted file mode 100644 index 49ec3b03..00000000 --- a/src/api/java/forestry/api/genetics/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="3.3.0", owner="ForestryAPI|core", provides="ForestryAPI|genetics") -package forestry.api.genetics; -import cpw.mods.fml.common.API; diff --git a/src/api/java/forestry/api/lepidopterology/EnumButterflyChromosome.java b/src/api/java/forestry/api/lepidopterology/EnumButterflyChromosome.java deleted file mode 100644 index 9f89f7f8..00000000 --- a/src/api/java/forestry/api/lepidopterology/EnumButterflyChromosome.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.lepidopterology; - -import forestry.api.genetics.AlleleManager; -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IAlleleArea; -import forestry.api.genetics.IAlleleBoolean; -import forestry.api.genetics.IAlleleFloat; -import forestry.api.genetics.IAlleleFlowers; -import forestry.api.genetics.IAlleleInteger; -import forestry.api.genetics.IAlleleTolerance; -import forestry.api.genetics.IChromosomeType; -import forestry.api.genetics.ISpeciesRoot; - -public enum EnumButterflyChromosome implements IChromosomeType { - /** - * Species of the bee. Alleles here must implement {@link IAlleleButterflySpecies}. - */ - SPECIES(IAlleleButterflySpecies.class), - /** - * Physical size. - */ - SIZE(IAlleleFloat.class), - /** - * Flight speed. - */ - SPEED(IAlleleFloat.class), - /** - * How long the butterfly can last without access to matching pollinatables. - */ - LIFESPAN(IAlleleInteger.class), - /** - * Species with a higher metabolism have a higher appetite and may cause more damage to their environment. - */ - METABOLISM(IAlleleInteger.class), - /** - * Determines likelyhood of caterpillars and length of caterpillar/pupation phase. Also: Number of max caterpillars after mating? - */ - FERTILITY(IAlleleInteger.class), - /** - * Not sure yet. - */ - TEMPERATURE_TOLERANCE(IAlleleTolerance.class), - /** - * Not sure yet. - */ - HUMIDITY_TOLERANCE(IAlleleTolerance.class), - /** - * Only nocturnal butterflys/moths will fly at night. Allows daylight activity for naturally nocturnal species. - */ - NOCTURNAL(IAlleleBoolean.class), - /** - * Only tolerant flyers will fly in the rain. - */ - TOLERANT_FLYER(IAlleleBoolean.class), - /** - * Fire resistance. - */ - FIRE_RESIST(IAlleleBoolean.class), - /** - * Required flowers/leaves. - */ - FLOWER_PROVIDER(IAlleleFlowers.class), - /** - * Extra effect to surroundings. (?) - */ - EFFECT(IAlleleButterflyEffect.class), - /** - * Not used yet - */ - TERRITORY(IAlleleArea.class), - ; - - Class clss; - - EnumButterflyChromosome(Class clss) { - this.clss = clss; - } - - @Override - public Class getAlleleClass() { - return clss; - } - - @Override - public String getName() { - return this.toString().toLowerCase(); - } - - @Override - public ISpeciesRoot getSpeciesRoot() { - return AlleleManager.alleleRegistry.getSpeciesRoot("rootButterflies"); - } -} diff --git a/src/api/java/forestry/api/lepidopterology/EnumFlutterType.java b/src/api/java/forestry/api/lepidopterology/EnumFlutterType.java deleted file mode 100644 index f197d7b7..00000000 --- a/src/api/java/forestry/api/lepidopterology/EnumFlutterType.java +++ /dev/null @@ -1,15 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.lepidopterology; - -public enum EnumFlutterType { - BUTTERFLY, - SERUM, - CATERPILLAR, - NONE; - - public static final EnumFlutterType[] VALUES = values(); -} diff --git a/src/api/java/forestry/api/lepidopterology/IAlleleButterflyEffect.java b/src/api/java/forestry/api/lepidopterology/IAlleleButterflyEffect.java deleted file mode 100644 index 6457dbe8..00000000 --- a/src/api/java/forestry/api/lepidopterology/IAlleleButterflyEffect.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.lepidopterology; - -import forestry.api.genetics.IAlleleEffect; -import forestry.api.genetics.IEffectData; - -public interface IAlleleButterflyEffect extends IAlleleEffect { - - /** - * Used by butterflies to trigger effects in the world. - * @param butterfly {@link IEntityButterfly} - * @param storedData - * @return {@link forestry.api.genetics.IEffectData} for the next cycle. - */ - IEffectData doEffect(IEntityButterfly butterfly, IEffectData storedData); - -} diff --git a/src/api/java/forestry/api/lepidopterology/IAlleleButterflySpecies.java b/src/api/java/forestry/api/lepidopterology/IAlleleButterflySpecies.java deleted file mode 100644 index c1536118..00000000 --- a/src/api/java/forestry/api/lepidopterology/IAlleleButterflySpecies.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.lepidopterology; - -import java.util.EnumSet; -import java.util.Map; - -import net.minecraft.item.ItemStack; - -import net.minecraftforge.common.BiomeDictionary; - -import forestry.api.genetics.IAlleleSpecies; - -public interface IAlleleButterflySpecies extends IAlleleSpecies { - - /** - * @return the IBeeRoot - */ - IButterflyRoot getRoot(); - - /** - * @return Path of the texture to use for entity rendering. - */ - String getEntityTexture(); - - /** - * Allows butterflies to restrict random spawns beyond the restrictions set by getTemperature() and getHumidity(). - * - * @return EnumSet of biome tags this butterfly species can be spawned in. - */ - EnumSet getSpawnBiomes(); - - /** - * @return true if a prospective spawn biome must not match a biome tag outside of getSpawnBiomes. - */ - boolean strictSpawnMatch(); - - /** - * @return Float between 0 and 1 representing the rarity of the species, will affect spawn rate. - */ - float getRarity(); - - /** - * @return Float representing the distance below which this butterfly will take flight if it detects a player which is not sneaking. - */ - float getFlightDistance(); - - /** - * @return true if this species is only active at night. - */ - boolean isNocturnal(); - - Map getButterflyLoot(); - - Map getCaterpillarLoot(); -} diff --git a/src/api/java/forestry/api/lepidopterology/IButterfly.java b/src/api/java/forestry/api/lepidopterology/IButterfly.java deleted file mode 100644 index c3013247..00000000 --- a/src/api/java/forestry/api/lepidopterology/IButterfly.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.lepidopterology; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import forestry.api.genetics.IIndividualLiving; - -public interface IButterfly extends IIndividualLiving { - - IButterflyGenome getGenome(); - - /** - * @return Genetic information of the mate, null if unmated. - */ - IButterflyGenome getMate(); - - /** - * @return Physical size of the butterfly. - */ - float getSize(); - - /** - * @param world - * @param x - * @param y - * @param z - * @return true if the butterfly can naturally spawn at the given location at this time. (Used to auto-spawn butterflies from tree leaves.) - */ - boolean canSpawn(World world, double x, double y, double z); - - /** - * @param world - * @param x - * @param y - * @param z - * @return true if the butterfly can take flight at the given location at this time. (Used to auto-spawn butterflies from dropped items.) - */ - boolean canTakeFlight(World world, double x, double y, double z); - - /** - * @param world - * @param x - * @param y - * @param z - * @return true if the environment (temperature, humidity) is valid for the butterfly at the given location. - */ - boolean isAcceptedEnvironment(World world, double x, double y, double z); - - IButterfly spawnCaterpillar(IButterflyNursery nursery); - - /** - * @param entity - * @param playerKill Whether or not the butterfly was killed by a player. - * @param lootLevel Loot level according to the weapon used to kill the butterfly. - * @return Array of itemstacks to drop on death of the given entity. - */ - ItemStack[] getLootDrop(IEntityButterfly entity, boolean playerKill, int lootLevel); - - /** - * @param nursery - * @param playerKill Whether or not the nursery was broken by a player. - * @param lootLevel Fortune level. - * @return Array of itemstacks to drop on breaking of the nursery. - */ - ItemStack[] getCaterpillarDrop(IButterflyNursery nursery, boolean playerKill, int lootLevel); - - /** - * Create an exact copy of this butterfly. - */ - IButterfly copy(); - -} diff --git a/src/api/java/forestry/api/lepidopterology/IButterflyGenome.java b/src/api/java/forestry/api/lepidopterology/IButterflyGenome.java deleted file mode 100644 index 93816600..00000000 --- a/src/api/java/forestry/api/lepidopterology/IButterflyGenome.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.lepidopterology; - -import forestry.api.genetics.EnumTolerance; -import forestry.api.genetics.IFlowerProvider; -import forestry.api.genetics.IGenome; - -public interface IButterflyGenome extends IGenome { - - IAlleleButterflySpecies getPrimary(); - - IAlleleButterflySpecies getSecondary(); - - float getSize(); - - int getLifespan(); - - int getMetabolism(); - - int getFertility(); - - float getSpeed(); - - EnumTolerance getToleranceTemp(); - - EnumTolerance getToleranceHumid(); - - boolean getNocturnal(); - - boolean getTolerantFlyer(); - - boolean getFireResist(); - - IFlowerProvider getFlowerProvider(); - - IAlleleButterflyEffect getEffect(); - -} diff --git a/src/api/java/forestry/api/lepidopterology/IButterflyMutation.java b/src/api/java/forestry/api/lepidopterology/IButterflyMutation.java deleted file mode 100644 index 027e96eb..00000000 --- a/src/api/java/forestry/api/lepidopterology/IButterflyMutation.java +++ /dev/null @@ -1,14 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.lepidopterology; - -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IGenome; -import forestry.api.genetics.IMutation; - -public interface IButterflyMutation extends IMutation { - float getChance(IButterflyNursery housing, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1); -} diff --git a/src/api/java/forestry/api/lepidopterology/IButterflyNursery.java b/src/api/java/forestry/api/lepidopterology/IButterflyNursery.java deleted file mode 100644 index 56e42f2e..00000000 --- a/src/api/java/forestry/api/lepidopterology/IButterflyNursery.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.lepidopterology; - -import forestry.api.genetics.IHousing; -import forestry.api.genetics.IIndividual; - -public interface IButterflyNursery extends IHousing { - - IButterfly getCaterpillar(); - - IIndividual getNanny(); - - void setCaterpillar(IButterfly butterfly); - - boolean canNurse(IButterfly butterfly); - -} diff --git a/src/api/java/forestry/api/lepidopterology/IButterflyRoot.java b/src/api/java/forestry/api/lepidopterology/IButterflyRoot.java deleted file mode 100644 index 7028df15..00000000 --- a/src/api/java/forestry/api/lepidopterology/IButterflyRoot.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.lepidopterology; - -import java.util.ArrayList; -import java.util.Collection; - -import net.minecraft.entity.EntityLiving; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import com.mojang.authlib.GameProfile; - -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IIndividual; -import forestry.api.genetics.ISpeciesRoot; - -public interface IButterflyRoot extends ISpeciesRoot { - - @Override - boolean isMember(ItemStack stack); - - @Override - IButterfly getMember(ItemStack stack); - - @Override - IButterfly getMember(NBTTagCompound compound); - - @Override - ItemStack getMemberStack(IIndividual butterfly, int type); - - /* GENOME CONVERSION */ - @Override - IButterfly templateAsIndividual(IAllele[] template); - - @Override - IButterfly templateAsIndividual(IAllele[] templateActive, IAllele[] templateInactive); - - @Override - IButterflyGenome templateAsGenome(IAllele[] template); - - @Override - IButterflyGenome templateAsGenome(IAllele[] templateActive, IAllele[] templateInactive); - - /* BUTTERFLY SPECIFIC */ - ILepidopteristTracker getBreedingTracker(World world, GameProfile player); - - /** - * Spawns the given butterfly in the world. - * @param butterfly - * @return butterfly entity on success, null otherwise. - */ - EntityLiving spawnButterflyInWorld(World world, IButterfly butterfly, double x, double y, double z); - - /** - * @return true if passed item is mated. - */ - boolean isMated(ItemStack stack); - - /* TEMPLATES */ - @Override - ArrayList getIndividualTemplates(); - - /* MUTATIONS */ - @Override - Collection getMutations(boolean shuffle); - - EnumFlutterType getType(ItemStack stack); - -} diff --git a/src/api/java/forestry/api/lepidopterology/IEntityButterfly.java b/src/api/java/forestry/api/lepidopterology/IEntityButterfly.java deleted file mode 100644 index 963c7210..00000000 --- a/src/api/java/forestry/api/lepidopterology/IEntityButterfly.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.lepidopterology; - -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.passive.IAnimals; - -import forestry.api.genetics.IIndividual; - -public interface IEntityButterfly extends IAnimals { - - void changeExhaustion(int change); - - int getExhaustion(); - - IButterfly getButterfly(); - - /** - * @return The entity as an EntityCreature to save casting. - */ - EntityCreature getEntity(); - - IIndividual getPollen(); - - void setPollen(IIndividual pollen); -} diff --git a/src/api/java/forestry/api/lepidopterology/ILepidopteristTracker.java b/src/api/java/forestry/api/lepidopterology/ILepidopteristTracker.java deleted file mode 100644 index 79926975..00000000 --- a/src/api/java/forestry/api/lepidopterology/ILepidopteristTracker.java +++ /dev/null @@ -1,14 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.lepidopterology; - -import forestry.api.genetics.IBreedingTracker; - -public interface ILepidopteristTracker extends IBreedingTracker { - - void registerCatch(IButterfly butterfly); - -} diff --git a/src/api/java/forestry/api/lepidopterology/package-info.java b/src/api/java/forestry/api/lepidopterology/package-info.java deleted file mode 100644 index 070b4322..00000000 --- a/src/api/java/forestry/api/lepidopterology/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="1.1", owner="ForestryAPI|core", provides="ForestryAPI|lepidopterology") -package forestry.api.lepidopterology; -import cpw.mods.fml.common.API; diff --git a/src/api/java/forestry/api/mail/EnumAddressee.java b/src/api/java/forestry/api/mail/EnumAddressee.java deleted file mode 100644 index 28c73847..00000000 --- a/src/api/java/forestry/api/mail/EnumAddressee.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.mail; - -import java.util.Locale; - -public enum EnumAddressee { - PLAYER, TRADER; - - public static EnumAddressee fromString(String ident) { - ident = ident.toLowerCase(Locale.ENGLISH); - for(EnumAddressee addr : values()) { - if(addr.toString().equals(ident)) - return addr; - } - - return null; - } - - public String toString() { - return super.toString().toLowerCase(Locale.ENGLISH); - } -} diff --git a/src/api/java/forestry/api/mail/EnumPostage.java b/src/api/java/forestry/api/mail/EnumPostage.java deleted file mode 100644 index 772114fb..00000000 --- a/src/api/java/forestry/api/mail/EnumPostage.java +++ /dev/null @@ -1,20 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.mail; - -public enum EnumPostage { - P_0(0), P_1(1), P_2(2), P_5(5), P_10(10), P_20(20), P_50(50), P_100(100), P_200(200); - - private final int value; - - private EnumPostage(int value) { - this.value = value; - } - - public int getValue() { - return this.value; - } -} diff --git a/src/api/java/forestry/api/mail/ILetter.java b/src/api/java/forestry/api/mail/ILetter.java deleted file mode 100644 index 42df8acb..00000000 --- a/src/api/java/forestry/api/mail/ILetter.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.mail; - -import java.util.List; - -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; - -import forestry.api.core.INBTTagable; - -public interface ILetter extends IInventory, INBTTagable { - - ItemStack[] getPostage(); - - void setProcessed(boolean flag); - - boolean isProcessed(); - - boolean isMailable(); - - void setSender(IMailAddress address); - - IMailAddress getSender(); - - boolean hasRecipient(); - - void setRecipient(IMailAddress address); - - IMailAddress[] getRecipients(); - - String getRecipientString(); - - void setText(String text); - - String getText(); - - void addTooltip(List list); - - boolean isPostPaid(); - - int requiredPostage(); - - void invalidatePostage(); - - ItemStack[] getAttachments(); - - void addAttachment(ItemStack itemstack); - - void addAttachments(ItemStack[] itemstacks); - - int countAttachments(); - - void addStamps(ItemStack stamps); - -} diff --git a/src/api/java/forestry/api/mail/ILetterHandler.java b/src/api/java/forestry/api/mail/ILetterHandler.java deleted file mode 100644 index 576a0d7d..00000000 --- a/src/api/java/forestry/api/mail/ILetterHandler.java +++ /dev/null @@ -1,13 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.mail; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface ILetterHandler { - IPostalState handleLetter(World world, IMailAddress recipient, ItemStack letterStack, boolean doLodge); -} diff --git a/src/api/java/forestry/api/mail/IMailAddress.java b/src/api/java/forestry/api/mail/IMailAddress.java deleted file mode 100644 index 8441b09a..00000000 --- a/src/api/java/forestry/api/mail/IMailAddress.java +++ /dev/null @@ -1,23 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.mail; - -import com.mojang.authlib.GameProfile; - -import forestry.api.core.INBTTagable; - -public interface IMailAddress extends INBTTagable { - - EnumAddressee getType(); - String getName(); - - boolean isValid(); - - boolean isPlayer(); - boolean isTrader(); - - GameProfile getPlayerProfile(); -} diff --git a/src/api/java/forestry/api/mail/IPostOffice.java b/src/api/java/forestry/api/mail/IPostOffice.java deleted file mode 100644 index a8a14eac..00000000 --- a/src/api/java/forestry/api/mail/IPostOffice.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.mail; - -import java.util.Map; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface IPostOffice { - - void collectPostage(ItemStack[] stamps); - - IPostalState lodgeLetter(World world, ItemStack itemstack, boolean doLodge); - - ItemStack getAnyStamp(int max); - - ItemStack getAnyStamp(EnumPostage postage, int max); - - ItemStack getAnyStamp(EnumPostage[] postages, int max); - - void registerTradeStation(ITradeStation trade); - - void deregisterTradeStation(ITradeStation trade); - - Map getActiveTradeStations(World world); -} diff --git a/src/api/java/forestry/api/mail/IPostRegistry.java b/src/api/java/forestry/api/mail/IPostRegistry.java deleted file mode 100644 index f20352d9..00000000 --- a/src/api/java/forestry/api/mail/IPostRegistry.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.mail; - -import java.util.Map; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import com.mojang.authlib.GameProfile; - -public interface IPostRegistry { - - /* POST OFFICE */ - IPostOffice getPostOffice(World world); - - /* MAIL ADDRESSES */ - IMailAddress getMailAddress(GameProfile gameProfile); - IMailAddress getMailAddress(String traderName); - - /* LETTERS */ - boolean isLetter(ItemStack itemstack); - - ILetter createLetter(IMailAddress sender, IMailAddress recipient); - - ILetter getLetter(ItemStack itemstack); - - ItemStack createLetterStack(ILetter letter); - - /* CARRIERS */ - /** - * Registers a new {@link IPostalCarrier}. See {@link IPostalCarrier} for details. - * @param carrier {@link IPostalCarrier} to register. - */ - void registerCarrier(IPostalCarrier carrier); - - IPostalCarrier getCarrier(EnumAddressee uid); - - Map getRegisteredCarriers(); - - /* TRADE STATIONS */ - void deleteTradeStation(World world, IMailAddress address); - - ITradeStation getOrCreateTradeStation(World world, GameProfile owner, IMailAddress address); - - ITradeStation getTradeStation(World world, IMailAddress address); - - boolean isAvailableTradeAddress(World world, IMailAddress address); - - boolean isValidTradeAddress(World world, IMailAddress address); - - /* PO BOXES */ - boolean isValidPOBox(World world, IMailAddress address); - -} diff --git a/src/api/java/forestry/api/mail/IPostalCarrier.java b/src/api/java/forestry/api/mail/IPostalCarrier.java deleted file mode 100644 index 28db78ae..00000000 --- a/src/api/java/forestry/api/mail/IPostalCarrier.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.mail; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -/** - * Postal Carriers are systems which can be hooked into Forestry's mail system to handle mail delivery. - * - * The two available carriers in vanilla Forestry are - * "player" - Delivers mail to individual players. - * "trader" - Handles mail addressed to trade stations. - */ -public interface IPostalCarrier { - - /** - * @return An EnumAddressee identifying the type of carrier - */ - EnumAddressee getType(); - - /** - * @return A human-readable name for this carrier. - */ - String getName(); - - @SideOnly(Side.CLIENT) - IIcon getIcon(); - - /** - * Handle delivery of a letter addressed to this carrier. - * @param world The world the {@link IPostOffice} handles. - * @param office {link @IPostOffice} which received this letter and handed it to the carrier. - * @param recipient An identifier for the recipient as typed by the player into the address field. - * @param letterstack ItemStack representing the letter. See {@link IPostRegistry} for helper functions to validate and extract it. - * @param doDeliver Whether or not the letter is supposed to actually be delivered or if delivery is only to be simulated. - * @return {link IPostalState} holding information on success or failure for delivery. - */ - IPostalState deliverLetter(World world, IPostOffice office, IMailAddress recipient, ItemStack letterstack, boolean doDeliver); - -} diff --git a/src/api/java/forestry/api/mail/IPostalState.java b/src/api/java/forestry/api/mail/IPostalState.java deleted file mode 100644 index bc843621..00000000 --- a/src/api/java/forestry/api/mail/IPostalState.java +++ /dev/null @@ -1,14 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.mail; - -public interface IPostalState { - boolean isOk(); - - String getIdentifier(); - - int ordinal(); -} diff --git a/src/api/java/forestry/api/mail/IStamps.java b/src/api/java/forestry/api/mail/IStamps.java deleted file mode 100644 index 4332a811..00000000 --- a/src/api/java/forestry/api/mail/IStamps.java +++ /dev/null @@ -1,14 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.mail; - -import net.minecraft.item.ItemStack; - -public interface IStamps { - - EnumPostage getPostage(ItemStack itemstack); - -} diff --git a/src/api/java/forestry/api/mail/ITradeStation.java b/src/api/java/forestry/api/mail/ITradeStation.java deleted file mode 100644 index 78a498a0..00000000 --- a/src/api/java/forestry/api/mail/ITradeStation.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.mail; - -import net.minecraft.inventory.IInventory; - -public interface ITradeStation extends ILetterHandler, IInventory { - - IMailAddress getAddress(); - - boolean isValid(); - - void invalidate(); - - void setVirtual(boolean isVirtual); - - boolean isVirtual(); - - TradeStationInfo getTradeInfo(); - -} diff --git a/src/api/java/forestry/api/mail/PostManager.java b/src/api/java/forestry/api/mail/PostManager.java deleted file mode 100644 index c3f0e45b..00000000 --- a/src/api/java/forestry/api/mail/PostManager.java +++ /dev/null @@ -1,11 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.mail; - - -public class PostManager { - public static IPostRegistry postRegistry; -} diff --git a/src/api/java/forestry/api/mail/TradeStationInfo.java b/src/api/java/forestry/api/mail/TradeStationInfo.java deleted file mode 100644 index 14424bed..00000000 --- a/src/api/java/forestry/api/mail/TradeStationInfo.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.mail; - -import java.lang.IllegalArgumentException; -import net.minecraft.item.ItemStack; -import com.mojang.authlib.GameProfile; - -public class TradeStationInfo { - public final IMailAddress address; - public final GameProfile owner; - public final ItemStack tradegood; - public final ItemStack[] required; - public final IPostalState state; - - public TradeStationInfo(IMailAddress address, GameProfile owner, ItemStack tradegood, ItemStack[] required, IPostalState state) { - if (!address.isTrader()) { - throw new IllegalArgumentException("TradeStation address must be a trader"); - } - this.address = address; - this.owner = owner; - this.tradegood = tradegood; - this.required = required; - this.state = state; - } -} diff --git a/src/api/java/forestry/api/mail/package-info.java b/src/api/java/forestry/api/mail/package-info.java deleted file mode 100644 index a1050727..00000000 --- a/src/api/java/forestry/api/mail/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="3.0.0", owner="ForestryAPI|core", provides="ForestryAPI|mail") -package forestry.api.mail; -import cpw.mods.fml.common.API; diff --git a/src/api/java/forestry/api/recipes/ICarpenterManager.java b/src/api/java/forestry/api/recipes/ICarpenterManager.java deleted file mode 100644 index 8e3eabbe..00000000 --- a/src/api/java/forestry/api/recipes/ICarpenterManager.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.ShapedRecipes; - -import net.minecraftforge.fluids.FluidStack; - -/** - * Provides an interface to the recipe manager of the carpenter. - * - * The manager is initialized at the beginning of Forestry's BaseMod.load() cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be null even - * if your mod loads before Forestry. - * - * Accessible via {@link RecipeManagers} - * - * Only shaped recipes can be added currently. - * - * @author SirSengir - */ -public interface ICarpenterManager extends ICraftingProvider { - /** - * Add a shaped recipe to the carpenter. - * - * @param box - * ItemStack of one item representing the required box (carton, crate) for this recipe. May be null. - * @param product - * Crafting result. - * @param materials - * Materials needed in the crafting matrix. This gets passed directly to {@link ShapedRecipes}. Notation is the same. - */ - public void addRecipe(ItemStack box, ItemStack product, Object... materials); - - /** - * Add a shaped recipe to the carpenter. - * - * @param packagingTime - * Number of work cycles required to craft the recipe once. - * @param box - * ItemStack of one item representing the required box (carton, crate) for this recipe. May be null. - * @param product - * Crafting result. - * @param materials - * Materials needed in the crafting matrix. This gets passed directly to {@link ShapedRecipes}. Notation is the same. - */ - public void addRecipe(int packagingTime, ItemStack box, ItemStack product, Object... materials); - - /** - * Add a shaped recipe to the carpenter. - * - * @param packagingTime - * Number of work cycles required to craft the recipe once. - * @param liquid - * Liquid required in carpenter's tank. - * @param box - * ItemStack of one item representing the required box (carton, crate) for this recipe. May be null. - * @param product - * Crafting result. - * @param materials - * Materials needed in the crafting matrix. This gets passed directly to {@link ShapedRecipes}. Notation is the same. - */ - public void addRecipe(int packagingTime, FluidStack liquid, ItemStack box, ItemStack product, Object... materials); -} diff --git a/src/api/java/forestry/api/recipes/ICentrifugeManager.java b/src/api/java/forestry/api/recipes/ICentrifugeManager.java deleted file mode 100644 index 910bd32c..00000000 --- a/src/api/java/forestry/api/recipes/ICentrifugeManager.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.recipes; - -import java.util.HashMap; - -import net.minecraft.item.ItemStack; - -/** - * Provides an interface to the recipe manager of the centrifuge. - * - * The manager is initialized at the beginning of Forestry's BaseMod.load() cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be null even - * if your mod loads before Forestry. - * - * Accessible via {@link RecipeManagers} - * - * @author SirSengir - */ -public interface ICentrifugeManager extends ICraftingProvider { - - /** - * Add a recipe to the centrifuge - * - * @param timePerItem - * Time to centrifugate one item of the given type - * @param resource - * ItemStack containing information on item id and damage. Stack size will be ignored. - * @param products - * HashMap specifying the possible products and the chances of them resulting from centrifugation. - */ - public void addRecipe(int timePerItem, ItemStack resource, HashMap products); - - /** - * Add a recipe to the centrifuge - * - * @param timePerItem - * Time to centrifugate one item of the given type - * @param resource - * ItemStack containing information on item id and damage. Stack size will be ignored. - * @param produce - * Array of ItemStacks that can be the result of this recipe. - * @param chances - * Array of integers corresponding and matching to produce providing the chance (0-100) for the ItemStack at the given index to be - * produced. - */ - public void addRecipe(int timePerItem, ItemStack resource, ItemStack[] produce, int[] chances); - - /** - * Add a recipe to the centrifuge - * - * @param timePerItem - * Time to centrifugate one item of the given type - * @param resource - * ItemStack containing information on item id and damage. Stack size will be ignored. - * @param primary - * Primary product produced by centrifugating one item. Yield 100 %. - * @param secondary - * Secondary product that may be produced when centrifugating the given item. May be null. - * @param chance - * Chance (1 - 100) for centrifugation to yield the secondary product. - */ - public void addRecipe(int timePerItem, ItemStack resource, ItemStack primary, ItemStack secondary, int chance); - - /** - * Add a recipe to the centrifuge - * - * @param timePerItem - * Time to centrifugate one item of the given type - * @param resource - * ItemStack containing information on item id and damage. Stack size will be ignored. - * @param primary - * Primary product produced by centrifugating one item. Yield 100 %. - */ - public void addRecipe(int timePerItem, ItemStack resource, ItemStack primary); - -} diff --git a/src/api/java/forestry/api/recipes/ICraftingProvider.java b/src/api/java/forestry/api/recipes/ICraftingProvider.java deleted file mode 100644 index 502dffb4..00000000 --- a/src/api/java/forestry/api/recipes/ICraftingProvider.java +++ /dev/null @@ -1,17 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.recipes; - -import java.util.Map; - -public interface ICraftingProvider { - /** - * Access to the full list of recipes contained in the crafting provider. - * - * @return List of the given format where the first array represents inputs and the second outputs. Objects can be either ItemStack or LiquidStack. - */ - public Map getRecipes(); -} diff --git a/src/api/java/forestry/api/recipes/IFabricatorManager.java b/src/api/java/forestry/api/recipes/IFabricatorManager.java deleted file mode 100644 index a01f0da4..00000000 --- a/src/api/java/forestry/api/recipes/IFabricatorManager.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; - -import net.minecraftforge.fluids.FluidStack; - -public interface IFabricatorManager extends ICraftingProvider { - - void addRecipe(ItemStack plan, FluidStack molten, ItemStack result, Object[] pattern); - - void addSmelting(ItemStack resource, FluidStack molten, int meltingPoint); - -} diff --git a/src/api/java/forestry/api/recipes/IFermenterManager.java b/src/api/java/forestry/api/recipes/IFermenterManager.java deleted file mode 100644 index 92c903bb..00000000 --- a/src/api/java/forestry/api/recipes/IFermenterManager.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; - -import net.minecraftforge.fluids.FluidStack; - -/** - * Provides an interface to the recipe manager of the fermenter. - * - * The manager is initialized at the beginning of Forestry's BaseMod.load() - * cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be - * null even if your mod loads before Forestry. - * - * Accessible via {@link RecipeManagers} - * - * @author SirSengir - */ -public interface IFermenterManager extends ICraftingProvider { - - /** - * Add a recipe to the fermenter - * - * @param resource ItemStack representing the resource. - * @param fermentationValue Value of the given resource, i.e. how much needs - * to be fermented for the output to be deposited into the product tank. - * @param modifier Modifies the amount of liquid output per work cycle. - * (water = 1.0f, honey = 1.5f) - * @param output LiquidStack representing output liquid. Amount is - * determined by fermentationValue*modifier. - * @param liquid LiquidStack representing resource liquid and amount. - * @throws NullPointerException if resource, output or liquid is null - */ - public void addRecipe(ItemStack resource, int fermentationValue, float modifier, FluidStack output, FluidStack liquid); - - /** - * Add a recipe to the fermenter. Defaults to water as input liquid. - * - * @param resource ItemStack representing the resource. - * @param modifier Modifies the amount of liquid output per work cycle. - * (water = 1.0f, honey = 1.5f) - * @param fermentationValue Value of the given resource, i.e. how much needs - * to be fermented for the output to be deposited into the product tank. - * @param output LiquidStack representing output liquid. Amount is - * determined by fermentationValue*modifier. - * @throws NullPointerException if resource, output or liquid is null - */ - public void addRecipe(ItemStack resource, int fermentationValue, float modifier, FluidStack output); -} diff --git a/src/api/java/forestry/api/recipes/IMoistenerManager.java b/src/api/java/forestry/api/recipes/IMoistenerManager.java deleted file mode 100644 index 711264b4..00000000 --- a/src/api/java/forestry/api/recipes/IMoistenerManager.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; - -/** - * Provides an interface to the recipe manager of the moistener. - * - * The manager is initialized at the beginning of Forestry's BaseMod.load() cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be null even - * if your mod loads before Forestry. - * - * Accessible via {@link RecipeManagers} - * - * @author SirSengir - */ -public interface IMoistenerManager extends ICraftingProvider { - - /** - * Add a recipe to the moistener - * - * @param resource - * Item required in resource stack. Will be reduced by one per produced item. - * @param product - * Item to produce per resource processed. - * @param timePerItem - * Moistener runs at 1 - 4 time ticks per ingame tick depending on light level. For mycelium this value is currently 5000. - */ - public void addRecipe(ItemStack resource, ItemStack product, int timePerItem); -} diff --git a/src/api/java/forestry/api/recipes/ISqueezerManager.java b/src/api/java/forestry/api/recipes/ISqueezerManager.java deleted file mode 100644 index 0a63b731..00000000 --- a/src/api/java/forestry/api/recipes/ISqueezerManager.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; - -import net.minecraftforge.fluids.FluidStack; - -/** - * Provides an interface to the recipe manager of the suqeezer. - * - * The manager is initialized at the beginning of Forestry's BaseMod.load() cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be null even - * if your mod loads before Forestry. - * - * Accessible via {@link RecipeManagers} - * - * @author SirSengir - */ -public interface ISqueezerManager extends ICraftingProvider { - - /** - * Add a recipe to the squeezer. - * - * @param timePerItem - * Number of work cycles required to squeeze one set of resources. - * @param resources - * Array of item stacks representing the required resources for one process. Stack size will be taken into account. - * @param liquid - * {@link FluidStack} representing the output of this recipe. - * @param remnants - * Item stack representing the possible remnants from this recipe. - * @param chance - * Chance remnants will be produced by a single recipe cycle. - */ - public void addRecipe(int timePerItem, ItemStack[] resources, FluidStack liquid, ItemStack remnants, int chance); - - /** - * Add a recipe to the squeezer. - * - * @param timePerItem - * Number of work cycles required to squeeze one set of resources. - * @param resources - * Array of item stacks representing the required resources for one process. Stack size will be taken into account. - * @param liquid - * {@link FluidStack} representing the output of this recipe. - */ - public void addRecipe(int timePerItem, ItemStack[] resources, FluidStack liquid); -} diff --git a/src/api/java/forestry/api/recipes/IStillManager.java b/src/api/java/forestry/api/recipes/IStillManager.java deleted file mode 100644 index 47fd4215..00000000 --- a/src/api/java/forestry/api/recipes/IStillManager.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.recipes; - -import net.minecraftforge.fluids.FluidStack; - -/** - * Provides an interface to the recipe manager of the still. - * - * The manager is initialized at the beginning of Forestry's BaseMod.load() cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be null even - * if your mod loads before Forestry. - * - * Accessible via {@link RecipeManagers} - * - * Note that this is untested with anything other than biomass->biofuel conversion. - * - * @author SirSengir - */ -public interface IStillManager extends ICraftingProvider { - /** - * Add a recipe to the still - * - * @param cyclesPerUnit - * Amount of work cycles required to run through the conversion once. - * @param input - * ItemStack representing the input liquid. - * @param output - * ItemStack representing the output liquid - */ - public void addRecipe(int cyclesPerUnit, FluidStack input, FluidStack output); -} diff --git a/src/api/java/forestry/api/recipes/IVariableFermentable.java b/src/api/java/forestry/api/recipes/IVariableFermentable.java deleted file mode 100644 index f0997f53..00000000 --- a/src/api/java/forestry/api/recipes/IVariableFermentable.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; - -/** - * Fermenter checks any valid fermentation item for an implementation of this interface. - * This does not supersede adding a proper recipe to the fermenter! - */ -public interface IVariableFermentable { - - /** - * @param itemstack - * @return Float representing the modification to be applied to the matching recipe's biomass output. - */ - float getFermentationModifier(ItemStack itemstack); -} diff --git a/src/api/java/forestry/api/recipes/RecipeManagers.java b/src/api/java/forestry/api/recipes/RecipeManagers.java deleted file mode 100644 index 403bd5b5..00000000 --- a/src/api/java/forestry/api/recipes/RecipeManagers.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.recipes; - -import java.util.Collection; - -/** - * Contains all available recipe managers for Forestry machines and items. - * - * @author SirSengir - */ -public class RecipeManagers { - - public static Collection craftingProviders; - - /** - * Allows you to add recipes to the carpenter. See {@link ICarpenterManager} for details. - */ - public static ICarpenterManager carpenterManager; - /** - * Allows you to add recipes to the centrifuge. See {@link ICentrifugeManager} for details. - */ - public static ICentrifugeManager centrifugeManager; - /** - * Allows you to add recipes to the fermenter. See {@link IFermenterManager} for details. - */ - public static IFermenterManager fermenterManager; - /** - * Allows you to add recipes to the moistener. See {@link IMoistenerManager} for details. - */ - public static IMoistenerManager moistenerManager; - /** - * Allows you to add recipes to the squeezer. See {@link ISqueezerManager} for details. - */ - public static ISqueezerManager squeezerManager; - /** - * Allows you to add recipes to the still. See {@link IStillManager} for details. - */ - public static IStillManager stillManager; - - public static IFabricatorManager fabricatorManager; -} diff --git a/src/api/java/forestry/api/recipes/package-info.java b/src/api/java/forestry/api/recipes/package-info.java deleted file mode 100644 index c76d83b9..00000000 --- a/src/api/java/forestry/api/recipes/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="3.0.0", owner="ForestryAPI|core", provides="ForestryAPI|recipes") -package forestry.api.recipes; -import cpw.mods.fml.common.API; diff --git a/src/api/java/forestry/api/storage/BackpackEvent.java b/src/api/java/forestry/api/storage/BackpackEvent.java deleted file mode 100644 index 37427788..00000000 --- a/src/api/java/forestry/api/storage/BackpackEvent.java +++ /dev/null @@ -1,25 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.storage; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; - -import cpw.mods.fml.common.eventhandler.Event; - - -public abstract class BackpackEvent extends Event { - - public final EntityPlayer player; - public final IBackpackDefinition backpackDefinition; - public final IInventory backpackInventory; - - public BackpackEvent(EntityPlayer player, IBackpackDefinition backpackDefinition, IInventory backpackInventory) { - this.player = player; - this.backpackDefinition = backpackDefinition; - this.backpackInventory = backpackInventory; - } -} diff --git a/src/api/java/forestry/api/storage/BackpackManager.java b/src/api/java/forestry/api/storage/BackpackManager.java deleted file mode 100644 index 8805904d..00000000 --- a/src/api/java/forestry/api/storage/BackpackManager.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.storage; - -import java.util.ArrayList; -import java.util.HashMap; - -import net.minecraft.item.ItemStack; - -public class BackpackManager { - /** - * 0 - Miner's Backpack 1 - Digger's Backpack 2 - Forester's Backpack 3 - Hunter's Backpack 4 - Adventurer's Backpack - * - * Use IMC messages to achieve the same effect! - */ - public static ArrayList[] backpackItems; - - public static IBackpackInterface backpackInterface; - - /** - * Only use this if you know what you are doing. Prefer backpackInterface. - */ - public static HashMap definitions = new HashMap(); -} diff --git a/src/api/java/forestry/api/storage/BackpackResupplyEvent.java b/src/api/java/forestry/api/storage/BackpackResupplyEvent.java deleted file mode 100644 index e6e5e119..00000000 --- a/src/api/java/forestry/api/storage/BackpackResupplyEvent.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.storage; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; - -import cpw.mods.fml.common.eventhandler.Cancelable; - -/** - * Use @SubscribeEvent on a method taking this event as an argument. Will fire whenever a backpack tries to resupply to a player inventory. Processing will stop - * if the event is canceled. - */ -@Cancelable -public class BackpackResupplyEvent extends BackpackEvent { - - public BackpackResupplyEvent(EntityPlayer player, IBackpackDefinition backpackDefinition, IInventory backpackInventory) { - super(player, backpackDefinition, backpackInventory); - } - -} diff --git a/src/api/java/forestry/api/storage/BackpackStowEvent.java b/src/api/java/forestry/api/storage/BackpackStowEvent.java deleted file mode 100644 index 3afbf7a1..00000000 --- a/src/api/java/forestry/api/storage/BackpackStowEvent.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.storage; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; - -import cpw.mods.fml.common.eventhandler.Cancelable; - -/** - * Use @SubscribeEvent on a method taking this event as an argument. Will fire whenever a backpack tries to store an item. Processing will stop if the stacksize - * of stackToStow drops to 0 or less or the event is canceled. - */ -@Cancelable -public class BackpackStowEvent extends BackpackEvent { - - public final ItemStack stackToStow; - - public BackpackStowEvent(EntityPlayer player, IBackpackDefinition backpackDefinition, IInventory backpackInventory, ItemStack stackToStow) { - super(player, backpackDefinition, backpackInventory); - this.stackToStow = stackToStow; - } -} diff --git a/src/api/java/forestry/api/storage/EnumBackpackType.java b/src/api/java/forestry/api/storage/EnumBackpackType.java deleted file mode 100644 index 48ad7ee0..00000000 --- a/src/api/java/forestry/api/storage/EnumBackpackType.java +++ /dev/null @@ -1,10 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.storage; - -public enum EnumBackpackType { - APIARIST, T1, T2 -} diff --git a/src/api/java/forestry/api/storage/IBackpackDefinition.java b/src/api/java/forestry/api/storage/IBackpackDefinition.java deleted file mode 100644 index 31c66631..00000000 --- a/src/api/java/forestry/api/storage/IBackpackDefinition.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.storage; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public interface IBackpackDefinition { - - /** - * @return A unique string identifier - */ - String getKey(); - - /** - * @return Human-readable name of the backpack. - */ - String getName(ItemStack backpack); - - /** - * @return Primary colour for the backpack icon. - */ - int getPrimaryColour(); - - /** - * @return Secondary colour for backpack icon. - */ - int getSecondaryColour(); - - /** - * Adds an item as valid for this backpack. - * - * @param validItem - */ - void addValidItem(ItemStack validItem); - void addValidItems(List validItems); - - /** - * Returns true if the itemstack is a valid item for this backpack type. - */ - boolean isValidItem(ItemStack itemstack); - -} diff --git a/src/api/java/forestry/api/storage/IBackpackInterface.java b/src/api/java/forestry/api/storage/IBackpackInterface.java deleted file mode 100644 index 27a2eba5..00000000 --- a/src/api/java/forestry/api/storage/IBackpackInterface.java +++ /dev/null @@ -1,22 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.storage; - -import net.minecraft.item.Item; - -public interface IBackpackInterface { - - /** - * Adds a backpack with the given definition and type, returning the item. - * - * @param definition - * Definition of backpack behaviour. - * @param type - * Type of backpack. (T1 or T2 (= Woven) - * @return Created backpack item. - */ - Item addBackpack(IBackpackDefinition definition, EnumBackpackType type); -} diff --git a/src/api/java/forestry/api/storage/ICrateRegistry.java b/src/api/java/forestry/api/storage/ICrateRegistry.java deleted file mode 100644 index 868511e3..00000000 --- a/src/api/java/forestry/api/storage/ICrateRegistry.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.storage; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public interface ICrateRegistry { - - /** - * Makes a new crate, registers it with the game registry with uid, - * and creates crating and uncrating recipes for the Carpenter. - * The icon is rendered automatically from the contained item. - * - * Can only be called during the Init stage. - */ - void registerCrate(Item item, String uid); - void registerCrate(Block block, String uid); - void registerCrate(ItemStack stack, String uid); - - /** - * Same as the above, but uses the ore dictionary for the Carpenter crating recipe. - */ - void registerCrateUsingOreDict(Item item, String uid); - void registerCrateUsingOreDict(Block block, String uid); - void registerCrateUsingOreDict(ItemStack stack, String uid); - -} diff --git a/src/api/java/forestry/api/storage/StorageManager.java b/src/api/java/forestry/api/storage/StorageManager.java deleted file mode 100644 index ef4ec4cf..00000000 --- a/src/api/java/forestry/api/storage/StorageManager.java +++ /dev/null @@ -1,12 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.storage; - -public class StorageManager { - - public static ICrateRegistry crateRegistry; - -} diff --git a/src/api/java/forestry/api/storage/package-info.java b/src/api/java/forestry/api/storage/package-info.java deleted file mode 100644 index 3d0c1e9d..00000000 --- a/src/api/java/forestry/api/storage/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="3.0.0", owner="ForestryAPI|core", provides="ForestryAPI|storage") -package forestry.api.storage; -import cpw.mods.fml.common.API; diff --git a/src/api/java/forestry/api/world/ITreeGenData.java b/src/api/java/forestry/api/world/ITreeGenData.java deleted file mode 100644 index bf59c5e5..00000000 --- a/src/api/java/forestry/api/world/ITreeGenData.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.world; - -import net.minecraft.world.World; - -import com.mojang.authlib.GameProfile; - -import forestry.api.arboriculture.ITreeGenome; - -public interface ITreeGenData { - - int getGirth(World world, int x, int y, int z); - - float getHeightModifier(); - - boolean canGrow(World world, int x, int y, int z, int expectedGirth, int expectedHeight); - - void setLeaves(World world, GameProfile owner, int x, int y, int z); - void setLeavesDecorative(World world, GameProfile owner, int x, int y, int z); - - boolean allowsFruitBlocks(); - - boolean trySpawnFruitBlock(World world, int x, int y, int z); - - ITreeGenome getGenome(); -} diff --git a/src/api/java/forestry/api/world/IWorldGenInterface.java b/src/api/java/forestry/api/world/IWorldGenInterface.java deleted file mode 100644 index b7b5555f..00000000 --- a/src/api/java/forestry/api/world/IWorldGenInterface.java +++ /dev/null @@ -1,22 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.world; - -import net.minecraft.world.gen.feature.WorldGenerator; - -public interface IWorldGenInterface { - - /** - * Retrieves generators for trees identified by a given string. - * - * Returned generator classes take an {@link ITreeGenData} in the constructor. - * - * @param ident - * Unique identifier for tree type. Forestry's convention is 'treeSpecies', i.e. 'treeBaobab', 'treeSequoia'. - * @return All generators matching the given ident. - */ - Class[] getTreeGenerators(String ident); -} diff --git a/src/api/java/forestry/api/world/WorldGenManager.java b/src/api/java/forestry/api/world/WorldGenManager.java deleted file mode 100644 index a2a5b4f8..00000000 --- a/src/api/java/forestry/api/world/WorldGenManager.java +++ /dev/null @@ -1,10 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -package forestry.api.world; - -public class WorldGenManager { - public static IWorldGenInterface worldgenInterface; -} diff --git a/src/api/java/forestry/api/world/package-info.java b/src/api/java/forestry/api/world/package-info.java deleted file mode 100644 index c7e60f4e..00000000 --- a/src/api/java/forestry/api/world/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/******************************************************************************* - * Copyright 2011-2014 SirSengir - * - * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. - ******************************************************************************/ -@API(apiVersion="1.1.0", owner="ForestryAPI|core", provides="ForestryAPI|world") -package forestry.api.world; -import cpw.mods.fml.common.API; diff --git a/src/main/java/fox/spiteful/avaritia/compat/forestry/ExpensiveMutation.java b/src/main/java/fox/spiteful/avaritia/compat/forestry/ExpensiveMutation.java index 8562a76f..601af014 100644 --- a/src/main/java/fox/spiteful/avaritia/compat/forestry/ExpensiveMutation.java +++ b/src/main/java/fox/spiteful/avaritia/compat/forestry/ExpensiveMutation.java @@ -2,20 +2,20 @@ import forestry.api.apiculture.*; import forestry.api.genetics.IAllele; -import forestry.api.genetics.IGenome; +import forestry.api.genetics.IAlleleSpecies; import java.util.ArrayList; import java.util.Collection; public class ExpensiveMutation implements IBeeMutation { - private IAllele mom; - private IAllele dad; + private IAlleleBeeSpecies mom; + private IAlleleBeeSpecies dad; private IAllele[] template; private boolean secret = false; private float baseChance; - public ExpensiveMutation(IAllele first, IAllele second, IAllele[] result, float chance){ + public ExpensiveMutation(IAlleleBeeSpecies first, IAlleleBeeSpecies second, IAllele[] result, float chance){ mom = first; dad = second; template = result; @@ -24,8 +24,8 @@ public ExpensiveMutation(IAllele first, IAllele second, IAllele[] result, float } public static void mutate(){ - IAllele first; - IAllele second; + IAlleleBeeSpecies first; + IAlleleBeeSpecies second; if(Ranger.extra) first = Allele.getExtraSpecies("Relic"); else @@ -70,12 +70,12 @@ public IBeeRoot getRoot() { } @Override - public IAllele getAllele0() { + public IAlleleSpecies getAllele0() { return mom; } @Override - public IAllele getAllele1() { + public IAlleleSpecies getAllele1() { return dad; } @@ -111,38 +111,23 @@ public Collection getSpecialConditions() { return new ArrayList(); } - @Override - public float getChance(IBeeHousing housing, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { - float finalChance = 0f; - float chance = this.baseChance * 1f; - - if(isPartner(allele0) && isPartner(allele1)){ - finalChance = Math.round(chance - * housing.getMutationModifier((IBeeGenome)genome0, - (IBeeGenome)genome1, chance) - * BeeManager.beeRoot.getBeekeepingMode(housing.getWorld()) - .getMutationModifier((IBeeGenome) genome0, - (IBeeGenome) genome1, chance)); - } - - return finalChance; - } - @Override public float getChance(IBeeHousing housing, IAlleleBeeSpecies allele0, IAlleleBeeSpecies allele1, IBeeGenome genome0, IBeeGenome genome1) { float finalChance = 0f; float chance = this.baseChance * 1f; if(isPartner(allele0) && isPartner(allele1)){ + float housingModifier = 1.0f; + for (IBeeModifier modifier : housing.getBeeModifiers()) { + housingModifier *= modifier.getMutationModifier(genome0, genome1, chance); + } finalChance = Math.round(chance - * housing.getMutationModifier(genome0, - genome1, chance) - * BeeManager.beeRoot.getBeekeepingMode(housing.getWorld()) + * housingModifier + * BeeManager.beeRoot.getBeekeepingMode(housing.getWorld()).getBeeModifier() .getMutationModifier(genome0, genome1, chance)); } return finalChance; } - } diff --git a/src/main/java/fox/spiteful/avaritia/compat/forestry/GreedyBeeSpecies.java b/src/main/java/fox/spiteful/avaritia/compat/forestry/GreedyBeeSpecies.java index aee41369..2ab44ad3 100644 --- a/src/main/java/fox/spiteful/avaritia/compat/forestry/GreedyBeeSpecies.java +++ b/src/main/java/fox/spiteful/avaritia/compat/forestry/GreedyBeeSpecies.java @@ -185,16 +185,6 @@ public HashMap getSpecialtyChances() { return specialties; } - @Override - public HashMap getProducts() { - return legacyProducts; - } - - @Override - public HashMap getSpecialty() { - return legacySpecialties; - } - @Override public IBeeRoot getRoot() { return BeeManager.beeRoot; diff --git a/src/main/java/fox/spiteful/avaritia/compat/forestry/Ranger.java b/src/main/java/fox/spiteful/avaritia/compat/forestry/Ranger.java index 5f38914d..5192942e 100644 --- a/src/main/java/fox/spiteful/avaritia/compat/forestry/Ranger.java +++ b/src/main/java/fox/spiteful/avaritia/compat/forestry/Ranger.java @@ -14,6 +14,10 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.EnumHelper; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + public class Ranger { public static Item honey; @@ -46,14 +50,19 @@ public static void stopForestFires() throws Compat.ItemNotFoundException { GreedyBeeSpecies.buzz(); ExpensiveMutation.mutate(); - RecipeManagers.centrifugeManager.addRecipe(20, new ItemStack(LudicrousItems.combs, 1, 1), - new ItemStack[]{new ItemStack(Items.dye, 1, 1), new ItemStack(Items.dye, 1, 2), - new ItemStack(Items.dye, 1, 4), new ItemStack(Items.dye, 1, 5), - new ItemStack(Items.dye, 1, 11), new ItemStack(Items.dye, 1, 14)}, - new int[]{16, 16, 16, 16, 16, 16}); + final float centrifugeChanceA = 0.16f; + Map products = new HashMap<>(); + products.put(new ItemStack(Items.dye, 1, 1), centrifugeChanceA); + products.put(new ItemStack(Items.dye, 1, 2), centrifugeChanceA); + products.put(new ItemStack(Items.dye, 1, 4), centrifugeChanceA); + products.put(new ItemStack(Items.dye, 1, 5), centrifugeChanceA); + products.put(new ItemStack(Items.dye, 1, 11), centrifugeChanceA); + products.put(new ItemStack(Items.dye, 1, 14), centrifugeChanceA); + RecipeManagers.centrifugeManager.addRecipe(20, new ItemStack(LudicrousItems.combs, 1, 1), products); + final float centrifugeChanceB = 1.0f; RecipeManagers.centrifugeManager.addRecipe(20, new ItemStack(LudicrousItems.combs, 1, 0), - new ItemStack(LudicrousItems.beesource, 1, 1)); + Collections.singletonMap(new ItemStack(LudicrousItems.beesource, 1, 1), centrifugeChanceB)); Grinder.catalyst.getInput().add(new ItemStack(panel, 1, 6)); Grinder.catalyst.getInput().add(new ItemStack(LudicrousItems.beesource, 1, 0)); diff --git a/src/main/java/vazkii/botania/api/item/IManaProficiencyArmor.java b/src/main/java/vazkii/botania/api/item/IManaProficiencyArmor.java deleted file mode 100644 index 595e800d..00000000 --- a/src/main/java/vazkii/botania/api/item/IManaProficiencyArmor.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * This class was created by . It's distributed as - * part of the Botania Mod. Get the Source Code in github: - * https://github.com/Vazkii/Botania - * - * Botania is Open Source and distributed under the - * Botania License: http://botaniamod.net/license.php - * - * File Created @ [Aug 28, 2015, 9:04:53 PM (GMT)] - */ -package vazkii.botania.api.item; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -/** - * An armor item that implements this gives the player wearing it mana proficiency, by - * which it makes Rods the player use have a stronger effect. This is a boolean, and only - * one armor piece with this returning true is required for the player to be considered - * to be having proficiency, by which it's suggested that this is used alongside an - * armor set, where only one piece implements it. - */ -public interface IManaProficiencyArmor { - - public boolean shouldGiveProficiency(ItemStack stack, int slot, EntityPlayer player); - - public final static class Helper { - - public static boolean hasProficiency(EntityPlayer player) { - for(int i = 0; i < 4; i++) { - ItemStack armor = player.getCurrentArmor(i); - if(armor != null) { - Item item = armor.getItem(); - if(item instanceof IManaProficiencyArmor && ((IManaProficiencyArmor) item).shouldGiveProficiency(armor, i, player)) - return true; - } - } - return false; - } - - } - -} diff --git a/src/main/java/vazkii/botania/api/mana/IManaDiscountArmor.java b/src/main/java/vazkii/botania/api/mana/IManaDiscountArmor.java deleted file mode 100644 index 56a9683f..00000000 --- a/src/main/java/vazkii/botania/api/mana/IManaDiscountArmor.java +++ /dev/null @@ -1,31 +0,0 @@ -/** - * This class was created by . It's distributed as - * part of the Botania Mod. Get the Source Code in github: - * https://github.com/Vazkii/Botania - * - * Botania is Open Source and distributed under the - * Botania License: http://botaniamod.net/license.php - * - * File Created @ [Jan 28, 2015, 9:22:53 PM (GMT)] - */ -package vazkii.botania.api.mana; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -/** - * An armor item that implements this can provide a mana discount for mana tools. - * Mana tools are the ones on the main toolset (Pick, Shovel, Axe, Sword and Shovel) - * as well as Rods. - */ -public interface IManaDiscountArmor { - - /** - * Gets the mana discount that this piece of armor provides. This is added - * together to create the full discount. - * Value is to be from 0.0 to 1.0. 0.1 is 10% discount, as an example. - * You can also return negative values to make tools cost more. - */ - public float getDiscount(ItemStack stack, int slot, EntityPlayer player); - -} diff --git a/src/main/java/vazkii/botania/api/package-info.java b/src/main/java/vazkii/botania/api/package-info.java deleted file mode 100644 index d8a672b1..00000000 --- a/src/main/java/vazkii/botania/api/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@API(owner = "Botania", apiVersion = "61", provides = "BotaniaAPI") -package vazkii.botania.api; -import cpw.mods.fml.common.API; - diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 7e887014..cfa03e48 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -1,10 +1,10 @@ [ { - "modid": "Avaritia", - "name": "Avaritia", + "modid": "${modId}", + "name": "${modName}", "description": "A mod to see how hard people are willing to grind.", - "version": "${version}", - "mcversion": "${mcversion}", + "version": "${modVersion}", + "mcversion": "${minecraftVersion}", "url": "", "updateUrl": "", "authorList": ["SpitefulFox", "TTFTCUTS"],