Compare commits

..
12 Commits
Author SHA1 Message Date
mezz 08f16ba26d Bump version 2016-10-02 15:41:30 -07:00
mezz 9419dc82de Fix #1442 Let BeeHousings detect biome changes 2016-10-02 15:41:09 -07:00
mezz 2d1f64c5f6 Bump version 2016-07-31 17:11:05 -07:00
mezz cd9f82001c Fix #1366 Alveary in the Nether does not have Hellish temperature 2016-07-31 17:10:59 -07:00
mezz f7b8435d28 Update lang, bump version 2016-06-23 15:38:24 -07:00
mezz 013806f158 Merge remote-tracking branch 'origin/dev' into 4.2 2016-06-23 15:33:48 -07:00
Nirek-K 062b5ee75f Fix #1328 Crash when trying to pick up wheat from Moistener process slot 2016-06-23 17:30:34 -05:00
Nirek-K 56adc25fdf Fix #1330 Change resource checks to check tile for IBeeHousing 2016-06-23 15:40:41 -05:00
mezz df375b1b30 Merge remote-tracking branch 'origin/dev' into 4.2 2016-06-09 16:43:14 -07:00
Nirek-K 789da29af0 Fix #1293 Prevent nulls from passing Agricraft harvest
Update HC compat
2016-06-05 19:18:53 -05:00
Nirek-K e0df2f84a0 Fix Fabricator glass recipes 4000mb->4 blocks 2016-05-29 18:40:57 -05:00
Nirek-K 01656f13a6 Basic MFR plugin, allow farm to plant/cut rubber trees
(trying to plant sacreds is a ..bad idea)
Centrifuge raw rubber from propolis in the absense of IC2
minor bugfix for witchery sapling ferment
2016-04-28 02:47:58 -05:00
15 changed files with 119 additions and 29 deletions

No files matched your search

+1 -1
View File
@@ -2,4 +2,4 @@ mcversion=1.7.10
forgeversion=10.13.4.1566-1.7.10
version_major=4
version_minor=2
version_patch=12
version_patch=16
+1 -1
Submodule lang updated: b5ac4e0d6c...4cfdcf1595.
@@ -283,7 +283,7 @@ public class Bee extends IndividualLiving implements IBee {
}
// / Check for the sky, except if in hell
if (biome != null && !BiomeHelper.isBiomeHellish(biome)) {
if (!world.provider.hasNoSky) {
if (!housing.canBlockSeeTheSky() && !canWorkUnderground(beeModifier)) {
errorStates.add(EnumErrorCode.NO_SKY);
}
@@ -12,6 +12,7 @@ package forestry.apiculture.genetics;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
@@ -33,9 +34,17 @@ public class JubilanceRequiresResource implements IJubilanceProvider {
public boolean isJubilant(IAlleleBeeSpecies species, IBeeGenome genome, IBeeHousing housing) {
World world = housing.getWorld();
ChunkCoordinates housingCoords = housing.getCoordinates();
Block block;
TileEntity tile;
int meta;
int i = 1;
do {
block = world.getBlock(housingCoords.posX, housingCoords.posY - i, housingCoords.posZ);
meta = world.getBlockMetadata(housingCoords.posX, housingCoords.posY - i, housingCoords.posZ);
tile = world.getTileEntity(housingCoords.posX, housingCoords.posY - i, housingCoords.posZ);
i++;
} while (tile instanceof IBeeHousing);
Block block = world.getBlock(housingCoords.posX, housingCoords.posY - 1, housingCoords.posZ);
int meta = world.getBlockMetadata(housingCoords.posX, housingCoords.posY - 1, housingCoords.posZ);
return ItemStackUtil.equals(block, meta, blockRequired);
}
@@ -14,6 +14,7 @@ import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import forestry.api.core.BiomeHelper;
import net.minecraft.block.Block;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
@@ -53,7 +54,6 @@ public class AlvearyController extends RectangularMultiblockControllerBase imple
private final InventoryBeeHousing inventory;
private final IBeekeepingLogic beekeepingLogic;
private BiomeGenBase cachedBiome;
private float tempChange = 0.0f;
private float humidChange = 0.0f;
@@ -359,8 +359,11 @@ public class AlvearyController extends RectangularMultiblockControllerBase imple
@Override
public EnumTemperature getTemperature() {
IBeeModifier beeModifier = BeeManager.beeRoot.createBeeHousingModifier(this);
if (beeModifier.isHellish() && tempChange >= 0) {
return EnumTemperature.HELLISH;
BiomeGenBase biome = getBiome();
if (beeModifier.isHellish() || BiomeHelper.isBiomeHellish(biome)) {
if (tempChange >= 0) {
return EnumTemperature.HELLISH;
}
}
return EnumTemperature.getFromValue(getExactTemperature());
@@ -383,11 +386,8 @@ public class AlvearyController extends RectangularMultiblockControllerBase imple
@Override
public BiomeGenBase getBiome() {
if (cachedBiome == null) {
ChunkCoordinates coords = getReferenceCoord();
cachedBiome = worldObj.getBiomeGenForCoords(coords.posX, coords.posZ);
}
return cachedBiome;
ChunkCoordinates coords = getReferenceCoord();
return worldObj.getBiomeGenForCoords(coords.posX, coords.posZ);
}
@Override
@@ -35,7 +35,6 @@ import forestry.core.tiles.TileBase;
public abstract class TileBeeHousingBase extends TileBase implements IBeeHousing, IClimatised, IGuiBeeHousingInventory, IStreamableGui {
private final IBeekeepingLogic beeLogic;
private BiomeGenBase cachedBiome;
// CLIENT
private int breedingProgressPercent = 0;
@@ -142,10 +141,7 @@ public abstract class TileBeeHousingBase extends TileBase implements IBeeHousing
// / IBEEHOUSING
@Override
public BiomeGenBase getBiome() {
if (cachedBiome == null) {
cachedBiome = worldObj.getBiomeGenForCoordsBody(xCoord, zCoord);
}
return cachedBiome;
return worldObj.getBiomeGenForCoordsBody(xCoord, zCoord);
}
@Override
@@ -12,6 +12,7 @@ package forestry.core.genetics.mutations;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import forestry.api.apiculture.IBeeHousing;
@@ -32,13 +33,15 @@ public class MutationConditionRequiresResource implements IMutationCondition {
@Override
public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) {
Block block;
TileEntity tile;
int meta;
int i = 1;
do {
block = world.getBlock(x, y - i, z);
meta = world.getBlockMetadata(x, y - i, z);
tile = world.getTileEntity(x, y - i, z);
i++;
} while (block instanceof IBeeHousing);
} while (tile instanceof IBeeHousing);
return ItemStackUtil.equals(block, meta, blockRequired) ? 1 : 0;
}
@@ -14,6 +14,7 @@ import java.util.ArrayList;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
@@ -44,12 +45,14 @@ public class MutationConditionRequiresResourceOreDict implements IMutationCondit
public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) {
Block block;
int meta;
TileEntity tile;
int i = 1;
do {
block = world.getBlock(x, y - i, z);
meta = world.getBlockMetadata(x, y - i, z);
tile = world.getTileEntity(x, y-i, z);
i++;
} while (block instanceof IBeeHousing);
} while (tile instanceof IBeeHousing);
int[] oreIds = OreDictionary.getOreIDs(new ItemStack(block, 1, meta));
for (int oreId : oreIds) {
@@ -31,7 +31,7 @@ public class SlotWorking extends SlotForestry {
}
@Override
public boolean getHasStack() {
public boolean canTakeStack(EntityPlayer stack) {
return false;
}
@@ -12,6 +12,7 @@ package forestry.farming.logic;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
@@ -47,6 +48,7 @@ public class CropBasicAgriCraft extends Crop {
harvest.remove(0);
Proxies.common.addBlockDestroyEffects(world, pos.x, pos.y, pos.z, Blocks.melon_block, 0);
world.setBlockMetadataWithNotify(pos.x, pos.y, pos.z, 0, Constants.FLAG_BLOCK_SYNCH);
harvest.removeAll(Collections.singleton(null)); //sanatize nulls that get thru from Agricraft+Harvestcraft (sesameseed)
return harvest;
}
@@ -258,15 +258,14 @@ public class PluginFactory extends ForestryPlugin {
if (PluginManager.Module.APICULTURE.isEnabled()) {
ItemRegistryApiculture beeItems = PluginApiculture.items;
FluidStack liquidGlass = Fluids.GLASS.getFluid(Constants.BUCKET_VOLUME);
FluidStack liquidGlassX4 = Fluids.GLASS.getFluid(Constants.BUCKET_VOLUME * 4);
for (int i = 0; i < 16; i++) {
RecipeManagers.fabricatorManager.addRecipe(beeItems.waxCast.getWildcard(), liquidGlass, new ItemStack(Blocks.stained_glass, 4, 15 - i), new Object[]{
RecipeManagers.fabricatorManager.addRecipe(beeItems.waxCast.getWildcard(), liquidGlassX4, new ItemStack(Blocks.stained_glass, 4, 15 - i), new Object[]{
"#", "X",
'#', dyes[i],
'X', beeItems.propolis.getWildcard()});
}
RecipeManagers.fabricatorManager.addRecipe(beeItems.waxCast.getWildcard(), liquidGlassX4, new ItemStack(Blocks.glass, 1, 0), new Object[]{
RecipeManagers.fabricatorManager.addRecipe(beeItems.waxCast.getWildcard(), liquidGlassX4, new ItemStack(Blocks.glass, 4, 0), new Object[]{
"#", "X",
'X', beeItems.propolis.getWildcard()});
}
@@ -57,6 +57,7 @@ import forestry.plugins.compat.PluginHarvestCraft;
import forestry.plugins.compat.PluginIC2;
import forestry.plugins.compat.PluginImmersiveEngineering;
import forestry.plugins.compat.PluginMagicalCrops;
import forestry.plugins.compat.PluginMineFactoryReloaded;
import forestry.plugins.compat.PluginNatura;
import forestry.plugins.compat.PluginPlantMegaPack;
import forestry.plugins.compat.PluginRotaryCraft;
@@ -115,6 +116,7 @@ public class PluginManager {
IMMERSIVEENGINEERING(new PluginImmersiveEngineering()),
INDUSTRIALCRAFT(new PluginIC2()),
MAGICALCROPS(new PluginMagicalCrops()),
MINEFACTORYRELOADED(new PluginMineFactoryReloaded()),
NATURA(new PluginNatura()),
PLANTMEGAPACK(new PluginPlantMegaPack()),
ROTARYCRAFT(new PluginRotaryCraft()),
@@ -89,7 +89,8 @@ public class PluginHarvestCraft extends ForestryPlugin {
"persimmon",
"avocado",
"coconut",
"durian"
"durian",
"gooseberry"
);
ImmutableList<String> trees = ImmutableList.of(
@@ -112,7 +113,8 @@ public class PluginHarvestCraft extends ForestryPlugin {
ImmutableList<String> spices = ImmutableList.of(
"ginger",
"spiceleaf"
"spiceleaf",
"curryleaf"
//"mustardseed" Mustard is inconsistent and annoying.
);
@@ -149,7 +151,8 @@ public class PluginHarvestCraft extends ForestryPlugin {
"wintersquash",
"zucchini",
"bambooshoot",
"spinach"
"spinach",
"waterchestnut"
);
ImmutableList<String> grains = ImmutableList.of(
@@ -159,7 +162,8 @@ public class PluginHarvestCraft extends ForestryPlugin {
);
ImmutableList<String> cropNuts = ImmutableList.of(
"peanut"
"peanut",
"sesameseeds"
);
ImmutableList<String> nuts = ImmutableList.of(
@@ -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.plugins.compat;
import com.google.common.collect.ImmutableMap;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.registry.GameData;
import cpw.mods.fml.common.registry.GameRegistry;
import forestry.api.core.ForestryAPI;
import forestry.api.recipes.RecipeManagers;
import forestry.apiculture.items.EnumPropolis;
import forestry.apiculture.items.ItemRegistryApiculture;
import forestry.core.config.Constants;
import forestry.core.fluids.Fluids;
import forestry.core.recipes.RecipeUtil;
import forestry.core.utils.ModUtil;
import forestry.plugins.ForestryPlugin;
import forestry.plugins.Plugin;
import forestry.plugins.PluginApiculture;
import forestry.plugins.PluginManager;
@Plugin(pluginID = "MinefactoryReloaded", name = "MineFactoryReloaded", author = "Nirek", url = Constants.URL, unlocalizedDescription = "for.plugin.minefactoryreloaded.description")
public class PluginMineFactoryReloaded extends ForestryPlugin {
private static final String MFR = "MineFactoryReloaded";
@Override
public boolean isAvailable() {
return ModUtil.isModLoaded(MFR);
}
@Override
public String getFailMessage() {
return "MineFactoryReloaded not found";
}
@Override
protected void registerRecipes() {
Block rubbersapling = GameRegistry.findBlock(MFR, "rubberwood.sapling");
Item saplingItem = GameRegistry.findItem(MFR, "rubberwood.sapling");
ItemStack saplingStack = new ItemStack(saplingItem, 1, 0);
ItemStack rubberRaw = GameRegistry.findItemStack(MFR,"rubber.raw", 1);
GameRegistry.findItemStack(MFR,"rubber.raw", 1);
if (PluginManager.Module.APICULTURE.isEnabled() && !PluginManager.Module.INDUSTRIALCRAFT.isEnabled()) {
if (rubberRaw != null) {
ItemRegistryApiculture beeItems = PluginApiculture.items;
RecipeManagers.centrifugeManager.addRecipe(20, beeItems.propolis.get(EnumPropolis.NORMAL, 1), ImmutableMap.of(rubberRaw, 1.0f));
}
}
if (rubbersapling != null && rubberRaw != null) {
RecipeUtil.addFermenterRecipes(saplingStack, ForestryAPI.activeMode.getIntegerSetting("fermenter.yield.sapling"), Fluids.BIOMASS);
String saplingName = GameData.getItemRegistry().getNameForObject(saplingItem);
FMLInterModComms.sendMessage(Constants.MOD, "add-farmable-sapling", String.format("farmArboreal@%s.-1", saplingName));
}
}
}
@@ -77,7 +77,7 @@ public class PluginWitchery extends ForestryPlugin {
Item saplingItem = GameRegistry.findItem(Witch, "witchsapling");
ItemStack saplingStack = new ItemStack(saplingItem, 1, OreDictionary.WILDCARD_VALUE);
RecipeUtil.addFermenterRecipes(saplingStack, ForestryAPI.activeMode.getIntegerSetting("fermenter.yield.wheat"), Fluids.BIOMASS);
RecipeUtil.addFermenterRecipes(saplingStack, ForestryAPI.activeMode.getIntegerSetting("fermenter.yield.sapling"), Fluids.BIOMASS);
String saplingName = GameData.getItemRegistry().getNameForObject(saplingItem);
FMLInterModComms.sendMessage(Constants.MOD, "add-farmable-sapling", String.format("farmArboreal@%s.-1", saplingName));