Compare commits

..
3 Commits
Author SHA1 Message Date
mezz cc4cc558b8 Fix #893 Shift-Removing items from a machine prefers the hotbar
(cherry picked from commit 099e6f47e8)
2015-10-16 11:56:56 -07:00
mezz 956aaca10c Fix #887 Particles are wrong when breaking wood items
(cherry picked from commit 140643bec3)
2015-10-14 12:21:08 -07:00
mezz 23f7c9c7d9 Bump version to 4.0.10 for 4.0 branch 2015-10-14 01:58:50 -07:00
521 changed files with 7101 additions and 7698 deletions

No files matched your search

+1 -1
View File
@@ -16,7 +16,7 @@
!/LICENSE.txt
!/license-header.txt
!/README.md
!/gradle.properties
!/application.properties
!/build.gradle
!/build.xml
!/gradlew
+5
View File
@@ -0,0 +1,5 @@
mcversion=1.7.10
forgeversion=10.13.3.1370-1.7.10
version_major=4
version_minor=0
version_patch=10
+69 -22
View File
@@ -21,6 +21,8 @@ apply plugin: 'forge'
apply plugin: 'maven'
apply plugin: 'java'
loadProperties()
version = version_major + '.' + version_minor + '.' + version_patch + '.' + getBuildNumber()
if (project.hasProperty('buildQualifier')) {
version = project.version + '-' + project.buildQualifier
@@ -44,8 +46,6 @@ minecraft {
replace '@VERSION@', project.version
replace '@BUILD_NUMBER@', getBuildNumber()
srgExtra "PK: chylex/javacheck forestry/shade/javacheck"
}
sourceSets {
@@ -73,22 +73,16 @@ repositories {
name = "chickenbones"
url = "http://chickenbones.net/maven/"
}
maven{
name "tterrag Repo"
url "http://maven.tterrag.com/"
}
}
configurations {
api
compile.extendsFrom api
shade
compile.extendsFrom shade
}
dependencies {
api 'net.industrial-craft:industrialcraft-2:2.2.713-experimental:api'
api name: "buildcraft", version: "7.1.12", classifier: "api"
api name: "buildcraft", version: "7.0.25", classifier: "api"
// http://files.minecraftforge.net/CodeChickenLib/
compile "codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev"
@@ -98,9 +92,6 @@ dependencies {
compile "codechicken:NotEnoughItems:1.7.10-1.0.5.111:dev"
compile "codechicken:NotEnoughItems:1.7.10-1.0.5.111:src"
// http://maven.tterrag.com/
shade "chylex.javacheck:JavaChecker:v1.2-b1"
testCompile 'junit:junit:4.12'
}
@@ -143,6 +134,45 @@ debugClient {
}
}
task echoVersion << {
printNextVersion()
}
def saveVersion() {
ant.propertyfile(
file: "application.properties") {
entry( key:"version_major", type:"int", value: version_major)
entry( key:"version_minor", type:"int", value: version_minor)
entry( key:"version_patch", type:"int", value: version_patch)
}
project.version = version_major + '.' + version_minor + '.' + version_patch + '.' + getBuildNumber()
printNextVersion()
}
def printNextVersion() {
println '*************************************************************'
println 'The next build will be version: ' + project.version
println '*************************************************************'
}
task bumpMajor << {
project.version_major = Integer.parseInt(project.version_major) + 1
project.version_minor = "0"
project.version_patch = "0"
saveVersion()
}
task bumpMinor << {
project.version_minor = Integer.parseInt(project.version_minor) + 1
project.version_patch = "0"
saveVersion()
}
task bumpPatch << {
project.version_patch = Integer.parseInt(project.version_patch) + 1
saveVersion()
}
jar {
destinationDir = file("build/tmp")
archiveName = "main.jar"
@@ -154,11 +184,8 @@ jar {
into ('cofh/api') {
from project.apiRedstoneFlux + "/LICENSE - LGPLv3.txt"
}
configurations.shade.each{ dep ->
from(project.zipTree(dep)){
exclude 'META-INF', 'META-INF/**', 'mcmod.info'
}
into ('buildcraft/api') {
from "./src/main/java/buildcraft/LICENSE-API"
}
}
@@ -172,10 +199,6 @@ task mainJar(type: Jar, dependsOn: 'reobf') {
destinationDir = file(dirDest)
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
includeEmptyDirs = false
manifest{
attributes 'TweakClass': 'forestry.shade.javacheck.Java7Checker'
}
}
task devJar(type: Jar, dependsOn: 'classes') {
@@ -217,9 +240,20 @@ task sourceJar(type: Jar, dependsOn: 'classes') {
classifier = 'sources'
}
task release (dependsOn: [mainJar, apiJar, devJar, sourceJar]) {
task releaseInit << {
println '*************************************************************'
println 'This build will be version: ' + rootProject.version
println '*************************************************************'
}
task release (dependsOn: [releaseInit, mainJar, apiJar, devJar, sourceJar]) {
}
mainJar.shouldRunAfter releaseInit
devJar.shouldRunAfter releaseInit
apiJar.shouldRunAfter releaseInit
sourceJar.shouldRunAfter releaseInit
artifacts {
archives apiJar
archives devJar
@@ -248,6 +282,19 @@ uploadArchives {
}
}
def loadProperties() {
println('loading application.properties')
file("application.properties").withReader { reader ->
def userProps = new Properties()
userProps.load(reader)
for (Map.Entry property in userProps) {
project.ext[property.getKey()] = property.getValue()
}
}
}
def getBuildNumber() {
return "$System.env.BUILD_NUMBER" != "null" ? "$System.env.BUILD_NUMBER" : "0"
}
-5
View File
@@ -1,5 +0,0 @@
mcversion=1.7.10
forgeversion=10.13.4.1541-1.7.10
version_major=4
version_minor=1
version_patch=1
+21
View File
@@ -0,0 +1,21 @@
BuildCraft API License
Copyright (c) 2011-2014 SpaceToad and the BuildCraft team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
@@ -0,0 +1,40 @@
/**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* The BuildCraft API is distributed under the terms of the MIT License.
* Please check the contents of the license, which should be located
* as "LICENSE.API" in the BuildCraft source code distribution.
*/
package buildcraft.api.tools;
import net.minecraft.entity.player.EntityPlayer;
/***
* Implement this interface on subclasses of Item to have that item work as a wrench for buildcraft
*/
public interface IToolWrench {
/***
* Called to ensure that the wrench can be used. To get the ItemStack that is used, check player.inventory.getCurrentItem()
*
* @param player
* - The player doing the wrenching
* @param x
* ,y,z - The coordinates for the block being wrenched
*
* @return true if wrenching is allowed, false if not
*/
boolean canWrench(EntityPlayer player, int x, int y, int z);
/***
* Callback after the wrench has been used. This can be used to decrease durability or for other purposes. To get the ItemStack that was used, check
* player.inventory.getCurrentItem()
*
* @param player
* - The player doing the wrenching
* @param x
* ,y,z - The coordinates of the block being wrenched
*/
void wrenchUsed(EntityPlayer player, int x, int y, int z);
}
@@ -0,0 +1,11 @@
/**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* The BuildCraft API is distributed under the terms of the MIT License.
* Please check the contents of the license, which should be located
* as "LICENSE.API" in the BuildCraft source code distribution.
*/
@API(apiVersion = "1.0", owner = "BuildCraftAPI|core", provides = "BuildCraftAPI|tools")
package buildcraft.api.tools;
import cpw.mods.fml.common.API;
+6
View File
@@ -30,7 +30,13 @@ import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.GameRegistry.Type;
import forestry.api.fuels.EngineBronzeFuel;
import forestry.api.fuels.EngineCopperFuel;
import forestry.api.fuels.FermenterFuel;
import forestry.api.fuels.FuelManager;
import forestry.api.fuels.GeneratorFuel;
import forestry.api.fuels.MoistenerFuel;
import forestry.api.fuels.RainSubstrate;
import forestry.core.ForestryCore;
import forestry.core.config.Constants;
import forestry.core.config.ForestryItem;
@@ -193,7 +193,6 @@ public class BeekeepingLogic implements IBeekeepingLogic, IStreamable {
if (errorLogic.setCondition(queen == null, EnumErrorCode.NOQUEEN)) {
setActive(false);
beeProgress = 0;
return false;
}
@@ -15,6 +15,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import forestry.api.apiculture.BeeManager;
import forestry.apiculture.genetics.BeeHelper;
import forestry.apiculture.gui.ContainerAlveary;
import forestry.apiculture.gui.ContainerAlvearyHygroregulator;
import forestry.apiculture.gui.ContainerAlvearySieve;
@@ -67,7 +68,7 @@ public class GuiHandlerApiculture extends GuiHandlerBase {
return new GuiAlvearySwarmer(player.inventory, getTile(world, x, y, z, player, TileAlvearySwarmer.class));
case ApiaristChestGUI:
return getNaturalistChestGui(BeeManager.beeRoot, player, world, x, y, z, guiData);
return getNaturalistChestGui(BeeHelper.UID, player, world, x, y, z, guiData);
case ApiaryGUI:
return new GuiBeeHousing(player.inventory, getTile(world, x, y, z, player, TileApiary.class));
@@ -130,7 +131,7 @@ public class GuiHandlerApiculture extends GuiHandlerBase {
return new ContainerAlvearySwarmer(player.inventory, getTile(world, x, y, z, player, TileAlvearySwarmer.class));
case ApiaristChestGUI:
return getNaturalistChestContainer(BeeManager.beeRoot, player, world, x, y, z, guiData);
return getNaturalistChestContainer(BeeHelper.UID, player, world, x, y, z, guiData);
case ApiaryGUI:
synchApiaristTracker(world, player);
@@ -132,20 +132,20 @@ public class BlockAlveary extends BlockStructure {
@Override
public void registerBlockIcons(IIconRegister register) {
icons = new IIcon[14];
icons[0] = TextureManager.registerTex(register, "apiculture/alveary.plain");
icons[1] = TextureManager.registerTex(register, "apiculture/alveary.entrance");
icons[2] = TextureManager.registerTex(register, "apiculture/alveary.bottom");
icons[3] = TextureManager.registerTex(register, "apiculture/alveary.left");
icons[4] = TextureManager.registerTex(register, "apiculture/alveary.right");
icons[5] = TextureManager.registerTex(register, "apiculture/alveary.swarmer.off");
icons[6] = TextureManager.registerTex(register, "apiculture/alveary.swarmer.on");
icons[7] = TextureManager.registerTex(register, "apiculture/alveary.heater.off");
icons[8] = TextureManager.registerTex(register, "apiculture/alveary.heater.on");
icons[9] = TextureManager.registerTex(register, "apiculture/alveary.fan.off");
icons[10] = TextureManager.registerTex(register, "apiculture/alveary.fan.on");
icons[11] = TextureManager.registerTex(register, "apiculture/alveary.valve");
icons[12] = TextureManager.registerTex(register, "apiculture/alveary.stabiliser");
icons[13] = TextureManager.registerTex(register, "apiculture/alveary.sieve");
icons[0] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.plain");
icons[1] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.entrance");
icons[2] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.bottom");
icons[3] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.left");
icons[4] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.right");
icons[5] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.swarmer.off");
icons[6] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.swarmer.on");
icons[7] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.heater.off");
icons[8] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.heater.on");
icons[9] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.fan.off");
icons[10] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.fan.on");
icons[11] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.valve");
icons[12] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.stabiliser");
icons[13] = TextureManager.getInstance().registerTex(register, "apiculture/alveary.sieve");
}
@SideOnly(Side.CLIENT)
@@ -185,8 +185,8 @@ public class BlockBeehives extends BlockContainer {
public void registerBlockIcons(IIconRegister register) {
icons = new IIcon[18];
for (int i = 1; i < 9; i++) {
icons[i * 2] = TextureManager.registerTex(register, "beehives/beehive." + i + ".top");
icons[(i * 2) + 1] = TextureManager.registerTex(register, "beehives/beehive." + i + ".side");
icons[i * 2] = TextureManager.getInstance().registerTex(register, "beehives/beehive." + i + ".top");
icons[(i * 2) + 1] = TextureManager.getInstance().registerTex(register, "beehives/beehive." + i + ".side");
}
}
@@ -117,11 +117,11 @@ public class BlockCandle extends BlockTorch {
@Override
public void registerBlockIcons(IIconRegister register) {
String fileBase = StringUtil.cleanBlockName(this);
this.blockIcon = TextureManager.registerTex(register, "stump");
this.litStump = TextureManager.registerTex(register, fileBase + "StumpLit");
this.litTip = TextureManager.registerTex(register, fileBase + "TipLit");
this.unlitStump = TextureManager.registerTex(register, fileBase + "StumpUnlit");
this.unlitTip = TextureManager.registerTex(register, fileBase + "TipUnlit");
this.blockIcon = TextureManager.getInstance().registerTex(register, "stump");
this.litStump = TextureManager.getInstance().registerTex(register, fileBase + "StumpLit");
this.litTip = TextureManager.getInstance().registerTex(register, fileBase + "TipLit");
this.unlitStump = TextureManager.getInstance().registerTex(register, fileBase + "StumpUnlit");
this.unlitTip = TextureManager.getInstance().registerTex(register, fileBase + "TipUnlit");
}
@Override
@@ -46,7 +46,7 @@ public class BlockStump extends BlockTorch {
@SideOnly(Side.CLIENT)
@Override
public void registerBlockIcons(IIconRegister register) {
this.blockIcon = TextureManager.registerTex(register, StringUtil.cleanBlockName(this));
this.blockIcon = TextureManager.getInstance().registerTex(register, StringUtil.cleanBlockName(this));
}
@SuppressWarnings({"rawtypes", "unchecked"})
@@ -27,9 +27,9 @@ public class EntityFXBee extends EntityFX {
this.particleMaxAge = (int) (20.0D / (Math.random() * 0.8D + 0.2D));
this.noClip = true;
this.motionX *= 0.1D;
this.motionX *= 0.2D;
this.motionY *= 0.015D;
this.motionZ *= 0.1D;
this.motionZ *= 0.2D;
}
/**
@@ -7,9 +7,8 @@ import forestry.api.apiculture.BeeManager;
import forestry.api.apiculture.EnumBeeChromosome;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IClassification;
import forestry.apiculture.genetics.alleles.AlleleEffect;
import forestry.core.genetics.IBranchDefinition;
import forestry.core.genetics.alleles.AlleleHelper;
import forestry.core.genetics.alleles.Allele;
import forestry.core.genetics.alleles.EnumAllele;
public enum BeeBranchDefinition implements IBranchDefinition {
@@ -20,96 +19,96 @@ public enum BeeBranchDefinition implements IBranchDefinition {
INFERNAL("Diapis") {
@Override
protected void setBranchProperties(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.DOWN_2);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.NOCTURNAL, true);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.NETHER);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.AVERAGE);
Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.DOWN_2);
Allele.helper.set(alleles, EnumBeeChromosome.NOCTURNAL, true);
Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.NETHER);
Allele.helper.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.AVERAGE);
}
},
AUSTERE("Modapis") {
@Override
protected void setBranchProperties(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_1);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.DOWN_1);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.NOCTURNAL, true);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.CACTI);
Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_1);
Allele.helper.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.DOWN_1);
Allele.helper.set(alleles, EnumBeeChromosome.NOCTURNAL, true);
Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.CACTI);
}
},
TROPICAL("Caldapis") {
@Override
protected void setBranchProperties(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.UP_1);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.UP_1);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.JUNGLE);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.EFFECT, AlleleEffect.effectMiasmic);
Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.UP_1);
Allele.helper.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.UP_1);
Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.JUNGLE);
Allele.helper.set(alleles, EnumBeeChromosome.EFFECT, Allele.effectMiasmic);
}
},
END("Finapis") {
@Override
protected void setBranchProperties(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.LOW);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.UP_1);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGE);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.END);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.NOCTURNAL, true);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.EFFECT, AlleleEffect.effectMisanthrope);
Allele.helper.set(alleles, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.LOW);
Allele.helper.set(alleles, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(alleles, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER);
Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.UP_1);
Allele.helper.set(alleles, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGE);
Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.END);
Allele.helper.set(alleles, EnumBeeChromosome.NOCTURNAL, true);
Allele.helper.set(alleles, EnumBeeChromosome.EFFECT, Allele.effectMisanthrope);
}
},
FROZEN("Coagapis") {
@Override
protected void setBranchProperties(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.UP_1);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.BOTH_1);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.SNOW);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.EFFECT, AlleleEffect.effectGlacial);
Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.UP_1);
Allele.helper.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.BOTH_1);
Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.SNOW);
Allele.helper.set(alleles, EnumBeeChromosome.EFFECT, Allele.effectGlacial);
}
},
VENGEFUL("Punapis") {
@Override
protected void setBranchProperties(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGEST);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.EFFECT, AlleleEffect.effectRadioactive);
Allele.helper.set(alleles, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGEST);
Allele.helper.set(alleles, EnumBeeChromosome.EFFECT, Allele.effectRadioactive);
}
},
FESTIVE("Festapis") {
@Override
protected void setBranchProperties(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_2);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.BOTH_1);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL);
Allele.helper.set(alleles, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_2);
Allele.helper.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.BOTH_1);
Allele.helper.set(alleles, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL);
}
},
AGRARIAN("Rustapis") {
@Override
protected void setBranchProperties(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTER);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.WHEAT);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FASTER);
Allele.helper.set(alleles, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(alleles, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTER);
Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.WHEAT);
Allele.helper.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FASTER);
}
},
BOGGY("Paludapis") {
@Override
protected void setBranchProperties(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.MUSHROOMS);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWER);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_1);
Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.MUSHROOMS);
Allele.helper.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWER);
Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_1);
}
},
MONASTIC("Monapis") {
@Override
protected void setBranchProperties(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.LOW);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FASTER);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.BOTH_1);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_1);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.CAVE_DWELLING, true);
AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.WHEAT);
Allele.helper.set(alleles, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(alleles, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG);
Allele.helper.set(alleles, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.LOW);
Allele.helper.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FASTER);
Allele.helper.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.BOTH_1);
Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_1);
Allele.helper.set(alleles, EnumBeeChromosome.CAVE_DWELLING, true);
Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.WHEAT);
}
};
@@ -141,18 +140,18 @@ public enum BeeBranchDefinition implements IBranchDefinition {
if (defaultTemplate == null) {
defaultTemplate = new IAllele[EnumBeeChromosome.values().length];
AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST);
AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTER);
AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.NORMAL);
AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.NONE);
AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.NOCTURNAL, false);
AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.NONE);
AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.TOLERANT_FLYER, false);
AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.CAVE_DWELLING, false);
AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.VANILLA);
AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWEST);
AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.AVERAGE);
AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.EFFECT, AlleleEffect.effectNone);
Allele.helper.set(defaultTemplate, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST);
Allele.helper.set(defaultTemplate, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTER);
Allele.helper.set(defaultTemplate, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.NORMAL);
Allele.helper.set(defaultTemplate, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.NONE);
Allele.helper.set(defaultTemplate, EnumBeeChromosome.NOCTURNAL, false);
Allele.helper.set(defaultTemplate, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.NONE);
Allele.helper.set(defaultTemplate, EnumBeeChromosome.TOLERANT_FLYER, false);
Allele.helper.set(defaultTemplate, EnumBeeChromosome.CAVE_DWELLING, false);
Allele.helper.set(defaultTemplate, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.VANILLA);
Allele.helper.set(defaultTemplate, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWEST);
Allele.helper.set(defaultTemplate, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.AVERAGE);
Allele.helper.set(defaultTemplate, EnumBeeChromosome.EFFECT, Allele.effectNone);
}
return Arrays.copyOf(defaultTemplate, defaultTemplate.length);
}
@@ -32,9 +32,8 @@ import forestry.api.apiculture.IBeeMutationCustom;
import forestry.api.core.EnumHumidity;
import forestry.api.core.EnumTemperature;
import forestry.api.genetics.IAllele;
import forestry.apiculture.genetics.alleles.AlleleEffect;
import forestry.core.config.ForestryItem;
import forestry.core.genetics.alleles.AlleleHelper;
import forestry.core.genetics.alleles.Allele;
import forestry.core.genetics.alleles.EnumAllele;
public enum BeeDefinition implements IBeeDefinition {
@@ -47,8 +46,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWER);
AlleleHelper.instance.set(template, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.HIGH);
Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.HIGH);
}
@Override
@@ -64,7 +63,7 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWER);
}
@Override
@@ -80,7 +79,7 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
}
@Override
@@ -102,8 +101,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.FAST);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTEST);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.FAST);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTEST);
}
@Override
@@ -123,9 +122,9 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
AlleleHelper.instance.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOW);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOW);
}
@Override
@@ -141,9 +140,9 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTENED);
AlleleHelper.instance.set(template, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.MAXIMUM);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTENED);
Allele.helper.set(template, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.MAXIMUM);
}
@Override
@@ -161,9 +160,9 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL);
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectBeatific);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectBeatific);
}
@Override
@@ -181,9 +180,9 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
AlleleHelper.instance.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOW);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOW);
}
@Override
@@ -199,8 +198,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTENED);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTENED);
}
@Override
@@ -218,9 +217,9 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL);
AlleleHelper.instance.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FAST);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL);
Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FAST);
}
@Override
@@ -239,10 +238,10 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL);
AlleleHelper.instance.set(template, EnumBeeChromosome.NOCTURNAL, true);
AlleleHelper.instance.set(template, EnumBeeChromosome.CAVE_DWELLING, true);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL);
Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true);
Allele.helper.set(template, EnumBeeChromosome.CAVE_DWELLING, true);
}
@Override
@@ -259,10 +258,10 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG);
AlleleHelper.instance.set(template, EnumBeeChromosome.NOCTURNAL, true);
AlleleHelper.instance.set(template, EnumBeeChromosome.CAVE_DWELLING, true);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG);
Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true);
Allele.helper.set(template, EnumBeeChromosome.CAVE_DWELLING, true);
}
@Override
@@ -279,11 +278,11 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG);
AlleleHelper.instance.set(template, EnumBeeChromosome.NOCTURNAL, true);
AlleleHelper.instance.set(template, EnumBeeChromosome.CAVE_DWELLING, true);
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectHeroic);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG);
Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true);
Allele.helper.set(template, EnumBeeChromosome.CAVE_DWELLING, true);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectHeroic);
}
@Override
@@ -304,9 +303,9 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL);
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectAggressive);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectAggressive);
}
@Override
@@ -328,9 +327,9 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG);
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectAggressive);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectAggressive);
}
@Override
@@ -353,9 +352,9 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER);
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectIgnition);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectIgnition);
}
@Override
@@ -376,8 +375,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
}
@Override
@@ -395,8 +394,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG);
}
@Override
@@ -421,10 +420,10 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER);
AlleleHelper.instance.set(template, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.DOWN_2);
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectCreeper);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER);
Allele.helper.set(template, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.DOWN_2);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectCreeper);
}
@Override
@@ -446,8 +445,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
}
@Override
@@ -465,8 +464,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG);
}
@Override
@@ -485,10 +484,10 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER);
AlleleHelper.instance.set(template, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_2);
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectExploration);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER);
Allele.helper.set(template, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_2);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectExploration);
}
@Override
@@ -524,7 +523,7 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectReanimation);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectReanimation);
}
@Override
@@ -542,9 +541,9 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGEST);
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectResurrection);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGEST);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectResurrection);
}
@Override
@@ -563,9 +562,9 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
AlleleHelper.instance.set(template, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.MAXIMUM);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
Allele.helper.set(template, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.MAXIMUM);
}
@Override
@@ -583,8 +582,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
}
@Override
@@ -604,8 +603,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT);
}
@Override
@@ -625,8 +624,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL);
}
@Override
@@ -643,8 +642,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER);
}
@Override
@@ -663,8 +662,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST);
AlleleHelper.instance.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGEST);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST);
Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGEST);
}
@Override
@@ -686,7 +685,7 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectFestiveEaster);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectFestiveEaster);
}
@Override
@@ -709,8 +708,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.NOCTURNAL, true);
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectSnowing);
Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectSnowing);
}
@Override
@@ -733,8 +732,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.NOCTURNAL, true);
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectDrunkard);
Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectDrunkard);
}
@Override
@@ -761,9 +760,9 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.NOCTURNAL, true);
AlleleHelper.instance.set(template, EnumBeeChromosome.TOLERANT_FLYER, true);
AlleleHelper.instance.set(template, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.GOURD);
Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true);
Allele.helper.set(template, EnumBeeChromosome.TOLERANT_FLYER, true);
Allele.helper.set(template, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.GOURD);
}
@Override
@@ -801,8 +800,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW);
AlleleHelper.instance.set(template, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGE);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW);
Allele.helper.set(template, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGE);
}
@Override
@@ -820,10 +819,10 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW);
AlleleHelper.instance.set(template, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.BOTH_2);
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectFertile);
AlleleHelper.instance.set(template, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGE);
Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW);
Allele.helper.set(template, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.BOTH_2);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectFertile);
Allele.helper.set(template, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGE);
}
@Override
@@ -860,9 +859,9 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.MAXIMUM);
AlleleHelper.instance.set(template, EnumBeeChromosome.TOLERANT_FLYER, true);
AlleleHelper.instance.set(template, EnumBeeChromosome.NOCTURNAL, true);
Allele.helper.set(template, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.MAXIMUM);
Allele.helper.set(template, EnumBeeChromosome.TOLERANT_FLYER, true);
Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true);
}
@Override
@@ -882,10 +881,10 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.TOLERANT_FLYER, true);
AlleleHelper.instance.set(template, EnumBeeChromosome.NOCTURNAL, true);
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectMycophilic);
AlleleHelper.instance.set(template, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGER);
Allele.helper.set(template, EnumBeeChromosome.TOLERANT_FLYER, true);
Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectMycophilic);
Allele.helper.set(template, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGER);
}
@Override
@@ -924,7 +923,7 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FASTEST);
Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FASTEST);
}
@Override
@@ -942,8 +941,8 @@ public enum BeeDefinition implements IBeeDefinition {
@Override
protected void setAlleles(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FASTEST);
AlleleHelper.instance.set(template, EnumBeeChromosome.EFFECT, AlleleEffect.effectRepulsion);
Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FASTEST);
Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectRepulsion);
}
@Override
@@ -994,7 +993,7 @@ public enum BeeDefinition implements IBeeDefinition {
setSpeciesProperties(species);
template = branch.getTemplate();
AlleleHelper.instance.set(template, EnumBeeChromosome.SPECIES, species);
Allele.helper.set(template, EnumBeeChromosome.SPECIES, species);
setAlleles(template);
genome = BeeManager.beeRoot.templateAsGenome(template);
@@ -8,7 +8,7 @@ import forestry.api.apiculture.EnumBeeType;
import forestry.api.apiculture.IBee;
import forestry.api.apiculture.IBeeGenome;
import forestry.api.genetics.IAllele;
import forestry.core.genetics.alleles.AlleleHelper;
import forestry.core.genetics.alleles.Allele;
public abstract class BeeVariation implements IBeeDefinition {
@@ -51,7 +51,7 @@ public abstract class BeeVariation implements IBeeDefinition {
@Override
protected void initializeTemplate(IAllele[] template) {
AlleleHelper.instance.set(template, EnumBeeChromosome.TOLERANT_FLYER, true);
Allele.helper.set(template, EnumBeeChromosome.TOLERANT_FLYER, true);
}
}
}
@@ -56,7 +56,7 @@ public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpecies
private boolean nocturnal = false;
public AlleleBeeSpecies(String uid, String unlocalizedName, String authority, String unlocalizedDescription, boolean dominant, IClassification branch, String binomial, int primaryColor, int secondaryColor) {
super(uid, unlocalizedName, authority, unlocalizedDescription, dominant, branch, binomial);
super(uid, unlocalizedName, authority, unlocalizedDescription, dominant, branch, binomial, false);
this.primaryColour = primaryColor;
this.secondaryColour = secondaryColor;
@@ -213,7 +213,8 @@ public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpecies
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister register) {
String beeIconDir = "bees/default/";
IIcon body1 = TextureManager.registerTex(register, beeIconDir + "body1");
TextureManager textureManager = TextureManager.getInstance();
IIcon body1 = textureManager.registerTex(register, beeIconDir + "body1");
for (int i = 0; i < EnumBeeType.values().length; i++) {
EnumBeeType beeType = EnumBeeType.values()[i];
@@ -223,13 +224,13 @@ public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpecies
String beeTypeNameBase = beeIconDir + beeType.toString().toLowerCase(Locale.ENGLISH);
icons[i][0] = TextureManager.registerTex(register, beeTypeNameBase + ".outline");
icons[i][0] = textureManager.registerTex(register, beeTypeNameBase + ".outline");
if (beeType == EnumBeeType.LARVAE) {
icons[i][1] = TextureManager.registerTex(register, beeTypeNameBase + ".body");
icons[i][1] = textureManager.registerTex(register, beeTypeNameBase + ".body");
} else {
icons[i][1] = body1;
}
icons[i][2] = TextureManager.registerTex(register, beeTypeNameBase + ".body2");
icons[i][2] = textureManager.registerTex(register, beeTypeNameBase + ".body2");
}
}
@@ -1,107 +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.apiculture.genetics.alleles;
import net.minecraft.util.AxisAlignedBB;
import forestry.api.apiculture.BeeManager;
import forestry.api.apiculture.IAlleleBeeEffect;
import forestry.api.apiculture.IBeeGenome;
import forestry.api.apiculture.IBeeHousing;
import forestry.api.apiculture.IBeeModifier;
import forestry.api.genetics.IEffectData;
import forestry.core.genetics.alleles.AlleleCategorized;
import forestry.core.proxy.Proxies;
import forestry.core.utils.vect.MutableVect;
import forestry.core.utils.vect.Vect;
public abstract class AlleleEffect extends AlleleCategorized implements IAlleleBeeEffect {
public static IAlleleBeeEffect effectNone;
public static IAlleleBeeEffect effectAggressive;
public static IAlleleBeeEffect effectHeroic;
public static IAlleleBeeEffect effectBeatific;
public static IAlleleBeeEffect effectMiasmic;
public static IAlleleBeeEffect effectMisanthrope;
public static IAlleleBeeEffect effectGlacial;
public static IAlleleBeeEffect effectRadioactive;
public static IAlleleBeeEffect effectCreeper;
public static IAlleleBeeEffect effectIgnition;
public static IAlleleBeeEffect effectExploration;
public static IAlleleBeeEffect effectFestiveEaster;
public static IAlleleBeeEffect effectSnowing;
public static IAlleleBeeEffect effectDrunkard;
public static IAlleleBeeEffect effectReanimation;
public static IAlleleBeeEffect effectResurrection;
public static IAlleleBeeEffect effectRepulsion;
public static IAlleleBeeEffect effectFertile;
public static IAlleleBeeEffect effectMycophilic;
protected AlleleEffect(String valueName, boolean isDominant) {
super("forestry", "effect", valueName, isDominant);
}
@Override
public IEffectData validateStorage(IEffectData storedData) {
return null;
}
@Override
public boolean isCombinable() {
return false;
}
@Override
public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) {
return storedData;
}
@Override
public IEffectData doFX(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) {
Proxies.render.addBeeHiveFX("particles/swarm_bee", housing.getWorld(), housing.getCoordinates(), genome.getPrimary().getIconColour(0));
return storedData;
}
protected Vect getModifiedArea(IBeeGenome genome, IBeeHousing housing) {
IBeeModifier beeModifier = BeeManager.beeRoot.createBeeHousingModifier(housing);
float territoryModifier = beeModifier.getTerritoryModifier(genome, 1f);
MutableVect area = new MutableVect(genome.getTerritory());
area.multiply(territoryModifier);
if (area.x < 1) {
area.x = 1;
}
if (area.y < 1) {
area.y = 1;
}
if (area.z < 1) {
area.z = 1;
}
return new Vect(area);
}
protected AxisAlignedBB getBounding(IBeeGenome genome, IBeeHousing housing) {
IBeeModifier beeModifier = BeeManager.beeRoot.createBeeHousingModifier(housing);
float territoryModifier = beeModifier.getTerritoryModifier(genome, 1.0f);
MutableVect area = new MutableVect(genome.getTerritory());
area.multiply(territoryModifier);
Vect offset = new Vect(area).multiply(-1 / 2.0f);
Vect min = new Vect(housing.getCoordinates()).add(offset);
Vect max = min.add(area);
return AxisAlignedBB.getBoundingBox(min.x, min.y, min.z, max.x, max.y, max.z);
}
}
@@ -18,7 +18,7 @@ import forestry.api.apiculture.IBeeGenome;
import forestry.api.apiculture.IBeeHousing;
import forestry.api.core.EnumTemperature;
import forestry.api.genetics.IEffectData;
import forestry.core.config.Constants;
import forestry.core.proxy.Proxies;
import forestry.core.utils.vect.Vect;
public class AlleleEffectGlacial extends AlleleEffectThrottled {
@@ -61,7 +61,7 @@ public class AlleleEffectGlacial extends AlleleEffectThrottled {
continue;
}
world.setBlock(posBlock.x, posBlock.y, posBlock.z, Blocks.ice, 0, Constants.FLAG_BLOCK_SYNCH_AND_UPDATE);
Proxies.common.setBlockWithNotify(world, posBlock.x, posBlock.y, posBlock.z, Blocks.ice);
}
return storedData;
@@ -80,7 +80,7 @@ public class AlleleEffectIgnition extends AlleleEffectThrottled {
if (housing.getWorld().rand.nextInt(2) != 0) {
super.doFX(genome, storedData, housing);
} else {
Proxies.render.addEntityIgnitionFX(housing.getWorld(), housing.getCoordinates().posX + 0.5, housing.getCoordinates().posY + 1, housing.getCoordinates().posZ + 0.5);
Proxies.common.addEntityIgnitionFX(housing.getWorld(), housing.getCoordinates().posX + 0.5, housing.getCoordinates().posY + 1, housing.getCoordinates().posZ + 0.5);
}
return storedData;
}
@@ -1,17 +1,87 @@
/*******************************************************************************
* 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.apiculture.genetics.alleles;
public class AlleleEffectNone extends AlleleEffect {
public AlleleEffectNone(String valueName, boolean isDominant) {
super(valueName, isDominant);
}
}
/*******************************************************************************
* 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.apiculture.genetics.alleles;
import net.minecraft.util.AxisAlignedBB;
import forestry.api.apiculture.BeeManager;
import forestry.api.apiculture.IAlleleBeeEffect;
import forestry.api.apiculture.IBeeGenome;
import forestry.api.apiculture.IBeeHousing;
import forestry.api.apiculture.IBeeModifier;
import forestry.api.genetics.IEffectData;
import forestry.core.genetics.alleles.AlleleCategorized;
import forestry.core.utils.vect.MutableVect;
import forestry.core.utils.vect.Vect;
import forestry.plugins.PluginApiculture;
public class AlleleEffectNone extends AlleleCategorized implements IAlleleBeeEffect {
public AlleleEffectNone(String valueName, boolean isDominant) {
super("forestry", "effect", valueName, isDominant);
}
@Override
public IEffectData validateStorage(IEffectData storedData) {
return null;
}
@Override
public boolean isCombinable() {
return false;
}
@Override
public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) {
return storedData;
}
@Override
public IEffectData doFX(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) {
PluginApiculture.proxy.addBeeHiveFX("particles/swarm_bee", housing.getWorld(), housing.getCoordinates(), genome.getPrimary().getIconColour(0));
return storedData;
}
protected Vect getModifiedArea(IBeeGenome genome, IBeeHousing housing) {
IBeeModifier beeModifier = BeeManager.beeRoot.createBeeHousingModifier(housing);
float territoryModifier = beeModifier.getTerritoryModifier(genome, 1f);
MutableVect area = new MutableVect(genome.getTerritory());
area.multiply(territoryModifier);
if (area.x < 1) {
area.x = 1;
}
if (area.y < 1) {
area.y = 1;
}
if (area.z < 1) {
area.z = 1;
}
return new Vect(area);
}
protected AxisAlignedBB getBounding(IBeeGenome genome, IBeeHousing housing) {
IBeeModifier beeModifier = BeeManager.beeRoot.createBeeHousingModifier(housing);
float territoryModifier = beeModifier.getTerritoryModifier(genome, 1.0f);
MutableVect area = new MutableVect(genome.getTerritory());
area.multiply(territoryModifier);
Vect offset = new Vect(area).multiply(-1 / 2.0f);
Vect min = new Vect(housing.getCoordinates()).add(offset);
Vect max = min.add(area);
return AxisAlignedBB.getBoundingBox(min.x, min.y, min.z, max.x, max.y, max.z);
}
}
@@ -109,7 +109,7 @@ public class AlleleEffectPotion extends AlleleEffectThrottled {
super.doFX(genome, storedData, housing);
} else {
ChunkCoordinates coords = housing.getCoordinates();
Proxies.render.addEntityPotionFX(housing.getWorld(), coords.posX + 0.5, coords.posY + 1, coords.posZ + 0.5, potionFXColor);
Proxies.common.addEntityPotionFX(housing.getWorld(), coords.posX + 0.5, coords.posY + 1, coords.posZ + 0.5, potionFXColor);
}
return storedData;
}
@@ -69,7 +69,7 @@ public class AlleleEffectSnowing extends AlleleEffectThrottled {
world.setBlockMetadataWithNotify(posBlock.x, posBlock.y, posBlock.z, meta + 1, Constants.FLAG_BLOCK_SYNCH_AND_UPDATE);
}
} else if (block.isReplaceable(world, posBlock.x, posBlock.y, posBlock.z)) {
world.setBlock(posBlock.x, posBlock.y, posBlock.z, Blocks.snow_layer, 0, Constants.FLAG_BLOCK_SYNCH_AND_UPDATE);
Proxies.common.setBlockWithNotify(world, posBlock.x, posBlock.y, posBlock.z, Blocks.snow_layer);
}
}
@@ -86,7 +86,7 @@ public class AlleleEffectSnowing extends AlleleEffectThrottled {
World world = housing.getWorld();
Vect spawn = Vect.getRandomPositionInArea(world.rand, area).add(coordinates).add(offset);
Proxies.render.addEntitySnowFX(world, spawn.x, spawn.y, spawn.z);
Proxies.common.addEntitySnowFX(world, spawn.x, spawn.y, spawn.z);
return storedData;
} else {
return super.doFX(genome, storedData, housing);
@@ -15,7 +15,7 @@ import forestry.api.apiculture.IBeeHousing;
import forestry.api.genetics.IEffectData;
import forestry.core.genetics.EffectData;
public abstract class AlleleEffectThrottled extends AlleleEffect {
public abstract class AlleleEffectThrottled extends AlleleEffectNone {
private boolean isCombinable = false;
private final int throttle;
@@ -11,21 +11,24 @@
package forestry.apiculture.gui;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import forestry.apiculture.items.ItemImprinter.ImprinterInventory;
import forestry.apiculture.network.PacketImprintSelectionResponse;
import forestry.core.gui.ContainerItemInventory;
import forestry.core.gui.IGuiSelectable;
import forestry.core.gui.slots.SlotFiltered;
import forestry.core.gui.slots.SlotOutput;
import forestry.core.network.PacketGuiSelectRequest;
import forestry.core.network.ForestryPacket;
import forestry.core.network.PacketGuiSelect;
import forestry.core.network.PacketId;
import forestry.core.proxy.Proxies;
import forestry.core.utils.InventoryUtil;
public class ContainerImprinter extends ContainerItemInventory<ImprinterInventory> implements IGuiSelectable {
private boolean isNetSynced = false;
public ContainerImprinter(InventoryPlayer inventoryplayer, ImprinterInventory inventory) {
super(inventory, inventoryplayer, 8, 103);
@@ -37,34 +40,66 @@ public class ContainerImprinter extends ContainerItemInventory<ImprinterInventor
@Override
public void onContainerClosed(EntityPlayer entityplayer) {
if (entityplayer.worldObj.isRemote) {
return;
}
InventoryUtil.dropInventory(inventory, entityplayer.worldObj, entityplayer.posX, entityplayer.posY, entityplayer.posZ);
// Drop everything still in there.
for (int i = 0; i < inventory.getSizeInventory(); i++) {
ItemStack stack = inventory.getStackInSlot(i);
if (stack == null) {
continue;
}
Proxies.common.dropItemPlayer(entityplayer, stack);
inventory.setInventorySlotContents(i, null);
}
}
public void advanceSelection(int index) {
sendSelectionChange(index, 0);
}
public void regressSelection(int index) {
sendSelectionChange(index, 1);
}
public void updateContainer(World world) {
if (!isNetSynced && world.isRemote) {
isNetSynced = true;
Proxies.net.sendToServer(new ForestryPacket(PacketId.IMPRINT_SELECTION_GET));
}
}
private void sendSelectionChange(int index, int advance) {
ForestryPacket packet = new PacketGuiSelect(PacketId.GUI_SELECTION_CHANGE, index, advance);
Proxies.net.sendToServer(packet);
isNetSynced = false;
}
@Override
public void handleSelectionRequest(EntityPlayerMP player, PacketGuiSelectRequest packetRequest) {
if (packetRequest.getPrimaryIndex() == 0) {
if (packetRequest.getSecondaryIndex() == 0) {
public void handleSelectionChange(EntityPlayer player, PacketGuiSelect packet) {
if (packet.getSecondaryIndex() == 0) {
if (packet.getPrimaryIndex() == 0) {
inventory.advancePrimary();
} else {
inventory.regressPrimary();
}
} else {
if (packetRequest.getSecondaryIndex() == 0) {
inventory.advanceSecondary();
} else {
inventory.regressSecondary();
}
} else if (packet.getPrimaryIndex() == 0) {
inventory.regressPrimary();
} else {
inventory.regressSecondary();
}
PacketImprintSelectionResponse packetResponse = new PacketImprintSelectionResponse(inventory.getPrimaryIndex(), inventory.getSecondaryIndex());
Proxies.net.sendToPlayer(packetResponse, player);
}
public void setSelection(PacketImprintSelectionResponse packetPayload) {
public void sendSelection(EntityPlayer player) {
ForestryPacket packet = new PacketGuiSelect(PacketId.GUI_SELECTION_SET, inventory.getPrimaryIndex(), inventory.getSecondaryIndex());
Proxies.net.sendToPlayer(packet, player);
}
@Override
public void setSelection(PacketGuiSelect packetPayload) {
inventory.setPrimaryIndex(packetPayload.getPrimaryIndex());
inventory.setSecondaryIndex(packetPayload.getSecondaryIndex());
}
@@ -36,15 +36,31 @@ public class GuiAlveary extends GuiForestryTitled<ContainerAlveary, TileAlvearyP
}
private void drawHealthMeter(int x, int y, int height, EnumTankLevel rated) {
int i = 176 + rated.getLevelScaled(16);
int i = 176;
int k = 0;
switch (rated) {
case EMPTY:
break;
case LOW:
i += 4;
break;
case MEDIUM:
i += 8;
break;
case HIGH:
i += 12;
break;
case MAXIMUM:
i += 16;
break;
}
this.drawTexturedModalRect(x, y + 46 - height, i, k + 46 - height, 4, height);
}
/* LEDGERS */
public void initGui() {
super.initGui();
protected void initLedgers() {
super.initLedgers();
IAlvearyController alvearyController = inventory.getAlvearyController();
ledgerManager.add(new OwnerLedger(ledgerManager, alvearyController));
@@ -41,8 +41,24 @@ public class GuiBeeHousing extends GuiForestryTitled<ContainerBeeHousing, TileAb
}
private void drawHealthMeter(int x, int y, int height, EnumTankLevel rated) {
int i = 176 + rated.getLevelScaled(16);
int i = 176;
int k = 0;
switch (rated) {
case EMPTY:
break;
case LOW:
i += 4;
break;
case MEDIUM:
i += 8;
break;
case HIGH:
i += 12;
break;
case MAXIMUM:
i += 16;
break;
}
this.drawTexturedModalRect(x, y + 46 - height, i, k + 46 - height, 4, height);
}
@@ -129,12 +129,20 @@ public class GuiBeealyzer extends GuiAlyzer {
IAlleleInteger secondaryFertility = (IAlleleInteger) bee.getGenome().getInactiveAllele(EnumBeeChromosome.FERTILITY);
drawFertilityInfo(primaryFertility.getValue(), COLUMN_1, getColorCoding(primaryFertility.isDominant()), 0);
drawFertilityInfo(secondaryFertility.getValue(), COLUMN_2, getColorCoding(secondaryFertility.isDominant()), 0);
newLine();
drawChromosomeRow(StringUtil.localize("gui.area"), bee, EnumBeeChromosome.TERRITORY);
IAlleleArea activeTerritory = (IAlleleArea) bee.getGenome().getActiveAllele(EnumBeeChromosome.TERRITORY);
IAlleleArea inactiveTerritory = (IAlleleArea) bee.getGenome().getInactiveAllele(EnumBeeChromosome.TERRITORY);
drawRow(StringUtil.localize("gui.area"),
new Vect(activeTerritory.getValue()).toString(),
new Vect(inactiveTerritory.getValue()).toString(),
bee, EnumBeeChromosome.TERRITORY);
newLine();
drawChromosomeRow(StringUtil.localize("gui.effect"), bee, EnumBeeChromosome.EFFECT);
newLine();
endPage();
@@ -172,7 +172,7 @@ public class GuiHabitatLocator extends GuiForestry<ContainerHabitatLocator, Habi
GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
}
Proxies.render.bindTexture(SpriteSheet.ITEMS);
Proxies.common.bindTexture(SpriteSheet.ITEMS);
manager.gui.drawTexturedModelRectFromIcon(startX + xPos, startY + yPos, getIcon(), 16, 16);
GL11.glEnable(GL11.GL_LIGHTING);
}
@@ -26,7 +26,6 @@ import forestry.apiculture.items.ItemImprinter.ImprinterInventory;
import forestry.core.config.Constants;
import forestry.core.config.ForestryItem;
import forestry.core.gui.GuiForestry;
import forestry.core.network.PacketGuiSelectRequest;
import forestry.core.proxy.Proxies;
import forestry.core.utils.StringUtil;
@@ -55,6 +54,7 @@ public class GuiImprinter extends GuiForestry<ContainerImprinter, ImprinterInven
@Override
protected void drawGuiContainerBackgroundLayer(float var1, int mouseX, int mouseY) {
container.updateContainer(Proxies.common.getRenderWorld());
super.drawGuiContainerBackgroundLayer(var1, mouseX, mouseY);
int offset = (138 - fontRendererObj.getStringWidth(StringUtil.localize("gui.imprinter.name"))) / 2;
@@ -106,9 +106,9 @@ public class GuiImprinter extends GuiForestry<ContainerImprinter, ImprinterInven
}
if (k == 0) {
advanceSelection(slot);
container.advanceSelection(slot);
} else {
regressSelection(slot);
container.regressSelection(slot);
}
}
@@ -119,16 +119,4 @@ public class GuiImprinter extends GuiForestry<ContainerImprinter, ImprinterInven
startX = (this.width - this.xSize) / 2;
startY = (this.height - this.ySize) / 2;
}
private static void advanceSelection(int index) {
sendSelectionChange(index, 0);
}
private static void regressSelection(int index) {
sendSelectionChange(index, 1);
}
private static void sendSelectionChange(int index, int advance) {
Proxies.net.sendToServer(new PacketGuiSelectRequest(index, advance));
}
}
@@ -48,7 +48,7 @@ public class ItemArmorApiarist extends ItemArmor implements IArmorApiarist, IArm
@SideOnly(Side.CLIENT)
@Override
public void registerIcons(IIconRegister register) {
itemIcon = TextureManager.registerTex(register, StringUtil.cleanItemName(this));
itemIcon = TextureManager.getInstance().registerTex(register, StringUtil.cleanItemName(this));
}
@SideOnly(Side.CLIENT)
@@ -178,18 +178,12 @@ public class ItemBeeGE extends ItemGE {
}
}
@Override
@SideOnly(Side.CLIENT)
@Override
public IIcon getIcon(ItemStack itemstack, int renderPass) {
return getIconFromSpecies(BeeGenome.getSpecies(itemstack), renderPass);
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconIndex(ItemStack stack) {
return getIcon(stack, 0);
}
@SideOnly(Side.CLIENT)
public IIcon getIconFromSpecies(IAlleleBeeSpecies species, int renderPass) {
if (species == null) {
@@ -1,27 +1,26 @@
/*******************************************************************************
* 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.core.fluids;
import forestry.core.fluids.tanks.StandardTank;
public class FakeTankUpdateHandler implements ITankUpdateHandler {
public static FakeTankUpdateHandler instance = new FakeTankUpdateHandler();
private FakeTankUpdateHandler() {
}
@Override
public void updateTankLevels(StandardTank tank) {
}
}
/*******************************************************************************
* 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.apiculture.items;
import net.minecraft.block.Block;
import forestry.core.items.IStructureBlockItem;
import forestry.core.items.ItemBlockForestry;
/**
* @author CovertJaguar <http://www.railcraft.info/>
*/
public class ItemBlockAlveary extends ItemBlockForestry implements IStructureBlockItem {
public ItemBlockAlveary(Block block) {
super(block);
}
}
@@ -23,7 +23,6 @@ import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ChunkCoordinates;
@@ -44,7 +43,6 @@ import forestry.api.core.IErrorSource;
import forestry.api.core.IErrorState;
import forestry.api.core.Tabs;
import forestry.api.genetics.AlleleManager;
import forestry.apiculture.network.PacketHabitatBiomePointer;
import forestry.apiculture.render.TextureHabitatLocator;
import forestry.core.config.Config;
import forestry.core.config.ForestryItem;
@@ -120,7 +118,7 @@ public class ItemHabitatLocator extends ItemInventoried {
removeInvalidBiomes(currentBiome, targetBiomes);
// reset the locator coordinates
Proxies.render.setHabitatLocatorTexture(null, null);
Proxies.common.setHabitatLocatorCoordinates(null, null);
}
@Override
@@ -142,8 +140,8 @@ public class ItemHabitatLocator extends ItemInventoried {
ChunkCoordinates target = findNearestBiome(player, targetBiomes);
// send an update if we find the biome
if (target != null && player instanceof EntityPlayerMP) {
Proxies.net.sendToPlayer(new PacketHabitatBiomePointer(target), (EntityPlayerMP) player);
if (target != null) {
Proxies.common.setHabitatLocatorCoordinates(player, target);
biomeFound = true;
}
}
@@ -36,7 +36,6 @@ import forestry.api.core.EnumTemperature;
import forestry.api.core.IClimateControlled;
import forestry.apiculture.BeeHousingInventory;
import forestry.core.access.EnumAccess;
import forestry.core.inventory.FakeInventoryAdapter;
import forestry.core.inventory.IInventoryAdapter;
import forestry.core.multiblock.CoordTriplet;
import forestry.core.multiblock.IMultiblockPart;
@@ -89,11 +88,7 @@ public class AlvearyController extends RectangularMultiblockControllerBase imple
@Override
public IInventoryAdapter getInternalInventory() {
if (isAssembled()) {
return inventory;
} else {
return FakeInventoryAdapter.instance();
}
return inventory;
}
@Override
@@ -309,10 +304,10 @@ public class AlvearyController extends RectangularMultiblockControllerBase imple
fxY += upSpread;
// display fx on all 4 sides
Proxies.render.addEntitySwarmFX(worldObj, (fxX - distanceFromCenter), fxY, (fxZ + leftRightSpreadFromCenter));
Proxies.render.addEntitySwarmFX(worldObj, (fxX + distanceFromCenter), fxY, (fxZ + leftRightSpreadFromCenter));
Proxies.render.addEntitySwarmFX(worldObj, (fxX + leftRightSpreadFromCenter), fxY, (fxZ - distanceFromCenter));
Proxies.render.addEntitySwarmFX(worldObj, (fxX + leftRightSpreadFromCenter), fxY, (fxZ + distanceFromCenter));
Proxies.common.addEntitySwarmFX(worldObj, (fxX - distanceFromCenter), fxY, (fxZ + leftRightSpreadFromCenter));
Proxies.common.addEntitySwarmFX(worldObj, (fxX + distanceFromCenter), fxY, (fxZ + leftRightSpreadFromCenter));
Proxies.common.addEntitySwarmFX(worldObj, (fxX + leftRightSpreadFromCenter), fxY, (fxZ - distanceFromCenter));
Proxies.common.addEntitySwarmFX(worldObj, (fxX + leftRightSpreadFromCenter), fxY, (fxZ + distanceFromCenter));
}
}
}
@@ -10,25 +10,14 @@
******************************************************************************/
package forestry.apiculture.multiblock;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import forestry.api.apiculture.IBeeHousing;
import forestry.api.apiculture.IBeeHousingInventory;
import forestry.api.apiculture.IBeeListener;
import forestry.api.apiculture.IBeeModifier;
import forestry.api.apiculture.IBeekeepingLogic;
import forestry.api.core.EnumHumidity;
import forestry.api.core.EnumTemperature;
import forestry.api.core.IErrorLogic;
import forestry.apiculture.blocks.BlockAlveary;
import forestry.core.multiblock.MultiblockControllerBase;
import forestry.core.multiblock.MultiblockValidationException;
import forestry.core.multiblock.rectangular.RectangularMultiblockTileEntityBase;
public abstract class TileAlveary extends RectangularMultiblockTileEntityBase implements IBeeHousing {
public abstract class TileAlveary extends RectangularMultiblockTileEntityBase {
public static final int PLAIN_META = 0;
public static final int ENTRANCE_META = 1;
@@ -94,8 +83,6 @@ public abstract class TileAlveary extends RectangularMultiblockTileEntityBase im
if (worldObj.isRemote) {
this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
}
notifyNeighborsOfBlockChange();
markDirty();
}
@Override
@@ -106,71 +93,6 @@ public abstract class TileAlveary extends RectangularMultiblockTileEntityBase im
if (worldObj.isRemote) {
this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
}
notifyNeighborsOfBlockChange();
markDirty();
}
/* IHousing */
@Override
public World getWorld() {
return getAlvearyController().getWorld();
}
@Override
public ChunkCoordinates getCoordinates() {
return getAlvearyController().getCoordinates();
}
@Override
public BiomeGenBase getBiome() {
return getAlvearyController().getBiome();
}
/* IBeeHousing */
@Override
public Iterable<IBeeModifier> getBeeModifiers() {
return getAlvearyController().getBeeModifiers();
}
@Override
public Iterable<IBeeListener> getBeeListeners() {
return getAlvearyController().getBeeListeners();
}
@Override
public IBeeHousingInventory getBeeInventory() {
return getAlvearyController().getBeeInventory();
}
@Override
public IBeekeepingLogic getBeekeepingLogic() {
return getAlvearyController().getBeekeepingLogic();
}
/* IClimatised */
@Override
public EnumTemperature getTemperature() {
return getAlvearyController().getTemperature();
}
@Override
public EnumHumidity getHumidity() {
return getAlvearyController().getHumidity();
}
@Override
public int getBlockLightValue() {
return getAlvearyController().getBlockLightValue();
}
@Override
public boolean canBlockSeeTheSky() {
return getAlvearyController().canBlockSeeTheSky();
}
@Override
public IErrorLogic getErrorLogic() {
return getAlvearyController().getErrorLogic();
}
}
@@ -10,6 +10,8 @@
******************************************************************************/
package forestry.apiculture.multiblock;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@@ -18,7 +20,6 @@ import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
import forestry.api.apiculture.IAlvearyComponent;
import forestry.api.core.IClimateControlled;
@@ -33,7 +34,7 @@ import forestry.core.inventory.TileInventoryAdapter;
import forestry.core.network.GuiId;
import forestry.core.tiles.ILiquidTankTile;
public class TileAlvearyHygroregulator extends TileAlvearyWithGui implements IInventory, ILiquidTankTile, IFluidHandler, IAlvearyComponent.Climatiser {
public class TileAlvearyHygroregulator extends TileAlvearyWithGui implements IInventory, ILiquidTankTile, IAlvearyComponent.Climatiser {
private final HygroregulatorRecipe[] recipes;
@@ -55,7 +56,7 @@ public class TileAlvearyHygroregulator extends TileAlvearyWithGui implements IIn
Fluid liquidIce = Fluids.ICE.getFluid();
this.liquidTank = new FilteredTank(Constants.PROCESSOR_TANK_CAPACITY, water, lava, liquidIce);
this.tankManager = new TankManager(this, liquidTank);
this.tankManager = new TankManager(liquidTank);
this.recipes = new HygroregulatorRecipe[]{new HygroregulatorRecipe(new FluidStack(water, 1), 1, 0.01f, -0.005f),
new HygroregulatorRecipe(new FluidStack(lava, 1), 10, -0.01f, +0.005f),
@@ -107,8 +108,12 @@ public class TileAlvearyHygroregulator extends TileAlvearyWithGui implements IIn
}
if (tickCount % 20 == 0) {
IInventoryAdapter canInventory = getInternalInventory();
// Check if we have suitable items waiting in the item slot
FluidHelper.drainContainers(tankManager, this, 0);
if (canInventory.getStackInSlot(0) != null) {
FluidHelper.drainContainers(tankManager, canInventory, 0);
}
}
}
@@ -116,7 +121,7 @@ public class TileAlvearyHygroregulator extends TileAlvearyWithGui implements IIn
@Override
public void readFromNBT(NBTTagCompound nbttagcompound) {
super.readFromNBT(nbttagcompound);
tankManager.readFromNBT(nbttagcompound);
tankManager.readTanksFromNBT(nbttagcompound);
transferTime = nbttagcompound.getInteger("TransferTime");
@@ -129,7 +134,7 @@ public class TileAlvearyHygroregulator extends TileAlvearyWithGui implements IIn
@Override
public void writeToNBT(NBTTagCompound nbttagcompound) {
super.writeToNBT(nbttagcompound);
tankManager.writeToNBT(nbttagcompound);
tankManager.writeTanksToNBT(nbttagcompound);
nbttagcompound.setInteger("TransferTime", transferTime);
if (currentRecipe != null) {
@@ -181,6 +186,14 @@ public class TileAlvearyHygroregulator extends TileAlvearyWithGui implements IIn
return tankManager.getTankInfo(from);
}
@Override
public void getGUINetworkData(int messageId, int data) {
}
@Override
public void sendGUINetworkData(Container container, ICrafting iCrafting) {
}
/* RECIPE MANAGMENT */
private static class HygroregulatorRecipe {
@@ -16,12 +16,23 @@ import java.util.Collection;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.common.util.ForgeDirection;
import cpw.mods.fml.common.Optional;
import forestry.api.apiculture.IBeeHousing;
import forestry.api.apiculture.IBeeHousingInventory;
import forestry.api.apiculture.IBeeListener;
import forestry.api.apiculture.IBeeModifier;
import forestry.api.apiculture.IBeekeepingLogic;
import forestry.api.core.EnumHumidity;
import forestry.api.core.EnumTemperature;
import forestry.api.core.ForestryAPI;
import forestry.api.core.IErrorLogic;
import forestry.apiculture.trigger.ApicultureTriggers;
import forestry.core.config.Config;
import forestry.core.gui.IHintSource;
@@ -42,7 +53,7 @@ import buildcraft.api.statements.ITriggerInternal;
import buildcraft.api.statements.ITriggerProvider;
@Optional.Interface(iface = "buildcraft.api.statements.ITriggerProvider", modid = "BuildCraftAPI|statements")
public class TileAlvearyPlain extends TileAlveary implements IClimatised, IHintSource, IStreamableGui, ITitled, ITriggerProvider {
public class TileAlvearyPlain extends TileAlveary implements IBeeHousing, IClimatised, IHintSource, IStreamableGui, ITitled, ITriggerProvider {
@Override
public void onMachineAssembled(MultiblockControllerBase controller) {
@@ -128,7 +139,64 @@ public class TileAlvearyPlain extends TileAlveary implements IClimatised, IHintS
return res;
}
/* IHousing */
@Override
public World getWorld() {
return getAlvearyController().getWorld();
}
@Override
public ChunkCoordinates getCoordinates() {
return getAlvearyController().getCoordinates();
}
@Override
public BiomeGenBase getBiome() {
return getAlvearyController().getBiome();
}
/* IBeeHousing */
@Override
public Iterable<IBeeModifier> getBeeModifiers() {
return getAlvearyController().getBeeModifiers();
}
@Override
public Iterable<IBeeListener> getBeeListeners() {
return getAlvearyController().getBeeListeners();
}
@Override
public IBeeHousingInventory getBeeInventory() {
return getAlvearyController().getBeeInventory();
}
@Override
public IBeekeepingLogic getBeekeepingLogic() {
return getAlvearyController().getBeekeepingLogic();
}
/* IClimatised */
@Override
public EnumTemperature getTemperature() {
return getAlvearyController().getTemperature();
}
@Override
public EnumHumidity getHumidity() {
return getAlvearyController().getHumidity();
}
@Override
public int getBlockLightValue() {
return getAlvearyController().getBlockLightValue();
}
@Override
public boolean canBlockSeeTheSky() {
return getAlvearyController().canBlockSeeTheSky();
}
@Override
public float getExactTemperature() {
return getAlvearyController().getExactTemperature();
@@ -138,4 +206,10 @@ public class TileAlvearyPlain extends TileAlveary implements IClimatised, IHintS
public float getExactHumidity() {
return getAlvearyController().getExactHumidity();
}
@Override
public IErrorLogic getErrorLogic() {
return getAlvearyController().getErrorLogic();
}
}
@@ -12,26 +12,29 @@ package forestry.apiculture.network;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketCoordinates;
import forestry.core.network.PacketIdClient;
import forestry.core.network.PacketId;
import forestry.core.proxy.Proxies;
import forestry.core.tiles.IActivatable;
public class PacketActiveUpdate extends PacketCoordinates implements IForestryPacketClient {
public class PacketActiveUpdate extends PacketCoordinates {
private boolean active;
public PacketActiveUpdate() {
public static void onPacketData(DataInputStreamForestry data) throws IOException {
new PacketActiveUpdate(data);
}
private PacketActiveUpdate(DataInputStreamForestry data) throws IOException {
super(data);
}
public PacketActiveUpdate(IActivatable tile) {
super(PacketIdClient.TILE_FORESTRY_ACTIVE, tile.getCoordinates());
super(PacketId.TILE_FORESTRY_ACTIVE, tile.getCoordinates());
this.active = tile.isActive();
}
@@ -42,13 +45,11 @@ public class PacketActiveUpdate extends PacketCoordinates implements IForestryPa
}
@Override
public void readData(DataInputStreamForestry data) throws IOException {
protected void readData(DataInputStreamForestry data) throws IOException {
super.readData(data);
active = data.readBoolean();
}
@Override
public void onPacketData(DataInputStreamForestry data, EntityPlayer player) {
active = data.readBoolean();
TileEntity tile = getTarget(Proxies.common.getRenderWorld());
if (tile instanceof IActivatable) {
((IActivatable) tile).setActive(active);
@@ -12,7 +12,6 @@ package forestry.apiculture.network;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import forestry.api.apiculture.IBeeHousing;
@@ -20,19 +19,23 @@ import forestry.api.apiculture.IBeekeepingLogic;
import forestry.apiculture.BeekeepingLogic;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketCoordinates;
import forestry.core.network.PacketIdClient;
import forestry.core.network.PacketId;
import forestry.core.proxy.Proxies;
public class PacketBeekeepingLogicActive extends PacketCoordinates implements IForestryPacketClient {
public class PacketBeekeepingLogicActive extends PacketCoordinates {
private BeekeepingLogic beekeepingLogic;
public PacketBeekeepingLogicActive() {
public static void onPacketData(DataInputStreamForestry data) throws IOException {
new PacketBeekeepingLogicActive(data);
}
private PacketBeekeepingLogicActive(DataInputStreamForestry data) throws IOException {
super(data);
}
public PacketBeekeepingLogicActive(IBeeHousing tile) {
super(PacketIdClient.BEE_LOGIC_ACTIVE, tile.getCoordinates());
super(PacketId.BEE_LOGIC_ACTIVE, tile.getCoordinates());
this.beekeepingLogic = (BeekeepingLogic) tile.getBeekeepingLogic();
}
@@ -43,7 +46,9 @@ public class PacketBeekeepingLogicActive extends PacketCoordinates implements IF
}
@Override
public void onPacketData(DataInputStreamForestry data, EntityPlayer player) throws IOException {
protected void readData(DataInputStreamForestry data) throws IOException {
super.readData(data);
TileEntity tile = getTarget(Proxies.common.getRenderWorld());
if (tile instanceof IBeeHousing) {
IBeeHousing beeHousing = (IBeeHousing) tile;
@@ -1,62 +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.apiculture.network;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import forestry.apiculture.tiles.TileCandle;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketCoordinates;
import forestry.core.network.PacketIdClient;
import forestry.core.proxy.Proxies;
public class PacketCandleUpdate extends PacketCoordinates implements IForestryPacketClient {
private int colour;
private boolean lit;
public PacketCandleUpdate() {
}
public PacketCandleUpdate(TileCandle tileCandle) {
super(PacketIdClient.CANDLE_UPDATE, tileCandle);
colour = tileCandle.getColour();
lit = tileCandle.isLit();
}
@Override
public void writeData(DataOutputStreamForestry data) throws IOException {
super.writeData(data);
data.writeInt(colour);
data.writeBoolean(lit);
}
@Override
public void readData(DataInputStreamForestry data) throws IOException {
super.readData(data);
colour = data.readInt();
lit = data.readBoolean();
}
@Override
public void onPacketData(DataInputStreamForestry data, EntityPlayer player) throws IOException {
TileEntity tileEntity = getTarget(Proxies.common.getRenderWorld());
if (tileEntity instanceof TileCandle) {
((TileCandle) tileEntity).onPacketUpdate(colour, lit);
}
}
}
@@ -1,37 +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.apiculture.network;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ChunkCoordinates;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketCoordinates;
import forestry.core.network.PacketIdClient;
import forestry.core.proxy.Proxies;
public class PacketHabitatBiomePointer extends PacketCoordinates implements IForestryPacketClient {
public PacketHabitatBiomePointer() {
}
public PacketHabitatBiomePointer(ChunkCoordinates coordinates) {
super(PacketIdClient.HABITAT_BIOME_POINTER, coordinates);
}
@Override
public void onPacketData(DataInputStreamForestry data, EntityPlayer player) throws IOException {
Proxies.render.setHabitatLocatorTexture(player, getCoordinates());
}
}
@@ -0,0 +1,72 @@
/*******************************************************************************
* 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.apiculture.network;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import forestry.apiculture.gui.ContainerImprinter;
import forestry.apiculture.tiles.TileCandle;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.IPacketHandler;
import forestry.core.network.PacketCoordinates;
import forestry.core.network.PacketId;
import forestry.core.proxy.Proxies;
public class PacketHandlerApiculture implements IPacketHandler {
@Override
public boolean onPacketData(PacketId packetID, DataInputStreamForestry data, EntityPlayer player) throws IOException {
switch (packetID) {
case HABITAT_BIOME_POINTER: {
PacketCoordinates packet = new PacketCoordinates(data);
Proxies.common.setHabitatLocatorCoordinates(player, packet.getCoordinates());
return true;
}
case IMPRINT_SELECTION_GET: {
onImprintSelectionGet(player);
return true;
}
case CANDLE: {
PacketUpdateCandle updateCandle = new PacketUpdateCandle(data);
onCandleUpdate(updateCandle);
return true;
}
case BEE_LOGIC_ACTIVE: {
PacketBeekeepingLogicActive.onPacketData(data);
return true;
}
}
return false;
}
private static void onImprintSelectionGet(EntityPlayer playerEntity) {
if (!(playerEntity.openContainer instanceof ContainerImprinter)) {
return;
}
((ContainerImprinter) playerEntity.openContainer).sendSelection(playerEntity);
}
private static void onCandleUpdate(PacketUpdateCandle updateCandle) {
TileEntity tileEntity = updateCandle.getTarget(Proxies.common.getRenderWorld());
if (tileEntity instanceof TileCandle) {
((TileCandle) tileEntity).onPacketUpdate(updateCandle);
}
}
}
@@ -1,42 +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.apiculture.network;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import forestry.apiculture.gui.ContainerImprinter;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketGuiSelect;
import forestry.core.network.PacketIdClient;
public class PacketImprintSelectionResponse extends PacketGuiSelect implements IForestryPacketClient {
public PacketImprintSelectionResponse() {
}
public PacketImprintSelectionResponse(int primaryIndex, int secondaryIndex) {
super(PacketIdClient.IMPRINT_SELECTION_RESPONSE, primaryIndex, secondaryIndex);
}
@Override
public void onPacketData(DataInputStreamForestry data, EntityPlayer player) throws IOException {
Container container = player.openContainer;
if (!(container instanceof ContainerImprinter)) {
return;
}
((ContainerImprinter) container).setSelection(this);
}
}
@@ -0,0 +1,48 @@
package forestry.apiculture.network;
import java.io.IOException;
import forestry.apiculture.tiles.TileCandle;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.PacketCoordinates;
import forestry.core.network.PacketId;
public class PacketUpdateCandle extends PacketCoordinates {
private int colour;
private boolean lit;
public PacketUpdateCandle(DataInputStreamForestry data) throws IOException {
super(data);
}
public PacketUpdateCandle(TileCandle tileCandle) {
super(PacketId.CANDLE, tileCandle);
colour = tileCandle.getColour();
lit = tileCandle.isLit();
}
@Override
public void writeData(DataOutputStreamForestry data) throws IOException {
super.writeData(data);
data.writeInt(colour);
data.writeBoolean(lit);
}
@Override
public void readData(DataInputStreamForestry data) throws IOException {
super.readData(data);
colour = data.readInt();
lit = data.readBoolean();
}
public int getColour() {
return colour;
}
public boolean isLit() {
return lit;
}
}
@@ -10,9 +10,17 @@
******************************************************************************/
package forestry.apiculture.proxy;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
import forestry.core.render.IBlockRenderer;
public class ProxyApiculture {
public void addBeeHiveFX(String texture, World world, ChunkCoordinates coordinates, int color) {
}
public void addBeeSwarmFX(String texture, World world, double xCoord, double yCoord, double zCoord, int color) {
}
public IBlockRenderer getRendererAnalyzer(String string) {
return null;
@@ -10,16 +10,24 @@
******************************************************************************/
package forestry.apiculture.proxy;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
import net.minecraftforge.client.MinecraftForgeClient;
import cpw.mods.fml.client.registry.RenderingRegistry;
import forestry.apiculture.entities.EntityBee;
import forestry.apiculture.entities.EntityFXBee;
import forestry.apiculture.render.ParticleRenderer;
import forestry.apiculture.render.RenderBeeEntity;
import forestry.apiculture.render.RenderBeeItem;
import forestry.core.config.ForestryItem;
import forestry.core.proxy.ProxyRenderClient;
import forestry.core.render.IBlockRenderer;
import forestry.core.render.RenderAnalyzer;
import forestry.core.render.TextureManager;
import forestry.plugins.PluginApiculture;
public class ProxyApicultureClient extends ProxyApiculture {
@@ -35,6 +43,40 @@ public class ProxyApicultureClient extends ProxyApiculture {
}
}
@Override
public void addBeeHiveFX(String icon, World world, ChunkCoordinates coordinates, int color) {
if (!ProxyRenderClient.shouldSpawnParticle(world)) {
return;
}
EntityFX fx = new EntityFXBee(world, coordinates.posX + 0.5D, coordinates.posY + 0.5D, coordinates.posZ + 0.5D, color);
fx.setParticleIcon(TextureManager.getInstance().getDefault(icon));
ParticleRenderer.getInstance().addEffect(fx);
}
@Override
public void addBeeSwarmFX(String icon, World world, double xCoord, double yCoord, double zCoord, int color) {
if (!ProxyRenderClient.shouldSpawnParticle(world)) {
return;
}
EntityFX fx;
if (world.rand.nextBoolean()) {
fx = new EntityFXBee(world, xCoord, yCoord, zCoord, color);
} else {
double spawnX = xCoord + world.rand.nextInt(4) - 2;
double spawnY = yCoord + world.rand.nextInt(4) - 2;
double spawnZ = zCoord + world.rand.nextInt(4) - 2;
fx = new EntityFXBee(world, spawnX, spawnY, spawnZ, color);
}
fx.setParticleIcon(TextureManager.getInstance().getDefault(icon));
ParticleRenderer.getInstance().addEffect(fx);
}
@Override
public IBlockRenderer getRendererAnalyzer(String gfxBase) {
return new RenderAnalyzer(gfxBase);
@@ -83,7 +83,7 @@ public class ModelAnalyzer extends ModelBase {
float factor = (float) (1.0 / 16.0);
Proxies.render.bindTexture(textures[0]);
Proxies.common.bindTexture(textures[0]);
pedestal.rotateAngleX = angle[0];
pedestal.rotateAngleY = angle[1];
@@ -98,13 +98,13 @@ public class ModelAnalyzer extends ModelBase {
tower1.rotateAngleX = angle[0];
tower1.rotateAngleY = angle[1];
tower1.rotateAngleZ = angle[2];
Proxies.render.bindTexture(textures[1]);
Proxies.common.bindTexture(textures[1]);
tower1.render(factor);
tower2.rotateAngleX = angle[0];
tower2.rotateAngleY = angle[1];
tower2.rotateAngleZ = angle[2];
Proxies.render.bindTexture(textures[2]);
Proxies.common.bindTexture(textures[2]);
tower2.render(factor);
GL11.glPopMatrix();
@@ -92,7 +92,7 @@ public class RenderBeeItem implements IItemRenderer {
float xPos = 1.0f; float yPos = 1.0f;
float width = 1f; float height = 1f;
Proxies.render.bindTexture(SpriteSheet.ITEMS);
Proxies.common.bindTexture(SpriteSheet.ITEMS);
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
tessellator.addVertexWithUV((double)(xPos + 0), (double)(yPos + height), 0f, (double)background.getMinU(), (double)background.getMaxV());
@@ -102,10 +102,10 @@ public abstract class TileAbstractBeeHousing extends TileBase implements IBeeHou
float upSpread = (worldObj.rand.nextFloat() * 6F) / 16F;
fxY += upSpread;
Proxies.render.addEntitySwarmFX(worldObj, (fxX - distanceFromCenter), fxY, (fxZ + leftRightSpreadFromCenter));
Proxies.render.addEntitySwarmFX(worldObj, (fxX + distanceFromCenter), fxY, (fxZ + leftRightSpreadFromCenter));
Proxies.render.addEntitySwarmFX(worldObj, (fxX + leftRightSpreadFromCenter), fxY, (fxZ - distanceFromCenter));
Proxies.render.addEntitySwarmFX(worldObj, (fxX + leftRightSpreadFromCenter), fxY, (fxZ + distanceFromCenter));
Proxies.common.addEntitySwarmFX(worldObj, (fxX - distanceFromCenter), fxY, (fxZ + leftRightSpreadFromCenter));
Proxies.common.addEntitySwarmFX(worldObj, (fxX + distanceFromCenter), fxY, (fxZ + leftRightSpreadFromCenter));
Proxies.common.addEntitySwarmFX(worldObj, (fxX + leftRightSpreadFromCenter), fxY, (fxZ - distanceFromCenter));
Proxies.common.addEntitySwarmFX(worldObj, (fxX + leftRightSpreadFromCenter), fxY, (fxZ + distanceFromCenter));
}
}
}
@@ -14,7 +14,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.Packet;
import net.minecraft.tileentity.TileEntity;
import forestry.apiculture.network.PacketCandleUpdate;
import forestry.apiculture.network.PacketUpdateCandle;
public class TileCandle extends TileEntity {
private int colour;
@@ -28,13 +28,13 @@ public class TileCandle extends TileEntity {
@Override
public Packet getDescriptionPacket() {
PacketCandleUpdate updateCandle = new PacketCandleUpdate(this);
PacketUpdateCandle updateCandle = new PacketUpdateCandle(this);
return updateCandle.getPacket();
}
public void onPacketUpdate(int colour, boolean isLit) {
this.colour = colour;
this.lit = isLit;
public void onPacketUpdate(PacketUpdateCandle updateCandle) {
colour = updateCandle.getColour();
lit = updateCandle.isLit();
}
@Override
@@ -127,7 +127,7 @@ public class FruitProviderNone implements IFruitProvider {
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister register) {
if (overlay != null) {
TextureManager.registerTexUID(register, overlay.texUID, "leaves/fruits." + overlay.ident);
TextureManager.getInstance().registerTexUID(register, overlay.texUID, "leaves/fruits." + overlay.ident);
}
}
}
@@ -36,21 +36,10 @@ public class FruitProviderPod extends FruitProviderNone {
PAPAYA((short) 2013, (short) 2014, (short) 2015);//, COCONUT((short)2016, (short)2017, (short)2018);
public final short[] uids;
EnumPodType(short stage1, short stage2, short stage3) {
uids = new short[]{stage1, stage2, stage3};
}
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister register) {
if (this == COCOA) {
return;
}
String name = toString().toLowerCase(Locale.ENGLISH);
for (int i = 0; i < 3; i++) {
TextureManager.registerTexUID(register, uids[i], "pods/" + name + "." + i);
}
}
}
private static final ItemStack[] DUMMY = new ItemStack[0];
@@ -109,7 +98,13 @@ public class FruitProviderPod extends FruitProviderNone {
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister register) {
type.registerIcons(register);
if (type == EnumPodType.COCOA) {
return;
}
TextureManager.getInstance().registerTexUID(register, type.uids[0], "pods/" + type.toString().toLowerCase(Locale.ENGLISH) + ".0");
TextureManager.getInstance().registerTexUID(register, type.uids[1], "pods/" + type.toString().toLowerCase(Locale.ENGLISH) + ".1");
TextureManager.getInstance().registerTexUID(register, type.uids[2], "pods/" + type.toString().toLowerCase(Locale.ENGLISH) + ".2");
}
}
@@ -14,7 +14,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import forestry.api.arboriculture.TreeManager;
import forestry.arboriculture.genetics.TreeHelper;
import forestry.arboriculture.gui.GuiTreealyzer;
import forestry.arboriculture.items.ItemTreealyzer.TreealyzerInventory;
import forestry.core.GuiHandlerBase;
@@ -34,7 +34,7 @@ public class GuiHandlerArboriculture extends GuiHandlerBase {
switch (GuiId.values()[cleanId]) {
case ArboristChestGUI:
return this.getNaturalistChestContainer(TreeManager.treeRoot, player, world, x, y, z, decodeGuiData(id));
return this.getNaturalistChestContainer(TreeHelper.UID, player, world, x, y, z, decodeGuiData(id));
case TreealyzerGUI:
ItemStack equipped = player.getCurrentEquippedItem();
@@ -62,7 +62,7 @@ public class GuiHandlerArboriculture extends GuiHandlerBase {
switch (GuiId.values()[cleanId]) {
case ArboristChestGUI:
return this.getNaturalistChestGui(TreeManager.treeRoot, player, world, x, y, z, decodeGuiData(id));
return this.getNaturalistChestGui(TreeHelper.UID, player, world, x, y, z, decodeGuiData(id));
case TreealyzerGUI:
ItemStack equipped = player.getCurrentEquippedItem();
@@ -106,7 +106,7 @@ public class BlockArbFence extends BlockFence implements IWoodTyped, ITileEntity
@Override
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
TileWood wood = TileWood.getWoodTile(world, x, y, z);
TileWood wood = BlockWood.getWoodTile(world, x, y, z);
EnumWoodType woodType = wood.getWoodType();
return IconProviderWood.getPlankIcon(woodType);
}
@@ -125,37 +125,30 @@ public class BlockArbFence extends BlockFence implements IWoodTyped, ITileEntity
@Override
public final ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) {
ItemStack itemStack = new ItemStack(this);
NBTTagCompound nbt = TileWood.getTagCompound(world, x, y, z);
NBTTagCompound nbt = BlockWood.getTagCompound(world, x, y, z);
itemStack.setTagCompound(nbt);
return itemStack;
}
/* DROP HANDLING */
// Hack: When harvesting we need to get the drops in onBlockHarvested,
// because Mojang destroys the block and tile before calling getDrops.
private final ThreadLocal<ArrayList<ItemStack>> drops = new ThreadLocal<>();
@Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z) {
return TileWood.blockRemovedByPlayer(this, world, player, x, y, z);
}
@Override
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer playerProfile) {
drops.set(TileWood.getDrops(this, world, x, y, z));
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
world.removeTileEntity(x, y, z);
super.breakBlock(world, x, y, z, block, meta);
}
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
ArrayList<ItemStack> ret = drops.get();
drops.remove();
// not harvested, get drops normally
if (ret == null) {
ret = TileWood.getDrops(this, world, x, y, z);
}
return ret;
return new ArrayList<>();
}
@Override
public final float getBlockHardness(World world, int x, int y, int z) {
TileWood wood = TileWood.getWoodTile(world, x, y, z);
TileWood wood = BlockWood.getWoodTile(world, x, y, z);
if (wood == null) {
return EnumWoodType.DEFAULT_HARDNESS;
}
@@ -67,33 +67,26 @@ public class BlockArbStairs extends BlockStairs implements IWoodTyped, ITileEnti
}
}
/* DROP HANDLING */
// Hack: When harvesting we need to get the drops in onBlockHarvested,
// because Mojang destroys the block and tile before calling getDrops.
private final ThreadLocal<ArrayList<ItemStack>> drops = new ThreadLocal<>();
@Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z) {
return TileWood.blockRemovedByPlayer(this, world, player, x, y, z);
}
@Override
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer playerProfile) {
drops.set(TileWood.getDrops(this, world, x, y, z));
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
world.removeTileEntity(x, y, z);
super.breakBlock(world, x, y, z, block, meta);
}
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
ArrayList<ItemStack> ret = drops.get();
drops.remove();
// not harvested, get drops normally
if (ret == null) {
ret = TileWood.getDrops(this, world, x, y, z);
}
return ret;
return new ArrayList<>();
}
@Override
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) {
ItemStack itemStack = super.getPickBlock(target, world, x, y, z);
NBTTagCompound stairsNBT = TileWood.getTagCompound(world, x, y, z);
NBTTagCompound stairsNBT = BlockWood.getTagCompound(world, x, y, z);
itemStack.setTagCompound(stairsNBT);
return itemStack;
}
@@ -114,7 +107,7 @@ public class BlockArbStairs extends BlockStairs implements IWoodTyped, ITileEnti
@Override
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
TileWood wood = TileWood.getWoodTile(world, x, y, z);
TileWood wood = BlockWood.getWoodTile(world, x, y, z);
EnumWoodType woodType = wood.getWoodType();
return IconProviderWood.getPlankIcon(woodType);
}
@@ -48,7 +48,6 @@ import forestry.api.arboriculture.ITree;
import forestry.api.arboriculture.TreeManager;
import forestry.api.core.IToolScoop;
import forestry.api.core.Tabs;
import forestry.api.lepidopterology.ButterflyManager;
import forestry.api.lepidopterology.EnumFlutterType;
import forestry.api.lepidopterology.IButterfly;
import forestry.arboriculture.LeafDecayHelper;
@@ -59,6 +58,7 @@ import forestry.arboriculture.tiles.TileLeaves;
import forestry.core.proxy.Proxies;
import forestry.core.utils.ItemStackUtil;
import forestry.plugins.PluginArboriculture;
import forestry.plugins.PluginLepidopterology;
public class BlockForestryLeaves extends BlockNewLeaf implements ITileEntityProvider, IGrowable {
@@ -340,7 +340,7 @@ public class BlockForestryLeaves extends BlockNewLeaf implements ITileEntityProv
TileEntity tile = world.getTileEntity(x, y, z);
IButterfly caterpillar = tile instanceof TileLeaves ? ((TileLeaves) tile).getCaterpillar() : null;
if (heldItem != null && (heldItem.getItem() instanceof IToolScoop) && caterpillar != null) {
ItemStack butterfly = ButterflyManager.butterflyRoot.getMemberStack(caterpillar, EnumFlutterType.CATERPILLAR.ordinal());
ItemStack butterfly = PluginLepidopterology.butterflyInterface.getMemberStack(caterpillar, EnumFlutterType.CATERPILLAR.ordinal());
ItemStackUtil.dropItemStackAsEntity(butterfly, world, x, y, z);
((TileLeaves) tile).setCaterpillar(null);
return true;
@@ -111,7 +111,7 @@ public class BlockFruitPod extends BlockCocoa {
@SideOnly(Side.CLIENT)
@Override
public void registerBlockIcons(IIconRegister register) {
defaultIcon = TextureManager.registerTex(register, "pods/papaya.2");
defaultIcon = TextureManager.getInstance().registerTex(register, "pods/papaya.2");
}
@SideOnly(Side.CLIENT)
@@ -45,7 +45,6 @@ public class BlockLog extends BlockWood {
@Override
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
super.breakBlock(world, x, y, z, block, meta);
byte radius = 4;
int boundary = radius + 1;
@@ -102,7 +101,7 @@ public class BlockLog extends BlockWood {
@Override
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
int meta = world.getBlockMetadata(x, y, z);
TileWood wood = TileWood.getWoodTile(world, x, y, z);
TileWood wood = getWoodTile(world, x, y, z);
EnumWoodType type = wood.getWoodType();
if (type == null) {
return getIcon(side, meta);
@@ -50,7 +50,7 @@ public class BlockPlanks extends BlockWood {
@Override
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
TileWood wood = TileWood.getWoodTile(world, x, y, z);
TileWood wood = getWoodTile(world, x, y, z);
EnumWoodType woodType = wood.getWoodType();
return IconProviderWood.getPlankIcon(woodType);
}
@@ -89,7 +89,7 @@ public class BlockSapling extends BlockTreeContainer implements IGrowable {
@SideOnly(Side.CLIENT)
@Override
public void registerBlockIcons(IIconRegister register) {
defaultIcon = TextureManager.registerTex(register, "germlings/sapling.treeBalsa");
defaultIcon = TextureManager.getInstance().registerTex(register, "germlings/sapling.treeBalsa");
for (IAllele allele : AlleleManager.alleleRegistry.getRegisteredAlleles().values()) {
if (allele instanceof IAlleleTreeSpecies) {
@@ -85,7 +85,7 @@ public class BlockSlab extends net.minecraft.block.BlockSlab implements IWoodTyp
@Override
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
TileWood wood = TileWood.getWoodTile(world, x, y, z);
TileWood wood = BlockWood.getWoodTile(world, x, y, z);
EnumWoodType woodType = wood.getWoodType();
return IconProviderWood.getPlankIcon(woodType);
}
@@ -122,37 +122,30 @@ public class BlockSlab extends net.minecraft.block.BlockSlab implements IWoodTyp
@Override
public final ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) {
ItemStack itemStack = new ItemStack(this);
NBTTagCompound nbt = TileWood.getTagCompound(world, x, y, z);
NBTTagCompound nbt = BlockWood.getTagCompound(world, x, y, z);
itemStack.setTagCompound(nbt);
return itemStack;
}
/* DROP HANDLING */
// Hack: When harvesting we need to get the drops in onBlockHarvested,
// because Mojang destroys the block and tile before calling getDrops.
private final ThreadLocal<ArrayList<ItemStack>> drops = new ThreadLocal<>();
@Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z) {
return TileWood.blockRemovedByPlayer(this, world, player, x, y, z);
}
@Override
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer playerProfile) {
drops.set(TileWood.getDrops(this, world, x, y, z));
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
world.removeTileEntity(x, y, z);
super.breakBlock(world, x, y, z, block, meta);
}
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
ArrayList<ItemStack> ret = drops.get();
drops.remove();
// not harvested, get drops normally
if (ret == null) {
ret = TileWood.getDrops(this, world, x, y, z);
}
return ret;
return new ArrayList<>();
}
@Override
public final float getBlockHardness(World world, int x, int y, int z) {
TileWood wood = TileWood.getWoodTile(world, x, y, z);
TileWood wood = BlockWood.getWoodTile(world, x, y, z);
if (wood == null) {
return EnumWoodType.DEFAULT_HARDNESS;
}
@@ -37,6 +37,7 @@ import forestry.arboriculture.IWoodTyped;
import forestry.arboriculture.render.IconProviderWood;
import forestry.arboriculture.tiles.TileWood;
import forestry.core.render.ParticleHelper;
import forestry.core.tiles.TileUtil;
public abstract class BlockWood extends Block implements ITileEntityProvider, IWoodTyped {
@@ -65,6 +66,21 @@ public abstract class BlockWood extends Block implements ITileEntityProvider, IW
return fireproof;
}
public static TileWood getWoodTile(IBlockAccess world, int x, int y, int z) {
return TileUtil.getTile(world, x, y, z, TileWood.class);
}
protected static NBTTagCompound getTagCompound(IBlockAccess world, int x, int y, int z) {
TileWood wood = getWoodTile(world, x, y, z);
NBTTagCompound nbttagcompound = new NBTTagCompound();
if (wood == null) {
return nbttagcompound;
}
EnumWoodType woodType = wood.getWoodType();
woodType.saveToCompound(nbttagcompound);
return nbttagcompound;
}
@SideOnly(Side.CLIENT)
@Override
public final void registerBlockIcons(IIconRegister register) {
@@ -79,37 +95,30 @@ public abstract class BlockWood extends Block implements ITileEntityProvider, IW
@Override
public final ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) {
ItemStack itemStack = new ItemStack(this);
NBTTagCompound nbt = TileWood.getTagCompound(world, x, y, z);
NBTTagCompound nbt = getTagCompound(world, x, y, z);
itemStack.setTagCompound(nbt);
return itemStack;
}
/* DROP HANDLING */
// Hack: When harvesting we need to get the drops in onBlockHarvested,
// because Mojang destroys the block and tile before calling getDrops.
private final ThreadLocal<ArrayList<ItemStack>> drops = new ThreadLocal<>();
@Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z) {
return TileWood.blockRemovedByPlayer(this, world, player, x, y, z);
}
@Override
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer playerProfile) {
drops.set(TileWood.getDrops(this, world, x, y, z));
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
world.removeTileEntity(x, y, z);
super.breakBlock(world, x, y, z, block, meta);
}
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
ArrayList<ItemStack> ret = drops.get();
drops.remove();
// not harvested, get drops normally
if (ret == null) {
ret = TileWood.getDrops(this, world, x, y, z);
}
return ret;
return new ArrayList<>();
}
@Override
public final float getBlockHardness(World world, int x, int y, int z) {
TileWood wood = TileWood.getWoodTile(world, x, y, z);
TileWood wood = getWoodTile(world, x, y, z);
if (wood == null) {
return EnumWoodType.DEFAULT_HARDNESS;
}
@@ -48,12 +48,10 @@ import forestry.api.genetics.IChromosome;
import forestry.api.genetics.IEffectData;
import forestry.api.genetics.IFruitFamily;
import forestry.api.genetics.IMutation;
import forestry.arboriculture.genetics.alleles.AlleleFruit;
import forestry.arboriculture.tiles.TileLeaves;
import forestry.core.config.Config;
import forestry.core.genetics.Chromosome;
import forestry.core.genetics.Individual;
import forestry.core.tiles.TileUtil;
import forestry.core.genetics.alleles.Allele;
import forestry.core.utils.StringUtil;
public class Tree extends Individual implements ITree, IPlantable {
@@ -224,10 +222,6 @@ public class Tree extends Individual implements ITree, IPlantable {
@Override
public void setLeaves(World world, GameProfile owner, int x, int y, int z) {
genome.getPrimary().getGenerator().setLeaves(world, owner, x, y, z, false);
TileLeaves leaves = TileUtil.getTile(world, x, y, z, TileLeaves.class);
if (leaves != null) {
leaves.setTree(this);
}
}
@Override
@@ -328,7 +322,7 @@ public class Tree extends Individual implements ITree, IPlantable {
}
IAllele fruit = getGenome().getActiveAllele(EnumTreeChromosome.FRUITS);
if (fruit != AlleleFruit.fruitNone) {
if (fruit != Allele.fruitNone) {
String strike = "";
if (!canBearFruit()) {
strike = EnumChatFormatting.STRIKETHROUGH.toString();
@@ -21,12 +21,8 @@ import forestry.api.genetics.IAllele;
import forestry.api.genetics.IAlleleRegistry;
import forestry.api.genetics.IClassification;
import forestry.api.genetics.IClassification.EnumClassLevel;
import forestry.arboriculture.genetics.alleles.AlleleFruit;
import forestry.arboriculture.genetics.alleles.AlleleGrowth;
import forestry.arboriculture.genetics.alleles.AlleleLeafEffect;
import forestry.core.genetics.IBranchDefinition;
import forestry.core.genetics.alleles.AlleleHelper;
import forestry.core.genetics.alleles.AllelePlantType;
import forestry.core.genetics.alleles.Allele;
import forestry.core.genetics.alleles.EnumAllele;
public enum TreeBranchDefinition implements IBranchDefinition {
@@ -85,18 +81,18 @@ public enum TreeBranchDefinition implements IBranchDefinition {
if (defaultTemplate == null) {
defaultTemplate = new IAllele[EnumTreeChromosome.values().length];
AlleleHelper.instance.set(defaultTemplate, EnumTreeChromosome.FRUITS, AlleleFruit.fruitNone);
AlleleHelper.instance.set(defaultTemplate, EnumTreeChromosome.GROWTH, AlleleGrowth.growthLightlevel);
AlleleHelper.instance.set(defaultTemplate, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALL);
AlleleHelper.instance.set(defaultTemplate, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOWER);
AlleleHelper.instance.set(defaultTemplate, EnumTreeChromosome.YIELD, EnumAllele.Yield.LOWEST);
AlleleHelper.instance.set(defaultTemplate, EnumTreeChromosome.PLANT, AllelePlantType.plantTypeNone);
AlleleHelper.instance.set(defaultTemplate, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWEST);
AlleleHelper.instance.set(defaultTemplate, EnumTreeChromosome.TERRITORY, EnumAllele.Territory.AVERAGE);
AlleleHelper.instance.set(defaultTemplate, EnumTreeChromosome.EFFECT, AlleleLeafEffect.leavesNone);
AlleleHelper.instance.set(defaultTemplate, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.AVERAGE);
AlleleHelper.instance.set(defaultTemplate, EnumTreeChromosome.GIRTH, 1);
AlleleHelper.instance.set(defaultTemplate, EnumTreeChromosome.FIREPROOF, EnumAllele.Fireproof.FALSE);
Allele.helper.set(defaultTemplate, EnumTreeChromosome.FRUITS, Allele.fruitNone);
Allele.helper.set(defaultTemplate, EnumTreeChromosome.GROWTH, Allele.growthLightlevel);
Allele.helper.set(defaultTemplate, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALL);
Allele.helper.set(defaultTemplate, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOWER);
Allele.helper.set(defaultTemplate, EnumTreeChromosome.YIELD, EnumAllele.Yield.LOWEST);
Allele.helper.set(defaultTemplate, EnumTreeChromosome.PLANT, Allele.plantTypeNone);
Allele.helper.set(defaultTemplate, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWEST);
Allele.helper.set(defaultTemplate, EnumTreeChromosome.TERRITORY, EnumAllele.Territory.AVERAGE);
Allele.helper.set(defaultTemplate, EnumTreeChromosome.EFFECT, Allele.leavesNone);
Allele.helper.set(defaultTemplate, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.AVERAGE);
Allele.helper.set(defaultTemplate, EnumTreeChromosome.GIRTH, 1);
Allele.helper.set(defaultTemplate, EnumTreeChromosome.FIREPROOF, EnumAllele.Fireproof.FALSE);
}
return Arrays.copyOf(defaultTemplate, defaultTemplate.length);
}
@@ -41,8 +41,6 @@ import forestry.api.core.EnumTemperature;
import forestry.api.genetics.IAllele;
import forestry.api.world.ITreeGenData;
import forestry.arboriculture.blocks.BlockForestryLeaves;
import forestry.arboriculture.genetics.alleles.AlleleFruit;
import forestry.arboriculture.genetics.alleles.AlleleGrowth;
import forestry.arboriculture.render.IconProviderGermling;
import forestry.arboriculture.render.IconProviderGermlingVanilla;
import forestry.arboriculture.render.IconProviderLeaves;
@@ -66,6 +64,7 @@ import forestry.arboriculture.worldgen.WorldGenJungle;
import forestry.arboriculture.worldgen.WorldGenKapok;
import forestry.arboriculture.worldgen.WorldGenLarch;
import forestry.arboriculture.worldgen.WorldGenLemon;
import forestry.arboriculture.worldgen.WorldGenLime;
import forestry.arboriculture.worldgen.WorldGenMahoe;
import forestry.arboriculture.worldgen.WorldGenMahogany;
import forestry.arboriculture.worldgen.WorldGenMaple;
@@ -76,7 +75,6 @@ import forestry.arboriculture.worldgen.WorldGenPine;
import forestry.arboriculture.worldgen.WorldGenPlum;
import forestry.arboriculture.worldgen.WorldGenPoplar;
import forestry.arboriculture.worldgen.WorldGenSequoia;
import forestry.arboriculture.worldgen.WorldGenSilverLime;
import forestry.arboriculture.worldgen.WorldGenSpruce;
import forestry.arboriculture.worldgen.WorldGenTeak;
import forestry.arboriculture.worldgen.WorldGenWalnut;
@@ -85,9 +83,8 @@ import forestry.arboriculture.worldgen.WorldGenWillow;
import forestry.arboriculture.worldgen.WorldGenZebrawood;
import forestry.core.config.Constants;
import forestry.core.config.ForestryBlock;
import forestry.core.genetics.alleles.Allele;
import forestry.core.genetics.alleles.AlleleBoolean;
import forestry.core.genetics.alleles.AlleleHelper;
import forestry.core.genetics.alleles.AllelePlantType;
import forestry.core.genetics.alleles.EnumAllele;
public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@@ -99,9 +96,9 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FRUITS, AlleleFruit.fruitApple);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.AVERAGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER);
Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitApple);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER);
}
@Override
@@ -122,9 +119,9 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.AVERAGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.GIRTH, 2);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER);
Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2);
}
@Override
@@ -145,8 +142,8 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.AVERAGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER);
}
@Override
@@ -162,14 +159,14 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
Lime(TreeBranchDefinition.TILIA, "silverLime", "pendula", true, EnumLeafType.DECIDUOUS, new Color(0x5ea107), new Color(0x5ea107).brighter(), EnumWoodType.LIME) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenSilverLime(tree);
return new WorldGenLime(tree);
}
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.LOWER);
//Allele.helper.set(alleles, EnumTreeChromosome.EFFECT, Allele.leavesBrimstone);
}
@@ -200,12 +197,12 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FRUITS, AlleleFruit.fruitWalnut);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.AVERAGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.GIRTH, 2);
Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitWalnut);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2);
}
@Override
@@ -228,11 +225,11 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FRUITS, AlleleFruit.fruitChestnut);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.AVERAGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.GIRTH, 2);
Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitChestnut);
Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2);
}
@Override
@@ -255,11 +252,11 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FRUITS, AlleleFruit.fruitCherry);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.AVERAGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALLER);
Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitCherry);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALLER);
}
@Override
@@ -282,10 +279,10 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FRUITS, AlleleFruit.fruitLemon);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.AVERAGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALLEST);
Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitLemon);
Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALLEST);
}
@Override
@@ -307,10 +304,10 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FRUITS, AlleleFruit.fruitPlum);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.HIGH);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.AVERAGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALLEST);
Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitPlum);
Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.HIGH);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALLEST);
}
@Override
@@ -332,9 +329,9 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
}
@Override
@@ -355,9 +352,9 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.AVERAGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER);
}
@Override
@@ -378,9 +375,9 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
}
@Override
@@ -402,9 +399,9 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
}
@Override
@@ -425,11 +422,11 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGEST);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.GIRTH, 3);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FIREPROOF, EnumAllele.Fireproof.TRUE);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGEST);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWER);
Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 3);
Allele.helper.set(alleles, EnumTreeChromosome.FIREPROOF, EnumAllele.Fireproof.TRUE);
}
@Override
@@ -450,11 +447,11 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.GIGANTIC);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWEST);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWEST);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.GIRTH, 4);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FIREPROOF, EnumAllele.Fireproof.TRUE);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.GIGANTIC);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWEST);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWEST);
Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 4);
Allele.helper.set(alleles, EnumTreeChromosome.FIREPROOF, EnumAllele.Fireproof.TRUE);
}
@Override
@@ -475,9 +472,9 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FRUITS, AlleleFruit.fruitCocoa);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FAST);
Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitCocoa);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGER);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FAST);
}
@Override
@@ -498,7 +495,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
}
@Override
@@ -519,9 +516,9 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.GIRTH, 2);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2);
}
@Override
@@ -543,9 +540,9 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOW);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOW);
}
@Override
@@ -567,10 +564,10 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.GIRTH, 3);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWER);
Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 3);
}
@Override
@@ -591,8 +588,8 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.GIRTH, 2);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2);
}
@Override
@@ -613,10 +610,10 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.GIRTH, 2);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOW);
Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2);
}
@Override
@@ -660,7 +657,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.PLANT, AllelePlantType.plantTypeDesert);
Allele.helper.set(alleles, EnumTreeChromosome.PLANT, Allele.plantTypeDesert);
}
@Override
@@ -681,8 +678,8 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
}
@Override
@@ -704,9 +701,9 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.HIGH);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.HIGH);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
}
@Override
@@ -727,7 +724,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGEST);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGEST);
}
@Override
@@ -749,8 +746,8 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOWEST);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.GIRTH, 2);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOWEST);
Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2);
}
@Override
@@ -772,11 +769,11 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.PLANT, AllelePlantType.plantTypeDesert);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.GIRTH, 3);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
Allele.helper.set(alleles, EnumTreeChromosome.PLANT, Allele.plantTypeDesert);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOW);
Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 3);
}
@Override
@@ -799,9 +796,9 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALL);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.HIGH);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWEST);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALL);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.HIGH);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWEST);
}
@Override
@@ -824,9 +821,9 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER);
}
@Override
@@ -855,10 +852,10 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.GROWTH, AlleleGrowth.growthTropical);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOW);
Allele.helper.set(alleles, EnumTreeChromosome.GROWTH, Allele.growthTropical);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOW);
}
@Override
@@ -882,10 +879,10 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FRUITS, AlleleFruit.fruitPapaya);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitPapaya);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
}
@Override
@@ -907,11 +904,11 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FRUITS, AlleleFruit.fruitDates);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitDates);
Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE);
}
@Override
@@ -933,9 +930,9 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
protected void setAlleles(IAllele[] alleles) {
AlleleHelper.instance.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALL);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
AlleleHelper.instance.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWER);
Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALL);
Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW);
Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWER);
}
@Override
@@ -998,17 +995,6 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
if (woodType == null) {
Block vanillaWoodBlock = Block.getBlockFromItem(vanillaWood.getItem());
int vanillaWoodMeta = vanillaWood.getItemDamage();
switch (facing) {
case NORTH:
case SOUTH:
vanillaWoodMeta |= 2 << 2;
break;
case EAST:
case WEST:
vanillaWoodMeta |= 1 << 2;
break;
}
world.setBlock(x, y, z, vanillaWoodBlock, vanillaWoodMeta, Constants.FLAG_BLOCK_SYNCH);
} else {
AlleleBoolean fireproofAllele = (AlleleBoolean) genome.getActiveAllele(EnumTreeChromosome.FIREPROOF);
@@ -1061,7 +1047,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
setSpeciesProperties(species);
template = branch.getTemplate();
AlleleHelper.instance.set(template, EnumTreeChromosome.SPECIES, species);
Allele.helper.set(template, EnumTreeChromosome.SPECIES, species);
setAlleles(template);
genome = TreeManager.treeRoot.templateAsGenome(template);
@@ -16,19 +16,6 @@ import forestry.core.genetics.alleles.AlleleCategorized;
public class AlleleFruit extends AlleleCategorized implements IAlleleFruit {
public static IAlleleFruit fruitNone;
public static IAlleleFruit fruitApple;
public static IAlleleFruit fruitCocoa;
public static IAlleleFruit fruitChestnut;
public static IAlleleFruit fruitCoconut;
public static IAlleleFruit fruitWalnut;
public static IAlleleFruit fruitCherry;
public static IAlleleFruit fruitDates;
public static IAlleleFruit fruitPapaya;
public static IAlleleFruit fruitLemon;
public static IAlleleFruit fruitPlum;
public static IAlleleFruit fruitJujube;
private final IFruitProvider provider;
public AlleleFruit(String name, IFruitProvider provider) {
@@ -16,10 +16,6 @@ import forestry.core.genetics.alleles.AlleleCategorized;
public class AlleleGrowth extends AlleleCategorized implements IAlleleGrowth {
public static IAlleleGrowth growthLightlevel;
public static IAlleleGrowth growthAcacia;
public static IAlleleGrowth growthTropical;
private final IGrowthProvider provider;
public AlleleGrowth(String name, IGrowthProvider provider) {
@@ -1,57 +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.arboriculture.genetics.alleles;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import forestry.api.arboriculture.IAlleleLeafEffect;
import forestry.api.arboriculture.ITreeGenome;
import forestry.api.genetics.IEffectData;
import forestry.core.genetics.alleles.Allele;
import forestry.core.genetics.alleles.AlleleCategorized;
import forestry.core.utils.vect.Vect;
public class AlleleLeafEffect extends AlleleCategorized implements IAlleleLeafEffect {
private static final int[] DEFAULT_EFFECT_AREA = new int[]{12, 12, 12};
public static Allele leavesNone;
protected AlleleLeafEffect(String valueName, boolean isDominant) {
super("forestry", "leaves", valueName, isDominant);
}
@Override
public boolean isCombinable() {
return true;
}
@Override
public IEffectData validateStorage(IEffectData storedData) {
return storedData;
}
@Override
public IEffectData doEffect(ITreeGenome genome, IEffectData storedData, World world, int x, int y, int z) {
return storedData;
}
protected static AxisAlignedBB getBounding(int x, int y, int z, float modifier) {
int[] areaAr = DEFAULT_EFFECT_AREA;
Vect area = new Vect(areaAr).multiply(modifier);
Vect offset = area.multiply(-1 / 2.0f);
Vect min = offset.add(x, y, z);
Vect max = min.add(area);
return AxisAlignedBB.getBoundingBox(min.x, min.y, min.z, max.x, max.y, max.z);
}
}
@@ -10,13 +10,52 @@
******************************************************************************/
package forestry.arboriculture.genetics.alleles;
public class AlleleLeafEffectNone extends AlleleLeafEffect {
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import forestry.api.arboriculture.IAlleleLeafEffect;
import forestry.api.arboriculture.ITreeGenome;
import forestry.api.genetics.IEffectData;
import forestry.core.genetics.alleles.AlleleCategorized;
import forestry.core.utils.vect.Vect;
public class AlleleLeafEffectNone extends AlleleCategorized implements IAlleleLeafEffect {
private static final int[] DEFAULT_EFFECT_AREA = new int[]{12, 12, 12};
public AlleleLeafEffectNone() {
super("none", true);
super("forestry", "leaves", "none", true);
}
@Override
public boolean isCombinable() {
return true;
}
@Override
public IEffectData validateStorage(IEffectData storedData) {
return storedData;
}
@Override
public String getUnlocalizedName() {
return "for.arboriculture.effect.none";
}
@Override
public IEffectData doEffect(ITreeGenome genome, IEffectData storedData, World world, int x, int y, int z) {
return storedData;
}
protected static AxisAlignedBB getBounding(int x, int y, int z, float modifier) {
int[] areaAr = DEFAULT_EFFECT_AREA;
Vect area = new Vect(areaAr).multiply(modifier);
Vect offset = area.multiply(-1 / 2.0f);
Vect min = offset.add(x, y, z);
Vect max = min.add(area);
return AxisAlignedBB.getBoundingBox(min.x, min.y, min.z, max.x, max.y, max.z);
}
}
@@ -46,7 +46,7 @@ public class AlleleTreeSpecies extends AlleleSpecies implements IAlleleTreeSpeci
private EnumPlantType nativeType = EnumPlantType.Plains;
public AlleleTreeSpecies(String uid, String unlocalizedName, String authority, String unlocalizedDescription, boolean isDominant, IClassification branch, String binomial, ILeafIconProvider leafIconProvider, IGermlingIconProvider germlingIconProvider, ITreeGenerator generator) {
super(uid, unlocalizedName, authority, unlocalizedDescription, isDominant, branch, binomial);
super(uid, unlocalizedName, authority, unlocalizedDescription, isDominant, branch, binomial, false);
this.generator = generator;
this.germlingIconProvider = germlingIconProvider;
@@ -39,9 +39,4 @@ public class CheckPollinatable implements ICheckPollinatable {
public boolean canMateWith(IIndividual pollen) {
return pollinatable.canMateWith(pollen);
}
@Override
public boolean isPollinated() {
return pollinatable.isPollinated();
}
}
@@ -47,8 +47,4 @@ public class CheckPollinatableTree implements ICheckPollinatable {
return !tree.isGeneticEqual(pollen);
}
@Override
public boolean isPollinated() {
return tree.getMate() != null;
}
}
@@ -34,9 +34,4 @@ public class FakePollinatable implements IPollinatable {
public void mateWith(IIndividual pollen) {
}
@Override
public boolean isPollinated() {
return checkPollinatable.isPollinated();
}
}
@@ -38,6 +38,4 @@ public interface ICheckPollinatable {
* @return true if mating is possible, false otherwise.
*/
boolean canMateWith(IIndividual pollen);
boolean isPollinated();
}
@@ -32,10 +32,10 @@ import forestry.api.genetics.IAllele;
import forestry.api.genetics.IAlleleInteger;
import forestry.api.genetics.IFruitFamily;
import forestry.arboriculture.genetics.TreeGenome;
import forestry.arboriculture.genetics.alleles.AlleleFruit;
import forestry.arboriculture.items.ItemGermlingGE;
import forestry.arboriculture.items.ItemTreealyzer.TreealyzerInventory;
import forestry.core.config.ForestryItem;
import forestry.core.genetics.alleles.Allele;
import forestry.core.genetics.alleles.AlleleBoolean;
import forestry.core.genetics.alleles.AllelePlantType;
import forestry.core.gui.ContainerAlyzer;
@@ -240,14 +240,14 @@ public class GuiTreealyzer extends GuiAlyzer {
drawLine(StringUtil.localize("gui.fruits"), COLUMN_0);
String strike = "";
IAllele fruit0 = tree.getGenome().getActiveAllele(EnumTreeChromosome.FRUITS);
if (!tree.canBearFruit() && fruit0 != AlleleFruit.fruitNone) {
if (!tree.canBearFruit() && fruit0 != Allele.fruitNone) {
strike = EnumChatFormatting.STRIKETHROUGH.toString();
}
drawLine(strike + StringUtil.localize(tree.getGenome().getFruitProvider().getDescription()), COLUMN_1, fruitDominance0);
strike = "";
IAllele fruit1 = tree.getGenome().getInactiveAllele(EnumTreeChromosome.FRUITS);
if (!tree.getGenome().getSecondary().getSuitableFruit().contains(((IAlleleFruit) fruit1).getProvider().getFamily()) && fruit1 != AlleleFruit.fruitNone) {
if (!tree.getGenome().getSecondary().getSuitableFruit().contains(((IAlleleFruit) fruit1).getProvider().getFamily()) && fruit1 != Allele.fruitNone) {
strike = EnumChatFormatting.STRIKETHROUGH.toString();
}
drawLine(strike + StringUtil.localize(((IAlleleFruit) fruit1).getProvider().getDescription()), COLUMN_2, fruitDominance1);
@@ -16,16 +16,10 @@ import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.arboriculture.EnumWoodType;
import forestry.arboriculture.IWoodTyped;
import forestry.arboriculture.blocks.BlockLog;
import forestry.arboriculture.render.IconProviderWood;
import forestry.arboriculture.tiles.TileWood;
import forestry.core.config.Constants;
import forestry.core.items.ItemBlockForestry;
@@ -104,24 +98,4 @@ public class ItemBlockWood extends ItemBlockForestry {
return displayName;
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(ItemStack stack, int pass) {
EnumWoodType woodType = EnumWoodType.getFromCompound(stack.getTagCompound());
if (woodType == null) {
return super.getIcon(stack, pass);
}
if (getBlock() instanceof BlockLog) {
return IconProviderWood.getBarkIcon(woodType);
} else {
return IconProviderWood.getPlankIcon(woodType);
}
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconIndex(ItemStack stack) {
return getIcon(stack, 0);
}
}
@@ -143,12 +143,6 @@ public class ItemGermlingGE extends ItemGE implements IVariableFermentable {
return species.getGermlingIcon(type, renderPass);
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconIndex(ItemStack stack) {
return getIcon(stack, 0);
}
@Override
public boolean onItemUse(ItemStack itemstack, EntityPlayer player, World world, int x, int y, int z, int par7, float facingX, float facingY, float facingZ) {
ITree tree = TreeManager.treeRoot.getMember(itemstack);
@@ -1,15 +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.arboriculture.network;
public interface IRipeningPacketReceiver {
void fromRipeningPacket(int ripeningValue);
}
@@ -1,19 +1,36 @@
/*******************************************************************************
* 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.core.network;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayerMP;
public interface IForestryPacketServer extends IForestryPacket {
void onPacketData(DataInputStreamForestry data, EntityPlayerMP player) throws IOException;
}
/*******************************************************************************
* 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.arboriculture.network;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayer;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.IPacketHandler;
import forestry.core.network.PacketId;
public class PacketHandlerArboriculture implements IPacketHandler {
@Override
public boolean onPacketData(PacketId packetID, DataInputStreamForestry data, EntityPlayer player) throws IOException {
switch (packetID) {
case RIPENING_UPDATE: {
PacketRipeningUpdate.onPacketData(data);
return true;
}
}
return false;
}
}
@@ -12,32 +12,35 @@ package forestry.arboriculture.network;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import forestry.arboriculture.tiles.TileFruitPod;
import forestry.arboriculture.tiles.TileLeaves;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketCoordinates;
import forestry.core.network.PacketIdClient;
import forestry.core.network.PacketId;
import forestry.core.proxy.Proxies;
public class PacketRipeningUpdate extends PacketCoordinates implements IForestryPacketClient {
public class PacketRipeningUpdate extends PacketCoordinates {
private int value;
public PacketRipeningUpdate() {
public static void onPacketData(DataInputStreamForestry data) throws IOException {
new PacketRipeningUpdate(data);
}
private PacketRipeningUpdate(DataInputStreamForestry data) throws IOException {
super(data);
}
public PacketRipeningUpdate(TileFruitPod fruitPod) {
super(PacketIdClient.RIPENING_UPDATE, fruitPod);
super(PacketId.RIPENING_UPDATE, fruitPod);
value = fruitPod.getMaturity();
}
public PacketRipeningUpdate(TileLeaves leaves) {
super(PacketIdClient.RIPENING_UPDATE, leaves);
super(PacketId.RIPENING_UPDATE, leaves);
value = leaves.getFruitColour();
}
@@ -51,13 +54,16 @@ public class PacketRipeningUpdate extends PacketCoordinates implements IForestry
public void readData(DataInputStreamForestry data) throws IOException {
super.readData(data);
value = data.readVarInt();
}
@Override
public void onPacketData(DataInputStreamForestry data, EntityPlayer player) throws IOException {
TileEntity tile = getTarget(Proxies.common.getRenderWorld());
if (tile instanceof IRipeningPacketReceiver) {
((IRipeningPacketReceiver) tile).fromRipeningPacket(value);
if (tile instanceof TileLeaves) {
((TileLeaves) tile).fromRipeningPacket(value);
} else if (tile instanceof TileFruitPod) {
((TileFruitPod) tile).fromRipeningPacket(value);
}
}
public int getValue() {
return value;
}
}
@@ -30,7 +30,9 @@ public class IconProviderGermling implements IGermlingIconProvider {
@Override
public void registerIcons(IIconRegister register) {
icon = TextureManager.registerTex(register, "germlings/sapling." + name);
TextureManager textureManager = TextureManager.getInstance();
icon = textureManager.registerTex(register, "germlings/sapling." + name);
}
@Override
@@ -32,9 +32,9 @@ public abstract class IconProviderWood {
EnumWoodType woodType = EnumWoodType.VALUES[i];
String woodName = woodType.toString().toLowerCase(Locale.ENGLISH);
icons[0][i] = TextureManager.registerTex(register, "wood/planks." + woodName);
icons[1][i] = TextureManager.registerTex(register, "wood/bark." + woodName);
icons[2][i] = TextureManager.registerTex(register, "wood/heart." + woodName);
icons[0][i] = TextureManager.getInstance().registerTex(register, "wood/planks." + woodName);
icons[1][i] = TextureManager.getInstance().registerTex(register, "wood/bark." + woodName);
icons[2][i] = TextureManager.getInstance().registerTex(register, "wood/heart." + woodName);
}
}
@@ -50,11 +50,13 @@ public class TextureLeaves {
}
private void registerIcons(IIconRegister register) {
TextureManager textureManager = TextureManager.getInstance();
String ident = leafType.toString().toLowerCase(Locale.ENGLISH);
plain = TextureManager.registerTex(register, "leaves/" + ident + ".plain");
pollinated = TextureManager.registerTex(register, "leaves/" + ident + ".changed");
fancy = TextureManager.registerTex(register, "leaves/" + ident + ".fancy");
plain = textureManager.registerTex(register, "leaves/" + ident + ".plain");
pollinated = textureManager.registerTex(register, "leaves/" + ident + ".changed");
fancy = textureManager.registerTex(register, "leaves/" + ident + ".fancy");
}
public IIcon getPlain() {
@@ -10,13 +10,14 @@
******************************************************************************/
package forestry.arboriculture.tiles;
import forestry.api.arboriculture.TreeManager;
import forestry.api.genetics.AlleleManager;
import forestry.arboriculture.genetics.TreeHelper;
import forestry.core.network.GuiId;
import forestry.core.tiles.TileNaturalistChest;
public class TileArboristChest extends TileNaturalistChest {
public TileArboristChest() {
super(TreeManager.treeRoot, GuiId.ArboristChestGUI.ordinal());
super(AlleleManager.alleleRegistry.getSpeciesRoot(TreeHelper.UID), GuiId.ArboristChestGUI.ordinal());
}
@@ -29,7 +29,6 @@ import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IFruitBearer;
import forestry.api.genetics.IFruitFamily;
import forestry.arboriculture.network.IRipeningPacketReceiver;
import forestry.arboriculture.network.PacketRipeningUpdate;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
@@ -38,7 +37,7 @@ import forestry.core.network.PacketTileStream;
import forestry.core.proxy.Proxies;
import forestry.core.render.TextureManager;
public class TileFruitPod extends TileEntity implements IFruitBearer, IStreamable, IRipeningPacketReceiver {
public class TileFruitPod extends TileEntity implements IFruitBearer, IStreamable {
private static final short MAX_MATURITY = 2;
@@ -139,7 +138,6 @@ public class TileFruitPod extends TileEntity implements IFruitBearer, IStreamabl
Proxies.net.sendNetworkPacket(new PacketRipeningUpdate(this), worldObj);
}
@Override
public void fromRipeningPacket(int newMaturity) {
if (newMaturity == maturity) {
return;
@@ -52,9 +52,8 @@ import forestry.api.lepidopterology.IButterflyNursery;
import forestry.api.lepidopterology.IButterflyRoot;
import forestry.arboriculture.genetics.Tree;
import forestry.arboriculture.genetics.TreeDefinition;
import forestry.arboriculture.genetics.alleles.AlleleFruit;
import forestry.arboriculture.network.IRipeningPacketReceiver;
import forestry.arboriculture.network.PacketRipeningUpdate;
import forestry.core.genetics.alleles.Allele;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.PacketTileStream;
@@ -64,7 +63,7 @@ import forestry.core.utils.ColourUtil;
import forestry.core.utils.GeneticsUtil;
import forestry.core.utils.Log;
public class TileLeaves extends TileTreeContainer implements IPollinatable, IFruitBearer, IButterflyNursery, IRipeningPacketReceiver {
public class TileLeaves extends TileTreeContainer implements IPollinatable, IFruitBearer, IButterflyNursery {
private int colourLeaves;
private int colourLeavesPollinated;
@@ -227,7 +226,7 @@ public class TileLeaves extends TileTreeContainer implements IPollinatable, IFru
isFruitLeaf = fruitProvider.markAsFruitLeaf(genome, worldObj, xCoord, yCoord, zCoord);
if (isFruitLeaf) {
// Hardcoded because vanilla oak trees don't show fruits.
if ((species == TreeDefinition.Oak.getGenome().getPrimary()) && (fruitProvider == AlleleFruit.fruitApple.getProvider())) {
if ((species == TreeDefinition.Oak.getGenome().getPrimary()) && (fruitProvider == Allele.fruitApple.getProvider())) {
textureIndexFruits = -1;
} else {
textureIndexFruits = fruitProvider.getIconIndex(genome, worldObj, xCoord, yCoord, zCoord, getRipeningTime(), true);
@@ -258,8 +257,7 @@ public class TileLeaves extends TileTreeContainer implements IPollinatable, IFru
return damage > tree.getResilience();
}
@Override
public boolean isPollinated() {
private boolean isPollinated() {
ITree tree = getTree();
return tree != null && !isDestroyed(tree, damage) && tree.getMate() != null;
}
@@ -447,7 +445,6 @@ public class TileLeaves extends TileTreeContainer implements IPollinatable, IFru
}
}
@Override
public void fromRipeningPacket(int newColourFruits) {
if (newColourFruits == colourFruits) {
return;
@@ -577,4 +574,5 @@ public class TileLeaves extends TileTreeContainer implements IPollinatable, IFru
ITree tree = getTree();
return !isDecorative && !isDestroyed(tree, damage) && caterpillar == null;
}
}
@@ -13,7 +13,6 @@ package forestry.arboriculture.tiles;
import java.io.IOException;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTUtil;
import net.minecraft.network.Packet;
@@ -26,19 +25,17 @@ import forestry.api.arboriculture.ITree;
import forestry.api.arboriculture.TreeManager;
import forestry.api.genetics.IAllele;
import forestry.arboriculture.genetics.Tree;
import forestry.core.access.IOwnable;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IStreamable;
import forestry.core.network.PacketTileStream;
import forestry.core.utils.PlayerUtil;
/**
* This is the base TE class for any block that needs to contain tree genome information.
*
* @author SirSengir
*/
public abstract class TileTreeContainer extends TileEntity implements IStreamable, IOwnable {
public abstract class TileTreeContainer extends TileEntity implements IStreamable {
private ITree containedTree;
private GameProfile owner;
@@ -111,27 +108,15 @@ public abstract class TileTreeContainer extends TileEntity implements IStreamabl
return this.containedTree;
}
/* IOwnable */
@Override
/* Owner */
public GameProfile getOwner() {
return owner;
}
@Override
public void setOwner(GameProfile owner) {
this.owner = owner;
}
@Override
public boolean isOwned() {
return owner != null;
}
@Override
public boolean isOwner(EntityPlayer player) {
return player != null && PlayerUtil.isSameGameProfile(player.getGameProfile(), owner);
}
/* UPDATING */
/**
@@ -11,14 +11,13 @@
package forestry.arboriculture.tiles;
import java.io.IOException;
import java.util.ArrayList;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.Packet;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import forestry.api.arboriculture.EnumWoodType;
@@ -27,7 +26,7 @@ import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IStreamable;
import forestry.core.network.PacketTileStream;
import forestry.core.tiles.TileUtil;
import forestry.core.utils.ItemStackUtil;
public class TileWood extends TileEntity implements IStreamable {
private EnumWoodType woodType;
@@ -85,33 +84,23 @@ public class TileWood extends TileEntity implements IStreamable {
}
}
public static NBTTagCompound getTagCompound(IBlockAccess world, int x, int y, int z) {
TileWood wood = getWoodTile(world, x, y, z);
NBTTagCompound nbttagcompound = new NBTTagCompound();
if (wood == null) {
return nbttagcompound;
}
EnumWoodType woodType = wood.getWoodType();
woodType.saveToCompound(nbttagcompound);
return nbttagcompound;
}
public static <T extends Block & IWoodTyped> boolean blockRemovedByPlayer(T block, World world, EntityPlayer player, int x, int y, int z) {
int meta = world.getBlockMetadata(x, y, z);
if (!world.isRemote && block.canHarvestBlock(player, meta) && !player.capabilities.isCreativeMode) {
public static TileWood getWoodTile(IBlockAccess world, int x, int y, int z) {
return TileUtil.getTile(world, x, y, z, TileWood.class);
}
TileEntity tile = world.getTileEntity(x, y, z);
if (tile instanceof TileWood) {
TileWood wood = (TileWood) tile;
public static <T extends Block & IWoodTyped> ArrayList<ItemStack> getDrops(T block, World world, int x, int y, int z) {
ArrayList<ItemStack> drops = new ArrayList<>();
TileWood wood = getWoodTile(world, x, y, z);
if (wood != null) {
ItemStack stack = new ItemStack(block);
NBTTagCompound compound = new NBTTagCompound();
wood.getWoodType().saveToCompound(compound);
stack.setTagCompound(compound);
drops.add(stack);
ItemStack stack = new ItemStack(block);
NBTTagCompound compound = new NBTTagCompound();
wood.getWoodType().saveToCompound(compound);
stack.setTagCompound(compound);
ItemStackUtil.dropItemStackAsEntity(stack, world, x, y, z);
}
}
return drops;
return world.setBlockToAir(x, y, z);
}
}
@@ -10,10 +10,6 @@
******************************************************************************/
package forestry.arboriculture.worldgen;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
import forestry.api.world.ITreeGenData;
@@ -26,38 +22,26 @@ public class WorldGenAcacia extends WorldGenTree {
@Override
public void generate(World world) {
Direction leanDirection = Direction.getRandom(world.rand);
float leanAmount = height / 4.0f;
generateTreeTrunk(world, height, girth);
List<ChunkCoordinates> treeTops = generateTreeTrunk(world, height, girth, 0, leanDirection.forgeDirection, leanAmount);
if (height > 5 && world.rand.nextBoolean()) {
Direction branchDirection = Direction.getRandomOther(world.rand, leanDirection);
List<ChunkCoordinates> treeTops2 = generateTreeTrunk(world, Math.round(height * 0.66f), girth, 0, branchDirection.forgeDirection, leanAmount);
treeTops.addAll(treeTops2);
int leafSpawn = height + 1;
float rnd = world.rand.nextFloat();
int offset = 0;
if (rnd > 0.6f) {
offset = world.rand.nextInt(girth);
} else if (rnd > 0.3) {
offset = -world.rand.nextInt(girth);
}
List<ChunkCoordinates> branchLocations = new ArrayList<>();
for (ChunkCoordinates treeTop : treeTops) {
int xOffset = treeTop.posX;
int yOffset = treeTop.posY + 1;
int zOffset = treeTop.posZ;
float canopyMultiplier = (1.5f * height - yOffset + 2) / 4.0f;
int canopyThickness = Math.max(1, Math.round(yOffset / 10.0f));
generateAdjustedCylinder(world, leafSpawn--, offset, 0, 1, leaf, EnumReplaceMode.NONE);
generateAdjustedCylinder(world, leafSpawn--, offset, 1.5f, 1, leaf, EnumReplaceMode.NONE);
generateAdjustedCylinder(world, yOffset--, xOffset, zOffset, canopyMultiplier, 1, leaf, EnumReplaceMode.NONE);
float canopyWidth = world.rand.nextBoolean() ? 3.0f : 2.5f;
List<ChunkCoordinates> branches = generateBranches(world, yOffset - canopyThickness, xOffset, zOffset, 0.0f, 0.1f, Math.round(canopyMultiplier * canopyWidth - 4), 2);
branchLocations.addAll(branches);
}
for (ChunkCoordinates branchLocation : branchLocations) {
int leafSpawn = branchLocation.posY;
int canopyThickness = Math.max(1, Math.round(leafSpawn / 10.0f));
float canopyMultiplier = (1.5f * height - leafSpawn + 2) / 4.0f;
float canopyWidth = world.rand.nextBoolean() ? 1.0f : 1.5f;
generateAdjustedCylinder(world, leafSpawn - canopyThickness + 1, branchLocation.posX, branchLocation.posZ, canopyMultiplier * canopyWidth, canopyThickness, leaf, EnumReplaceMode.NONE);
if (world.rand.nextBoolean()) {
generateAdjustedCylinder(world, leafSpawn--, offset, 3.9f, 1, leaf, EnumReplaceMode.NONE);
} else {
generateAdjustedCylinder(world, leafSpawn--, offset, 2.9f, 1, leaf, EnumReplaceMode.NONE);
}
}
@@ -10,19 +10,11 @@
******************************************************************************/
package forestry.arboriculture.worldgen;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import java.util.Random;
import net.minecraft.init.Blocks;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
import com.mojang.authlib.GameProfile;
import net.minecraftforge.common.util.ForgeDirection;
import forestry.api.world.ITreeGenData;
import forestry.arboriculture.tiles.TileTreeContainer;
import forestry.core.tiles.TileUtil;
@@ -33,30 +25,6 @@ import forestry.core.worldgen.WorldGenBase;
public abstract class WorldGenArboriculture extends WorldGenBase {
enum Direction {
NORTH(ForgeDirection.NORTH),
SOUTH(ForgeDirection.SOUTH),
WEST(ForgeDirection.WEST),
EAST(ForgeDirection.EAST);
public final ForgeDirection forgeDirection;
Direction(ForgeDirection forgeDirection) {
this.forgeDirection = forgeDirection;
}
public static Direction getRandom(Random random) {
return values()[random.nextInt(values().length)];
}
public static Direction getRandomOther(Random random, Direction direction) {
EnumSet<Direction> directions = EnumSet.allOf(Direction.class);
directions.remove(direction);
int size = directions.size();
return directions.toArray(new Direction[size])[random.nextInt(size)];
}
}
private static final ITreeBlockType vineNorth = new TreeBlockType(Blocks.vine, 1);
private static final ITreeBlockType vineSouth = new TreeBlockType(Blocks.vine, 4);
private static final ITreeBlockType vineWest = new TreeBlockType(Blocks.vine, 8);
@@ -116,64 +84,27 @@ public abstract class WorldGenArboriculture extends WorldGenBase {
protected abstract ITreeBlockType getWood();
protected List<ChunkCoordinates> generateTreeTrunk(World world, int height, int girth) {
return generateTreeTrunk(world, height, girth, 0);
protected void generateTreeTrunk(World world, int height, int girth) {
generateTreeTrunk(world, height, girth, 0);
}
protected List<ChunkCoordinates> generateTreeTrunk(World world, int height, int girth, float vinesChance) {
return generateTreeTrunk(world, height, girth, vinesChance, ForgeDirection.UNKNOWN, 0);
}
protected List<ChunkCoordinates> generateTreeTrunk(World world, int height, int girth, float vinesChance, ForgeDirection leanDirection, float leanAmount) {
return generateTreeTrunk(world, height, girth, 0, vinesChance, leanDirection, leanAmount);
}
/** Returns a list of trunk top coordinates */
protected List<ChunkCoordinates> generateTreeTrunk(World world, int height, int girth, int yStart, float vinesChance, ForgeDirection leanDirection, float leanAmount) {
List<ChunkCoordinates> treeTops = new ArrayList<>();
final int leanStartY = (int) Math.floor(height * 0.33f);
int prevXOffset = 0;
int prevZOffset = 0;
protected void generateTreeTrunk(World world, int height, int girth, float vines) {
int offset = (girth - 1) / 2;
for (int x = 0; x < girth; x++) {
for (int z = 0; z < girth; z++) {
for (int y = yStart; y < height; y++) {
float lean;
if (y < leanStartY) {
lean = 0;
} else {
lean = leanAmount * (y - leanStartY) / (height - leanStartY);
}
int xOffset = (int) Math.floor(leanDirection.offsetX * lean - offset);
int zOffset = (int) Math.floor(leanDirection.offsetZ * lean - offset);
if (xOffset != prevXOffset || zOffset != prevZOffset) {
prevXOffset = xOffset;
prevZOffset = zOffset;
if (y > 0) {
wood.setDirection(leanDirection);
addWood(world, x + xOffset, y - 1, z + zOffset, EnumReplaceMode.ALL);
wood.setDirection(ForgeDirection.UP);
}
}
addWood(world, x + xOffset, y, z + zOffset, EnumReplaceMode.ALL);
addVines(world, x + xOffset, y, z + zOffset, vinesChance);
if (y + 1 == height) {
treeTops.add(new ChunkCoordinates(x + xOffset, y, z + zOffset));
}
for (int y = 0; y < height; y++) {
addWood(world, x - offset, y, z - offset, EnumReplaceMode.ALL);
addVines(world, x - offset, y, z - offset, vines);
}
}
}
if (spawnPods) {
generatePods(world, height, girth);
if (!spawnPods) {
return;
}
return treeTops;
generatePods(world, height, girth);
}
protected void generatePods(World world, int height, int girth) {
@@ -185,45 +116,32 @@ public abstract class WorldGenArboriculture extends WorldGenBase {
continue;
}
trySpawnFruitBlock(world, x + 1, y, z);
trySpawnFruitBlock(world, x - 1, y, z);
trySpawnFruitBlock(world, x, y, z + 1);
trySpawnFruitBlock(world, x, y, z - 1);
tree.trySpawnFruitBlock(world, startX + x + 1, startY + y, startZ + z);
tree.trySpawnFruitBlock(world, startX + x - 1, startY + y, startZ + z);
tree.trySpawnFruitBlock(world, startX + x, startY + y, startZ + z + 1);
tree.trySpawnFruitBlock(world, startX + x, startY + y, startZ + z - 1);
}
}
}
}
private void trySpawnFruitBlock(World world, int x, int y, int z) {
x += startX;
y += startY;
z += startZ;
if (BlockUtil.isReplaceableBlock(world, x, y, z) || world.isAirBlock(x, y, z)) {
tree.trySpawnFruitBlock(world, x, y, z);
}
}
protected void generateSupportStems(World world, int height, int girth, float chance, float maxHeight) {
int offset = (int) Math.ceil(girth / 2.0f);
int max = (int) Math.floor(girth / 2.0f) + offset;
if (girth % 2 == 0) {
max++;
}
int offset = 1;
for (int x = -offset; x < max; x++) {
for (int z = -offset; z < max; z++) {
for (int x = -offset; x < girth + offset; x++) {
for (int z = -offset; z < girth + offset; z++) {
if (x == -offset && z == -offset) {
continue;
}
if (x == max && z == max) {
if (x == girth + offset && z == girth + offset) {
continue;
}
if (x == -offset && z == max) {
if (x == -offset && z == girth + offset) {
continue;
}
if (x == max && z == -offset) {
if (x == girth + offset && z == -offset) {
continue;
}
@@ -235,63 +153,7 @@ public abstract class WorldGenArboriculture extends WorldGenBase {
}
}
}
}
protected List<ChunkCoordinates> generateBranches(World world, final int startY, int xOffset, int zOffset, float spreadY, float spreadXZ, int radius, int count) {
return generateBranches(world, startY, xOffset, zOffset, spreadY, spreadXZ, radius, count, 1.0f);
}
protected List<ChunkCoordinates> generateBranches(World world, final int startY, final int xOffset, final int zOffset, final float spreadY, final float spreadXZ, int radius, final int count, final float chance) {
List<ChunkCoordinates> branchEnds = new ArrayList<>();
if (radius < 1) {
radius = 1;
}
for (Direction cardinalDirection : Direction.values()) {
ForgeDirection branchDirection = cardinalDirection.forgeDirection;
wood.setDirection(branchDirection);
for (int i = 0; i < count; i++) {
if (world.rand.nextFloat() > chance) {
continue;
}
int y = startY;
int x = xOffset;
int z = zOffset;
for (int r = 0; r < radius; r++) {
if (world.rand.nextFloat() < spreadY) {
// make branches only spread up, not down
y++;
} else {
if (world.rand.nextFloat() < spreadXZ) {
if (branchDirection.offsetX == 0) {
if (world.rand.nextBoolean()) {
x++;
} else {
x--;
}
wood.setDirection(ForgeDirection.EAST);
} else if (branchDirection.offsetZ == 0) {
if (world.rand.nextBoolean()) {
z++;
} else {
z--;
}
wood.setDirection(ForgeDirection.SOUTH);
}
} else {
x += branchDirection.offsetX;
z += branchDirection.offsetZ;
wood.setDirection(branchDirection);
}
}
addWood(world, x, y, z, EnumReplaceMode.SOFT);
branchEnds.add(new ChunkCoordinates(x, y, z));
}
}
}
return branchEnds;
}
@Override
@@ -25,19 +25,18 @@ public class WorldGenBalsa extends WorldGenTree {
generateTreeTrunk(world, height, girth);
int leafSpawn = height;
float leafRadius = (girth - 1.0f) / 2.0f;
addLeaf(world, 0, leafSpawn--, 0, EnumReplaceMode.NONE);
generateAdjustedCylinder(world, leafSpawn--, leafRadius, 1, leaf);
generateAdjustedCylinder(world, leafSpawn--, 0, 1, leaf);
if (height > 10) {
generateAdjustedCylinder(world, leafSpawn--, leafRadius, 1, leaf);
generateAdjustedCylinder(world, leafSpawn--, 0, 1, leaf);
}
leafSpawn--;
while (leafSpawn > 6) {
generateAdjustedCylinder(world, leafSpawn, leafRadius, 1, leaf);
generateAdjustedCylinder(world, leafSpawn, 0, 1, leaf);
leafSpawn--;
}
@@ -10,9 +10,6 @@
******************************************************************************/
package forestry.arboriculture.worldgen;
import java.util.List;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
import forestry.api.world.ITreeGenData;
@@ -27,15 +24,10 @@ public class WorldGenBaobab extends WorldGenTree {
public void generate(World world) {
generateTreeTrunk(world, height - 1, girth);
List<ChunkCoordinates> branchCoords = generateBranches(world, height, 0, 0, 0, 0.5f, 4, 6);
for (ChunkCoordinates branchEnd : branchCoords) {
generateAdjustedCylinder(world, branchEnd.posY, branchEnd.posX, branchEnd.posZ, 0.0f, 2, leaf, EnumReplaceMode.NONE);
}
if (world.rand.nextFloat() < 0.3f) {
generateCylinder(world, new Vector(0, height - 1, 0), girth, 1, wood, EnumReplaceMode.SOFT);
generateCylinder(world, new Vector(0, height - 1, 0), girth, 1, wood, EnumReplaceMode.NONE);
} else if (world.rand.nextBoolean()) {
generateCylinder(world, new Vector(0, height - 1, 0), girth - 1, 1, wood, EnumReplaceMode.SOFT);
generateCylinder(world, new Vector(0, height - 1, 0), girth - 1, 1, wood, EnumReplaceMode.NONE);
}
int leafSpawn = height + 1;
@@ -10,9 +10,6 @@
******************************************************************************/
package forestry.arboriculture.worldgen;
import java.util.List;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
import forestry.api.world.ITreeGenData;
@@ -28,18 +25,12 @@ public class WorldGenCherry extends WorldGenTree {
generateTreeTrunk(world, height, girth);
int leafSpawn = height + 1;
generateAdjustedCylinder(world, leafSpawn--, 0, 1, leaf);
generateAdjustedCylinder(world, leafSpawn--, 1, 1, leaf);
int branchWidth = height / 2;
while (leafSpawn > 2) {
int leafRadius = Math.min(4, branchWidth);
List<ChunkCoordinates> branchCoords = generateBranches(world, leafSpawn, 0, 0, 0.2f, 0.5f, branchWidth, 1);
for (ChunkCoordinates branchEnd : branchCoords) {
generateAdjustedCircle(world, branchEnd.posY, branchEnd.posX, branchEnd.posZ, leafRadius, 3, 2, leaf, 1.0f, EnumReplaceMode.NONE);
}
leafSpawn -= 2;
branchWidth++;
generateAdjustedCylinder(world, leafSpawn--, 2, 1, leaf);
generateAdjustedCylinder(world, leafSpawn--, 1, 1, leaf);
}
}
@@ -10,9 +10,6 @@
******************************************************************************/
package forestry.arboriculture.worldgen;
import java.util.List;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
import forestry.api.world.ITreeGenData;
@@ -38,15 +35,7 @@ public class WorldGenChestnut extends WorldGenTree {
if (world.rand.nextBoolean()) {
generateAdjustedCylinder(world, leafSpawn--, 2f, 1, leaf);
}
int branchRadius = height / 2;
List<ChunkCoordinates> branchCoords = generateBranches(world, leafSpawn, 0, 0, 0.5f, 0.5f, branchRadius, 2);
for (ChunkCoordinates branchEnd : branchCoords) {
generateAdjustedCylinder(world, branchEnd.posY, branchEnd.posX, branchEnd.posZ, 1.0f, 2, leaf, EnumReplaceMode.NONE);
}
generateAdjustedCylinder(world, leafSpawn, 1.5f, 1, leaf);
generateAdjustedCylinder(world, leafSpawn--, 1.5f, 1, leaf);
}
@@ -10,9 +10,6 @@
******************************************************************************/
package forestry.arboriculture.worldgen;
import java.util.List;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
import forestry.api.world.ITreeGenData;
@@ -25,14 +22,11 @@ public class WorldGenCocobolo extends WorldGenTree {
@Override
public void generate(World world) {
List<ChunkCoordinates> treeTops = generateTreeTrunk(world, height, girth);
generateTreeTrunk(world, height, girth);
int leafSpawn = height;
for (ChunkCoordinates treeTop : treeTops) {
addLeaf(world, treeTop.posX, treeTop.posY + 1, treeTop.posZ, EnumReplaceMode.NONE);
}
leafSpawn--;
addLeaf(world, 0, leafSpawn--, 0, EnumReplaceMode.NONE);
generateAdjustedCylinder(world, leafSpawn--, 1, 1, leaf);
if (height > 10) {
@@ -48,12 +42,12 @@ public class WorldGenCocobolo extends WorldGenTree {
if (world.rand.nextBoolean()) {
offset = -1;
}
generateAdjustedCylinder(world, leafSpawn, offset, offset, 2, 1, leaf, EnumReplaceMode.NONE);
generateAdjustedCylinder(world, leafSpawn, offset, 2, 1, leaf, EnumReplaceMode.NONE);
} else {
if (world.rand.nextBoolean()) {
offset = -1;
}
generateAdjustedCylinder(world, leafSpawn, offset, offset, 0, 1, leaf, EnumReplaceMode.NONE);
generateAdjustedCylinder(world, leafSpawn, offset, 0, 1, leaf, EnumReplaceMode.NONE);
}
leafSpawn--;
}
@@ -0,0 +1,89 @@
/*******************************************************************************
* 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.arboriculture.worldgen;
import net.minecraft.world.World;
import forestry.api.world.ITreeGenData;
public class WorldGenCrescentia extends WorldGenTree {
public WorldGenCrescentia(ITreeGenData tree) {
super(tree, 6, 3);
}
@Override
public void generate(World world) {
generateTreeTrunk(world, height, girth);
int leafSpawn = height + 1;
generateAdjustedCylinder(world, leafSpawn--, 0, 1, leaf);
generateAdjustedCylinder(world, leafSpawn--, 0.5f, 1, leaf);
generateAdjustedCylinder(world, leafSpawn--, 1.9f, 1, leaf);
generateAdjustedCylinder(world, leafSpawn--, 1.9f, 1, leaf);
if (world.rand.nextBoolean()) {
generateAdjustedCylinder(world, leafSpawn--, 1.9f, 1, leaf);
}
generateAdjustedCylinder(world, leafSpawn--, 0.5f, 1, leaf);
}
@Override
protected void generateTreeTrunk(World world, int height, int girth) {
int offset = (girth - 1) / 2;
//Trunk generation
for (int x = 0; x < girth; x++) //offsets trunk in x direction
{
for (int z = 0; z < girth; z++) //offsets trunk in z direction
{
if (x == 0 || x == girth - 1) { //checks for edges in x direction
if (z == 0 || z == girth - 1) {//checks for corners
if (x == 0 && z == 0) {
}//xz corner
if (x == girth - 1 && z == 0) {
}//x-1z corner
if (x == 0 && z == girth - 1) {
}//xz-1 corner
if (x == girth - 1 && z == 0) {
} //x-1z-1 corner
} else { //these are the z only edges
if (x == 0) {
} else if (x == girth - 1) {
}
}
} else if (z == 0 || z == girth - 1) { //these are the x only edges
if (z == 0) {
} else if (z == girth - 1) {
}
} else { //these are center pieces
for (int i = 0; i < height; i++) { //grows trunk straight up in y direction to the correct height
addWood(world, x - offset, i, z - offset, EnumReplaceMode.ALL);
}
}
}
}
//End trunk generation
//Spawn pods
generatePods(world, height, girth);
}
}
Loaded 100 of 521 files, more files were not shown because too many files have changed in this diff. Show more