mirror of
https://github.com/GTNewHorizons/ForestryMC.git
synced 2026-11-15 01:24:59 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
08f16ba26d | ||
|
|
9419dc82de | ||
|
|
2d1f64c5f6 | ||
|
|
cd9f82001c | ||
|
|
f7b8435d28 | ||
|
|
013806f158 | ||
|
|
062b5ee75f | ||
|
|
56adc25fdf | ||
|
|
df375b1b30 | ||
|
|
789da29af0 | ||
|
|
e0df2f84a0 | ||
|
|
01656f13a6 | ||
|
|
b466e9ce4a | ||
|
|
60c9dad874 | ||
|
|
d734ca55e6 | ||
|
|
f16f349f10 | ||
|
|
66561ac66d | ||
|
|
ad96e21b37 | ||
|
|
3967d21b06 | ||
|
|
2a025254a0 | ||
|
|
97bfbe2213 | ||
|
|
98c56973db | ||
|
|
b83da5c628 | ||
|
|
4a2af4743f | ||
|
|
e90771e38a | ||
|
|
9c98a6a00b | ||
|
|
75a3a7b935 | ||
|
|
99020cde7f | ||
|
|
98e13299d6 | ||
|
|
010fe4662a | ||
|
|
92ee6dbc0d | ||
|
|
98c7b3b5ed | ||
|
|
507b03043e | ||
|
|
c1e00ff395 | ||
|
|
897123c883 | ||
|
|
0ed33cf9a3 | ||
|
|
8ba8c0fb17 | ||
|
|
9c40b03751 | ||
|
|
194c0a0e77 | ||
|
|
77157aa9cb | ||
|
|
f4681d251c | ||
|
|
96cc1b869c | ||
|
|
20ca044be0 | ||
|
|
6cd9f33c3f | ||
|
|
7585c6a265 | ||
|
|
91a5084bde | ||
|
|
0876a50be2 |
No files matched your search
+1
-1
@@ -2,4 +2,4 @@ mcversion=1.7.10
|
||||
forgeversion=10.13.4.1566-1.7.10
|
||||
version_major=4
|
||||
version_minor=2
|
||||
version_patch=7
|
||||
version_patch=16
|
||||
+1
-1
Submodule lang updated: cb5900228e...4cfdcf1595.
@@ -49,6 +49,7 @@ public class VillageHandlerApiculture implements IVillageCreationHandler, IVilla
|
||||
@Override
|
||||
public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) {
|
||||
ItemStack wildcardPrincess = new ItemStack(PluginApiculture.items.beePrincessGE, 1, OreDictionary.WILDCARD_VALUE);
|
||||
ItemStack wildcardDrone = new ItemStack(PluginApiculture.items.beeDroneGE, 4, OreDictionary.WILDCARD_VALUE);
|
||||
recipeList.add(new MerchantRecipe(wildcardPrincess, new ItemStack(Items.emerald, 1)));
|
||||
|
||||
ItemStack randomComb = PluginApiculture.items.beeComb.getRandomComb(1, random, false);
|
||||
@@ -62,6 +63,23 @@ public class VillageHandlerApiculture implements IVillageCreationHandler, IVilla
|
||||
|
||||
ItemStack monasticDrone = BeeDefinition.MONASTIC.getMemberStack(EnumBeeType.DRONE);
|
||||
recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald, 12), wildcardPrincess, monasticDrone));
|
||||
|
||||
ItemStack endDrone = BeeDefinition.ENDED.getMemberStack(EnumBeeType.DRONE);
|
||||
recipeList.add(new MerchantRecipe(new ItemStack(Items.ender_eye, 16), wildcardPrincess, endDrone));
|
||||
|
||||
ItemStack propolis = new ItemStack(PluginApiculture.items.propolis,1);
|
||||
ItemStack forestDrone = BeeDefinition.FOREST.getMemberStack(EnumBeeType.DRONE);
|
||||
ItemStack meadowsDrone = BeeDefinition.MEADOWS.getMemberStack(EnumBeeType.DRONE);
|
||||
ItemStack modestDrone = BeeDefinition.MODEST.getMemberStack(EnumBeeType.DRONE);
|
||||
ItemStack tropicalDrone = BeeDefinition.TROPICAL.getMemberStack(EnumBeeType.DRONE);
|
||||
ItemStack wintryDrone = BeeDefinition.WINTRY.getMemberStack(EnumBeeType.DRONE);
|
||||
ItemStack marshyDrone = BeeDefinition.MARSHY.getMemberStack(EnumBeeType.DRONE);
|
||||
recipeList.add(new MerchantRecipe(propolis, wildcardDrone, forestDrone));
|
||||
recipeList.add(new MerchantRecipe(propolis, wildcardDrone, meadowsDrone));
|
||||
recipeList.add(new MerchantRecipe(propolis, wildcardDrone, modestDrone));
|
||||
recipeList.add(new MerchantRecipe(propolis, wildcardDrone, tropicalDrone));
|
||||
recipeList.add(new MerchantRecipe(propolis, wildcardDrone, wintryDrone));
|
||||
recipeList.add(new MerchantRecipe(propolis, wildcardDrone, marshyDrone));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ public class AlleleEffectRadioactive extends AlleleEffectThrottled {
|
||||
|
||||
// Entities are not attacked if they wear a full set of apiarist's armor.
|
||||
int count = BeeManager.armorApiaristHelper.wearsItems(entity, getUID(), true);
|
||||
damage -= count;
|
||||
damage -= (count * 2);
|
||||
if (damage <= 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ public class ItemWaxCast extends ItemForestry implements ICraftingPlan {
|
||||
public ItemWaxCast() {
|
||||
super(Tabs.tabApiculture);
|
||||
setMaxStackSize(1);
|
||||
setMaxDamage(10);
|
||||
setMaxDamage(16);
|
||||
setNoRepair();
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -176,6 +176,7 @@ public final class AccessHandler implements IAccessHandler {
|
||||
if (this.owner != null) {
|
||||
NBTTagCompound nbt = new NBTTagCompound();
|
||||
NBTUtil.func_152460_a(nbt, owner);
|
||||
nbt.removeTag("Properties");
|
||||
data.setTag("owner", nbt);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,7 +211,31 @@ public enum Fluids {
|
||||
@Override
|
||||
public EnumSet<EnumContainerType> getContainerTypes() {
|
||||
return EnumSet.of(
|
||||
EnumContainerType.BUCKET
|
||||
EnumContainerType.BUCKET,
|
||||
EnumContainerType.CAN,
|
||||
EnumContainerType.CAPSULE,
|
||||
EnumContainerType.REFRACTORY
|
||||
);
|
||||
}
|
||||
},
|
||||
MEAD("Mead", new Color(202, 102, 0), 1000, 1200) {
|
||||
@Override
|
||||
public String getTag() {
|
||||
return "mead";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block makeBlock() {
|
||||
return new BlockForestryFluid(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<EnumContainerType> getContainerTypes() {
|
||||
return EnumSet.of(
|
||||
EnumContainerType.BUCKET,
|
||||
EnumContainerType.CAN,
|
||||
EnumContainerType.CAPSULE,
|
||||
EnumContainerType.REFRACTORY
|
||||
);
|
||||
}
|
||||
},
|
||||
@@ -260,7 +284,7 @@ public enum Fluids {
|
||||
CREOSOTE(new Color(0x635c03)),
|
||||
STEAM(new Color(0x91938F));
|
||||
|
||||
public static final Fluids[] forestryFluids = {ETHANOL, BIOMASS, GLASS, HONEY, LEGACY_HONEY, ICE, JUICE, MILK, SEEDOIL, SHORT_MEAD};
|
||||
public static final Fluids[] forestryFluids = {ETHANOL, BIOMASS, GLASS, HONEY, LEGACY_HONEY, ICE, JUICE, MILK, SEEDOIL, SHORT_MEAD, MEAD};
|
||||
|
||||
private static final Map<String, Fluids> tagToFluid = new HashMap<>();
|
||||
|
||||
|
||||
+4
-1
@@ -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;
|
||||
}
|
||||
|
||||
+4
-1
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -61,6 +61,7 @@ public abstract class MultiblockTileEntityForestry<T extends IMultiblockLogic> e
|
||||
if (this.owner != null) {
|
||||
NBTTagCompound nbt = new NBTTagCompound();
|
||||
NBTUtil.func_152460_a(nbt, owner);
|
||||
nbt.removeTag("Properties");
|
||||
data.setTag("owner", nbt);
|
||||
}
|
||||
|
||||
|
||||
@@ -407,6 +407,22 @@ public abstract class InventoryUtil {
|
||||
return ((float) amount / (float) stackMax) >= percent;
|
||||
}
|
||||
|
||||
public static boolean containsAmount(IInventory inventory, int amount) {
|
||||
int total = 0;
|
||||
int slot1 = 0;
|
||||
int length = inventory.getSizeInventory();
|
||||
for (ItemStack itemStack : getStacks(inventory, slot1, length)) {
|
||||
if (itemStack == null) {
|
||||
continue;
|
||||
}
|
||||
total += itemStack.stackSize;
|
||||
if (total >= amount) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isEmpty(IInventory inventory, int slotStart, int slotCount) {
|
||||
for (int i = slotStart; i < slotStart + slotCount; i++) {
|
||||
if (inventory.getStackInSlot(i) != null) {
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
******************************************************************************/
|
||||
package forestry.energy.gui;
|
||||
|
||||
import forestry.core.network.packets.PacketGuiUpdate;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.ICrafting;
|
||||
|
||||
@@ -36,13 +37,9 @@ public class ContainerEngineElectric extends ContainerSocketed<TileEngineElectri
|
||||
@Override
|
||||
public void detectAndSendChanges() {
|
||||
super.detectAndSendChanges();
|
||||
|
||||
if (tile == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (Object crafter : crafters) {
|
||||
tile.sendGUINetworkData(this, (ICrafting) crafter);
|
||||
if (tile != null) {
|
||||
PacketGuiUpdate packet = new PacketGuiUpdate(tile);
|
||||
sendPacketToCrafters(packet);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,13 +10,6 @@
|
||||
******************************************************************************/
|
||||
package forestry.energy.tiles;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
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;
|
||||
|
||||
import forestry.api.circuits.ChipsetManager;
|
||||
import forestry.api.circuits.CircuitSocketType;
|
||||
import forestry.api.circuits.ICircuitBoard;
|
||||
@@ -26,15 +19,25 @@ import forestry.core.circuits.ISocketable;
|
||||
import forestry.core.config.Constants;
|
||||
import forestry.core.errors.EnumErrorCode;
|
||||
import forestry.core.inventory.InventoryAdapter;
|
||||
import forestry.core.network.DataInputStreamForestry;
|
||||
import forestry.core.network.DataOutputStreamForestry;
|
||||
import forestry.core.network.IStreamableGui;
|
||||
import forestry.core.tiles.TemperatureState;
|
||||
import forestry.core.tiles.TileEngine;
|
||||
import forestry.energy.gui.ContainerEngineElectric;
|
||||
import forestry.energy.gui.GuiEngineElectric;
|
||||
import forestry.plugins.compat.PluginIC2;
|
||||
|
||||
import ic2.api.energy.prefab.BasicSink;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
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;
|
||||
|
||||
public class TileEngineElectric extends TileEngine implements ISocketable, IInventory {
|
||||
import java.io.IOException;
|
||||
|
||||
public class TileEngineElectric extends TileEngine implements ISocketable, IInventory, IStreamableGui {
|
||||
protected static class EuConfig {
|
||||
|
||||
public int euForCycle;
|
||||
@@ -92,6 +95,32 @@ public class TileEngineElectric extends TileEngine implements ISocketable, IInve
|
||||
sockets.writeToNBT(nbttagcompound);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeGuiData(DataOutputStreamForestry data) throws IOException {
|
||||
data.writeVarInt(currentOutput);
|
||||
data.writeVarInt(heat);
|
||||
sockets.writeData(data);
|
||||
energyManager.writeData(data);
|
||||
final boolean hasIc2EnergySink = (ic2EnergySink != null);
|
||||
data.writeBoolean(hasIc2EnergySink);
|
||||
if (hasIc2EnergySink) {
|
||||
data.writeVarInt((int) ic2EnergySink.getEnergyStored());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readGuiData(DataInputStreamForestry data) throws IOException {
|
||||
currentOutput = data.readVarInt();
|
||||
heat = data.readVarInt();
|
||||
sockets.readData(data);
|
||||
energyManager.readData(data);
|
||||
final boolean hasIc2EnergySink = data.readBoolean();
|
||||
if (hasIc2EnergySink) {
|
||||
final int energyStored = data.readVarInt();
|
||||
ic2EnergySink.setEnergyStored(energyStored);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChunkUnload() {
|
||||
if (ic2EnergySink != null) {
|
||||
@@ -219,35 +248,12 @@ public class TileEngineElectric extends TileEngine implements ISocketable, IInve
|
||||
// / SMP GUI
|
||||
@Override
|
||||
public void getGUINetworkData(int i, int j) {
|
||||
|
||||
switch (i) {
|
||||
|
||||
case 0:
|
||||
currentOutput = j;
|
||||
break;
|
||||
case 1:
|
||||
energyManager.fromGuiInt(j);
|
||||
break;
|
||||
case 2:
|
||||
heat = j;
|
||||
break;
|
||||
case 3:
|
||||
if (ic2EnergySink != null) {
|
||||
ic2EnergySink.setEnergyStored(j);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// handled by IStreamableGui
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendGUINetworkData(Container containerEngine, ICrafting iCrafting) {
|
||||
iCrafting.sendProgressBarUpdate(containerEngine, 0, currentOutput);
|
||||
iCrafting.sendProgressBarUpdate(containerEngine, 1, energyManager.toGuiInt());
|
||||
iCrafting.sendProgressBarUpdate(containerEngine, 2, heat);
|
||||
if (ic2EnergySink != null) {
|
||||
iCrafting.sendProgressBarUpdate(containerEngine, 3, (short) ic2EnergySink.getEnergyStored());
|
||||
}
|
||||
// handled by IStreamableGui
|
||||
}
|
||||
|
||||
// / ENERGY CONFIG CHANGE
|
||||
|
||||
@@ -70,17 +70,21 @@ public class SqueezerRecipeManager implements ISqueezerManager {
|
||||
}
|
||||
}
|
||||
|
||||
// First try to match a specific recipe (without OreDictionary)
|
||||
for (ISqueezerRecipe recipe : recipes) {
|
||||
if (ItemStackUtil.containsSets(recipe.getResources(), items, false, false) > 0) {
|
||||
return recipe;
|
||||
}
|
||||
}
|
||||
|
||||
// If that fails - try again with OreDictionary support enabled
|
||||
return null;
|
||||
}
|
||||
|
||||
public static ISqueezerRecipe findRecipeWithIngredient(ItemStack ingredient) {
|
||||
for (ISqueezerRecipe recipe : recipes) {
|
||||
if (ItemStackUtil.containsSets(recipe.getResources(), items, true, false) > 0) {
|
||||
return recipe;
|
||||
for (ItemStack recipeIngredient : recipe.getResources()) {
|
||||
if (ItemStackUtil.isCraftingEquivalent(recipeIngredient, ingredient, false, false)) {
|
||||
return recipe;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -246,11 +246,9 @@ public class NEIHandlerSqueezer extends RecipeHandlerBase {
|
||||
return;
|
||||
}
|
||||
|
||||
ISqueezerRecipe recipe = SqueezerRecipeManager.findMatchingRecipe(new ItemStack[]{ingred});
|
||||
ISqueezerRecipe recipe = SqueezerRecipeManager.findRecipeWithIngredient(ingred);
|
||||
if (recipe != null) {
|
||||
CachedSqueezerRecipe crecipe = new CachedSqueezerRecipe(recipe);
|
||||
// Override recipe to show the right input in case it's OD
|
||||
crecipe.setIngredients(new ItemStack[]{ingred});
|
||||
this.arecipes.add(crecipe);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ public class TileFabricator extends TilePowered implements ISlotPickupWatcher, I
|
||||
setEnergyPerWorkCycle(200);
|
||||
craftingInventory = new InventoryGhostCrafting<>(this, InventoryGhostCrafting.SLOT_CRAFTING_COUNT);
|
||||
setInternalInventory(new InventoryFabricator(this));
|
||||
moltenTank = new FilteredTank(2 * Constants.BUCKET_VOLUME, Fluids.GLASS.getFluid());
|
||||
moltenTank = new FilteredTank(8 * Constants.BUCKET_VOLUME, Fluids.GLASS.getFluid());
|
||||
moltenTank.tankMode = StandardTank.TankMode.INTERNAL;
|
||||
tankManager = new TankManager(this, moltenTank);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,22 +51,25 @@ public class FarmLogicOrchard extends FarmLogic {
|
||||
public FarmLogicOrchard(IFarmHousing housing) {
|
||||
super(housing);
|
||||
this.farmables = Farmables.farmables.get("farmOrchard");
|
||||
|
||||
ImmutableList.Builder<Block> traversalBlocksBuilder = ImmutableList.builder();
|
||||
if (PluginManager.Module.AGRICRAFT.isEnabled() || PluginManager.Module.INDUSTRIALCRAFT.isEnabled()) {
|
||||
traversalBlocksBuilder.add(Blocks.farmland);
|
||||
}
|
||||
if (PluginManager.Module.GROWTHCRAFT.isEnabled()) {
|
||||
if (PluginManager.Module.INDUSTRIALCRAFT.isEnabled()) {
|
||||
traversalBlocksBuilder.add(Blocks.dirt);
|
||||
}
|
||||
if (PluginManager.Module.PLANTMEGAPACK.isEnabled()) {
|
||||
traversalBlocksBuilder.add(Blocks.water);
|
||||
}
|
||||
|
||||
{
|
||||
Block grapeVine = GameRegistry.findBlock("Growthcraft|Grapes", "grc.grapeVine1");
|
||||
if (grapeVine != null) {
|
||||
traversalBlocksBuilder.add(grapeVine);
|
||||
}
|
||||
}
|
||||
if (PluginManager.Module.INDUSTRIALCRAFT.isEnabled()) {
|
||||
traversalBlocksBuilder.add(Blocks.dirt);
|
||||
}
|
||||
if (PluginManager.Module.PLANTMEGAPACK.isEnabled()) {
|
||||
traversalBlocksBuilder.add(Blocks.water);
|
||||
}
|
||||
|
||||
traversalBlocksBuilder.build();
|
||||
this.traversalBlocks = traversalBlocksBuilder.build();
|
||||
}
|
||||
|
||||
@@ -31,6 +31,9 @@ import forestry.core.utils.InventoryUtil;
|
||||
import forestry.core.utils.PlayerUtil;
|
||||
import forestry.core.utils.SlotUtil;
|
||||
import forestry.plugins.PluginCore;
|
||||
import forestry.plugins.PluginManager;
|
||||
|
||||
import ic2.api.item.IC2Items;
|
||||
|
||||
public class InventoryFarm extends InventoryAdapterRestricted implements IFarmInventory {
|
||||
public static final int SLOT_RESOURCES_1 = 0;
|
||||
@@ -132,8 +135,14 @@ public class InventoryFarm extends InventoryAdapterRestricted implements IFarmIn
|
||||
if (itemstack == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Item item = itemstack.getItem();
|
||||
if (PluginManager.Module.INDUSTRIALCRAFT.isEnabled()) {
|
||||
Item ic2fert = IC2Items.getItem("fertilizer").getItem();
|
||||
if (ic2fert == item) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return PluginCore.items.fertilizerCompound == item;
|
||||
}
|
||||
|
||||
|
||||
@@ -44,6 +44,6 @@ public class TriggerLowFertilizer extends Trigger {
|
||||
|
||||
TileFarmHatch tileHatch = (TileFarmHatch) tile;
|
||||
IInventory fertilizerInventory = tileHatch.getMultiblockLogic().getController().getFarmInventory().getFertilizerInventory();
|
||||
return InventoryUtil.containsPercent(fertilizerInventory, threshold);
|
||||
return !InventoryUtil.containsPercent(fertilizerInventory, threshold);
|
||||
}
|
||||
}
|
||||
@@ -47,6 +47,6 @@ public class TriggerLowGermlings extends Trigger {
|
||||
|
||||
TileFarmHatch tileHatch = (TileFarmHatch) tile;
|
||||
IInventory germlingsInventory = tileHatch.getMultiblockLogic().getController().getFarmInventory().getGermlingsInventory();
|
||||
return InventoryUtil.containsPercent(germlingsInventory, threshold);
|
||||
return !InventoryUtil.containsPercent(germlingsInventory, threshold);
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,7 @@ import forestry.farming.tiles.TileFarmHatch;
|
||||
|
||||
import buildcraft.api.statements.IStatementContainer;
|
||||
import buildcraft.api.statements.IStatementParameter;
|
||||
import buildcraft.api.statements.StatementParameterItemStack;
|
||||
|
||||
public class TriggerLowSoil extends Trigger {
|
||||
|
||||
@@ -49,6 +50,11 @@ public class TriggerLowSoil extends Trigger {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IStatementParameter createParameter(int index) {
|
||||
return new StatementParameterItemStack();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if the tile given in parameter activates the trigger, given
|
||||
* the parameters.
|
||||
@@ -67,14 +73,14 @@ public class TriggerLowSoil extends Trigger {
|
||||
TileFarmHatch tileHatch = (TileFarmHatch) tile;
|
||||
IFarmController farmController = tileHatch.getMultiblockLogic().getController();
|
||||
IFarmInventory farmInventory = farmController.getFarmInventory();
|
||||
IInventory resourcesInventory = farmInventory.getResourcesInventory();
|
||||
|
||||
if (parameter == null || parameter.getItemStack() == null) {
|
||||
IInventory resourcesInventory = farmInventory.getResourcesInventory();
|
||||
return InventoryUtil.containsPercent(resourcesInventory, threshold);
|
||||
return !InventoryUtil.containsAmount(resourcesInventory, threshold);
|
||||
} else {
|
||||
ItemStack filter = parameter.getItemStack().copy();
|
||||
filter.stackSize = threshold;
|
||||
return farmInventory.hasResources(new ItemStack[]{filter});
|
||||
return !InventoryUtil.contains(resourcesInventory, new ItemStack[]{filter});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -22,8 +22,8 @@ import forestry.core.render.TextureManager;
|
||||
|
||||
public enum EnumBeverage implements ItemBeverage.IBeverageInfo {
|
||||
MEAD_SHORT("meadShort", "glass", new Color(0xec9a19), new Color(0xffffff), 1, 0.2f, true),
|
||||
MEAD_CURATIVE("meadCurative", "glass", new Color(0xc5feff), new Color(0xffffff), 1, 0.2f, true);
|
||||
|
||||
MEAD_CURATIVE("meadCurative", "glass", new Color(0xc5feff), new Color(0xffffff), 1, 0.2f, true),
|
||||
MEAD("mead", "glass", new Color(0xcc6600), new Color(0xffffff), 10, 0.1f, true);
|
||||
public static final EnumBeverage[] VALUES = values();
|
||||
|
||||
private final String name;
|
||||
|
||||
@@ -15,6 +15,7 @@ import java.util.List;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.EnumAction;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -49,7 +50,7 @@ public class ItemBeverage extends ItemForestryFood {
|
||||
|
||||
public ItemBeverage() {
|
||||
super(1, 0.2f);
|
||||
setMaxStackSize(1);
|
||||
setMaxStackSize(8);
|
||||
this.beverages = EnumBeverage.VALUES;
|
||||
}
|
||||
|
||||
@@ -64,11 +65,18 @@ public class ItemBeverage extends ItemForestryFood {
|
||||
@Override
|
||||
public ItemStack onEaten(ItemStack itemstack, World world, EntityPlayer entityplayer) {
|
||||
List<IBeverageEffect> effects = BeverageEffect.loadEffects(itemstack);
|
||||
ItemStack container = new ItemStack(Items.glass_bottle, 1);
|
||||
|
||||
itemstack.stackSize--;
|
||||
if (!entityplayer.inventory.addItemStackToInventory(container)) {
|
||||
entityplayer.dropPlayerItemWithRandomChoice(container, false);
|
||||
} else {
|
||||
entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, container);
|
||||
}
|
||||
entityplayer.inventory.markDirty();
|
||||
|
||||
entityplayer.getFoodStats().func_151686_a(this, itemstack);
|
||||
world.playSoundAtEntity(entityplayer, "random.burp", 0.5F, world.rand.nextFloat() * 0.1F + 0.9F);
|
||||
|
||||
if (world.isRemote) {
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
@@ -21,12 +21,12 @@ import forestry.core.items.ItemOverlay;
|
||||
import forestry.plugins.PluginCore;
|
||||
|
||||
public enum EnumStampDefinition implements ItemOverlay.IOverlayInfo {
|
||||
P_1("1n", EnumPostage.P_1, PluginCore.items.apatite, new Color(0x4a8ca7), new Color(0xffffff)),
|
||||
P_1("1n", EnumPostage.P_1, "gemApatite", new Color(0x4a8ca7), new Color(0xffffff)),
|
||||
P_2("2n", EnumPostage.P_2, "ingotCopper", new Color(0xe8c814), new Color(0xffffff)),
|
||||
P_5("5n", EnumPostage.P_5, "ingotTin", new Color(0x9c0707), new Color(0xffffff)),
|
||||
P_10("10n", EnumPostage.P_10, Items.gold_ingot, new Color(0x7bd1b8), new Color(0xffffff)),
|
||||
P_20("20n", EnumPostage.P_20, Items.diamond, new Color(0xff9031), new Color(0xfff7dd)),
|
||||
P_50("50n", EnumPostage.P_50, Items.emerald, new Color(0x6431d7), new Color(0xfff7dd)),
|
||||
P_10("10n", EnumPostage.P_10, "ingotGold", new Color(0x7bd1b8), new Color(0xffffff)),
|
||||
P_20("20n", EnumPostage.P_20, "gemDiamond", new Color(0xff9031), new Color(0xfff7dd)),
|
||||
P_50("50n", EnumPostage.P_50, "gemEmerald", new Color(0x6431d7), new Color(0xfff7dd)),
|
||||
P_100("100n", EnumPostage.P_100, Items.nether_star, new Color(0xd731ba), new Color(0xfff7dd)),
|
||||
// P_200("200n", EnumPostage.P_200, Items.nether_star, new Color(0xcd9831), new Color(0xfff7dd)),
|
||||
;
|
||||
|
||||
@@ -710,6 +710,8 @@ public class PluginApiculture extends ForestryPlugin {
|
||||
|
||||
// / FERMENTER
|
||||
RecipeManagers.fermenterManager.addRecipe(items.honeydew.getItemStack(), 500, 1.0f, Fluids.SHORT_MEAD.getFluid(1), Fluids.HONEY.getFluid(1));
|
||||
// / STILL
|
||||
RecipeManagers.stillManager.addRecipe(Constants.STILL_DESTILLATION_DURATION, Fluids.SHORT_MEAD.getFluid(10), Fluids.MEAD.getFluid(5));
|
||||
}
|
||||
|
||||
// ANALYZER
|
||||
|
||||
@@ -258,13 +258,16 @@ 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, 4, 0), new Object[]{
|
||||
"#", "X",
|
||||
'X', beeItems.propolis.getWildcard()});
|
||||
}
|
||||
|
||||
// / SQUEEZER
|
||||
@@ -315,6 +318,10 @@ public class PluginFactory extends ForestryPlugin {
|
||||
RecipeManagers.fabricatorSmeltingManager.addSmelting(new ItemStack(Blocks.glass), Fluids.GLASS.getFluid(1000), 1000);
|
||||
RecipeManagers.fabricatorSmeltingManager.addSmelting(new ItemStack(Blocks.glass_pane), Fluids.GLASS.getFluid(375), 1000);
|
||||
RecipeManagers.fabricatorSmeltingManager.addSmelting(new ItemStack(Blocks.sand), Fluids.GLASS.getFluid(1000), 3000);
|
||||
RecipeManagers.fabricatorSmeltingManager.addSmelting(new ItemStack(Blocks.sand,1,1), Fluids.GLASS.getFluid(1000), 3000);
|
||||
RecipeManagers.fabricatorSmeltingManager.addSmelting(new ItemStack(Blocks.sandstone), Fluids.GLASS.getFluid(4000), 4800);
|
||||
RecipeManagers.fabricatorSmeltingManager.addSmelting(new ItemStack(Blocks.sandstone,1,1), Fluids.GLASS.getFluid(4000), 4800);
|
||||
RecipeManagers.fabricatorSmeltingManager.addSmelting(new ItemStack(Blocks.sandstone,1,2), Fluids.GLASS.getFluid(4000), 4800);
|
||||
|
||||
// / CARPENTER
|
||||
RecipeManagers.carpenterManager.addRecipe(50, Fluids.SEEDOIL.getFluid(250), null, PluginCore.items.impregnatedCasing.getItemStack(),
|
||||
|
||||
@@ -14,6 +14,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -175,6 +176,11 @@ public class PluginFluids extends ForestryPlugin {
|
||||
public static class FillBucketHook {
|
||||
@SubscribeEvent
|
||||
public void fillBucket(FillBucketEvent event) {
|
||||
ItemStack bucket = event.current;
|
||||
if (bucket == null || bucket.getItem() != Items.bucket) {
|
||||
return;
|
||||
}
|
||||
|
||||
MovingObjectPosition movingObjectPosition = event.target;
|
||||
int x = movingObjectPosition.blockX;
|
||||
int y = movingObjectPosition.blockY;
|
||||
|
||||
@@ -50,6 +50,7 @@ public class PluginFood extends ForestryPlugin {
|
||||
super.preInit();
|
||||
|
||||
LiquidRegistryHelper.registerLiquidContainer(Fluids.SHORT_MEAD, Constants.BUCKET_VOLUME, items.beverage.get(EnumBeverage.MEAD_SHORT, 1), new ItemStack(Items.glass_bottle));
|
||||
LiquidRegistryHelper.registerLiquidContainer(Fluids.MEAD, Constants.BUCKET_VOLUME, items.beverage.get(EnumBeverage.MEAD, 1), new ItemStack(Items.glass_bottle));
|
||||
|
||||
ItemRegistryApiculture beeItems = PluginApiculture.items;
|
||||
if (beeItems != null) {
|
||||
|
||||
@@ -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()),
|
||||
|
||||
@@ -49,7 +49,9 @@ public class PluginBiomesOPlenty extends ForestryPlugin {
|
||||
private static Block saplings;
|
||||
private static Block colorizedSaplings;
|
||||
private static Item food;
|
||||
private static Item misc;
|
||||
private static ItemStack persimmon;
|
||||
private static int amount;
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
@@ -72,16 +74,23 @@ public class PluginBiomesOPlenty extends ForestryPlugin {
|
||||
persimmon = new ItemStack(food, 1, 8);
|
||||
}
|
||||
|
||||
addFlowers();
|
||||
addFarmCrops();
|
||||
if (PluginManager.Module.APICULTURE.isEnabled()) {
|
||||
addFlowers();
|
||||
}
|
||||
if (PluginManager.Module.FARMING.isEnabled()) {
|
||||
addFarmCrops();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerRecipes() {
|
||||
super.registerRecipes();
|
||||
|
||||
addFermenterRecipes();
|
||||
addSqueezerRecipes();
|
||||
amount = ForestryAPI.activeMode.getIntegerSetting("squeezer.liquid.seed");
|
||||
if (PluginManager.Module.FACTORY.isEnabled()) {
|
||||
addFermenterRecipes();
|
||||
addSqueezerRecipes();
|
||||
}
|
||||
}
|
||||
|
||||
private static void addFarmCrops() {
|
||||
@@ -100,15 +109,19 @@ public class PluginBiomesOPlenty extends ForestryPlugin {
|
||||
FMLInterModComms.sendMessage(Constants.MOD, "add-farmable-sapling", String.format("farmArboreal@%s.-1", saplingName));
|
||||
}
|
||||
|
||||
if (PluginManager.Module.FARMING.isEnabled() && saplings != null && persimmon != null) {
|
||||
if (saplings != null && persimmon != null) {
|
||||
Farmables.farmables.get("farmArboreal").add(new FarmableGenericSapling(saplings, 15, persimmon));
|
||||
}
|
||||
|
||||
Block boPTurnip = GameRegistry.findBlock(BoP, "turnip");
|
||||
if (PluginManager.Module.FARMING.isEnabled() && boPTurnip != null) {
|
||||
if (boPTurnip != null) {
|
||||
Item boPTurnipSeeds = GameRegistry.findItem(BoP, "turnipSeeds");
|
||||
ItemStack boPTurnipSeedStack = new ItemStack(boPTurnipSeeds, 1, 0);
|
||||
if (boPTurnipSeeds != null) {
|
||||
Farmables.farmables.get("farmVegetables").add(new FarmableGenericCrop(new ItemStack(boPTurnipSeeds, 1, 0), boPTurnip, 7));
|
||||
Farmables.farmables.get("farmVegetables").add(new FarmableGenericCrop(boPTurnipSeedStack, boPTurnip, 7));
|
||||
if (PluginManager.Module.FACTORY.isEnabled()) {
|
||||
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{boPTurnipSeedStack}, Fluids.SEEDOIL.getFluid(amount));
|
||||
}
|
||||
}
|
||||
|
||||
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(boPTurnip, 7));
|
||||
@@ -129,6 +142,15 @@ public class PluginBiomesOPlenty extends ForestryPlugin {
|
||||
|
||||
private static void addSqueezerRecipes() {
|
||||
ItemStack mulch = new ItemStack(PluginCore.items.mulch);
|
||||
|
||||
misc = GameRegistry.findItem(BoP, "misc");
|
||||
if (misc != null) {
|
||||
ItemStack pinecone = new ItemStack(misc, 1, 13);
|
||||
if (pinecone != null) {
|
||||
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{pinecone}, Fluids.SEEDOIL.getFluid(3* amount));
|
||||
}
|
||||
}
|
||||
|
||||
if (food != null) {
|
||||
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(food)}, Fluids.JUICE.getFluid(50), mulch, 5);
|
||||
}
|
||||
@@ -141,22 +163,22 @@ public class PluginBiomesOPlenty extends ForestryPlugin {
|
||||
private static void addFlowers() {
|
||||
Block flowers = GameRegistry.findBlock(BoP, "flowers");
|
||||
if (flowers != null) {
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 0, 1.0, FlowerManager.FlowerTypeVanilla); //Clover
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 1, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeMushrooms); //Swampflower
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 0, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow); //Clover
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 1, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow, FlowerManager.FlowerTypeMushrooms); //Swampflower
|
||||
// FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 2, 1.0, FlowerManager.FlowerTypeNether); //Deathbloom
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 3, 1.0, FlowerManager.FlowerTypeVanilla); //GlowFlower
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 4, 1.0, FlowerManager.FlowerTypeVanilla); //Blue Hydrangea
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 5, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeJungle); //Orange Cosmos
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 6, 1.0, FlowerManager.FlowerTypeVanilla); //Pink Daffodil
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 7, 1.0, FlowerManager.FlowerTypeVanilla); //WildFlower
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 3, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow); //GlowFlower
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 4, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow); //Blue Hydrangea
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 5, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow, FlowerManager.FlowerTypeJungle); //Orange Cosmos
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 6, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow); //Pink Daffodil
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 7, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow); //WildFlower
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 8, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow); //Violet
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 9, 1.0, FlowerManager.FlowerTypeVanilla); // White Anemone
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 10, 1.0, FlowerManager.FlowerTypeVanilla); // Waterlily
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 11, 1.0, FlowerManager.FlowerTypeVanilla); //EnderLotus (does not actually spawn in the end)
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 9, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow); // White Anemone
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 10, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow); // Waterlily
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 11, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow); //EnderLotus (does not actually spawn in the end)
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 12, 1.0, FlowerManager.FlowerTypeCacti); //Bromeliad
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 13, 1.0, FlowerManager.FlowerTypeNether); // EyeBulb
|
||||
// FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 14, 1.0, FlowerManager.FlowerTypeNether); // Unlisted top of the eyebulb
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 15, 1.0, FlowerManager.FlowerTypeVanilla); // Dandelion Puff
|
||||
FlowerManager.flowerRegistry.registerPlantableFlower(flowers, 15, 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow); // Dandelion Puff
|
||||
}
|
||||
|
||||
Block flowers2 = GameRegistry.findBlock(BoP, "flowers2");
|
||||
|
||||
@@ -13,6 +13,7 @@ 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.registry.GameRegistry;
|
||||
@@ -39,7 +40,7 @@ public class PluginGrowthCraft extends ForestryPlugin {
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return ModUtil.isModLoaded(GC);
|
||||
return ModUtil.isModLoaded(GC, "[1.7.10-1.0.0,1.7.10-2.5.0)");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -92,18 +93,20 @@ public class PluginGrowthCraft extends ForestryPlugin {
|
||||
Farmables.farmables.get("farmOrchard").add(new FarmableBasicGrowthCraft(riceBlock, 7, true, false)); //need to set paddyfield to 7
|
||||
}
|
||||
|
||||
ItemStack emptyComb = new ItemStack(GameRegistry.findItem("Growthcraft|Bees", "grc.honeyComb"), 1, 0);
|
||||
RecipeManagers.centrifugeManager.addRecipe(20, emptyComb, ImmutableMap.of(
|
||||
PluginCore.items.beeswax.getItemStack(), 1.0f)
|
||||
);
|
||||
|
||||
if (PluginManager.Module.APICULTURE.isEnabled()) {
|
||||
ItemStack fullComb = new ItemStack(GameRegistry.findItem("Growthcraft|Bees", "grc.honeyComb"), 1, 1);
|
||||
RecipeManagers.centrifugeManager.addRecipe(20, fullComb, ImmutableMap.of(
|
||||
PluginCore.items.beeswax.getItemStack(), 1.0f,
|
||||
PluginApiculture.items.honeyDrop.getItemStack(), 0.9f,
|
||||
PluginApiculture.items.honeydew.getItemStack(), 0.1f)
|
||||
);
|
||||
Item comb = GameRegistry.findItem("Growthcraft|Bees", "grc.honeyComb");
|
||||
if (comb != null) {
|
||||
ItemStack emptyComb = new ItemStack(comb, 1, 0);
|
||||
RecipeManagers.centrifugeManager.addRecipe(20, emptyComb, ImmutableMap.of(
|
||||
PluginCore.items.beeswax.getItemStack(), 1.0f)
|
||||
);
|
||||
ItemStack fullComb = new ItemStack(comb, 1, 1);
|
||||
RecipeManagers.centrifugeManager.addRecipe(20, fullComb, ImmutableMap.of(
|
||||
PluginCore.items.beeswax.getItemStack(), 1.0f,
|
||||
PluginApiculture.items.honeyDrop.getItemStack(), 0.9f,
|
||||
PluginApiculture.items.honeydew.getItemStack(), 0.1f)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
ItemStack bamboo = GameRegistry.findItemStack("Growthcraft|Bamboo", "grc.bamboo", 1);
|
||||
@@ -124,7 +127,7 @@ public class PluginGrowthCraft extends ForestryPlugin {
|
||||
|
||||
ItemStack grapes = GameRegistry.findItemStack("Growthcraft|Grapes", "grc.grapes", 1); //squeeze
|
||||
|
||||
if (grapes != null) {
|
||||
if (grapes.getItem() != null) {
|
||||
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{grapes}, Fluids.JUICE.getFluid(juiceAmount));
|
||||
BackpackManager.backpackItems[2].add(grapes);
|
||||
}
|
||||
|
||||
@@ -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(
|
||||
@@ -337,7 +341,7 @@ public class PluginHarvestCraft extends ForestryPlugin {
|
||||
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(cropnutBlock, 7));
|
||||
}
|
||||
if (cropnut != null) {
|
||||
RecipeManagers.squeezerManager.addRecipe(20, new ItemStack[]{cropnut}, Fluids.SEEDOIL.getFluid(3 * seedamount));
|
||||
RecipeManagers.squeezerManager.addRecipe(20, new ItemStack[]{cropnut}, Fluids.SEEDOIL.getFluid(12 * seedamount));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -348,7 +352,7 @@ public class PluginHarvestCraft extends ForestryPlugin {
|
||||
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(nutBlock, 2));
|
||||
}
|
||||
if (nut != null) {
|
||||
RecipeManagers.squeezerManager.addRecipe(20, new ItemStack[]{nut}, Fluids.SEEDOIL.getFluid(3 * seedamount));
|
||||
RecipeManagers.squeezerManager.addRecipe(20, new ItemStack[]{nut}, Fluids.SEEDOIL.getFluid(15 * seedamount));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -67,12 +67,20 @@ public class PluginPlantMegaPack extends ForestryPlugin {
|
||||
|
||||
ImmutableList<String> landCropPlant = ImmutableList.of(
|
||||
"Beet",
|
||||
"BellPepperOrange",
|
||||
"BellPepperRed",
|
||||
"BellPepperYellow",
|
||||
"Broccoli",
|
||||
"Cassava",
|
||||
"Celery",
|
||||
"Corn",
|
||||
"Cucumber",
|
||||
"Eggplant",
|
||||
"GreenBean",
|
||||
"Leek",
|
||||
"Lettuce",
|
||||
"Onion",
|
||||
"Sorrel",
|
||||
"Spinach",
|
||||
"Tomato"
|
||||
);
|
||||
@@ -424,10 +432,10 @@ public class PluginPlantMegaPack extends ForestryPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
addMetaFlower(desertPlant, FlowerManager.FlowerTypeCacti, false);
|
||||
addMetaFlower(junglePlant, FlowerManager.FlowerTypeJungle, true);
|
||||
addMetaFlower(vanillaPlant, FlowerManager.FlowerTypeVanilla, true);
|
||||
addMetaFlower(fungusPlant, FlowerManager.FlowerTypeMushrooms, true);
|
||||
addMetaFlower(desertPlant, false, FlowerManager.FlowerTypeCacti);
|
||||
addMetaFlower(junglePlant, false, FlowerManager.FlowerTypeJungle);
|
||||
addMetaFlower(vanillaPlant, true, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow);
|
||||
addMetaFlower(fungusPlant, true, FlowerManager.FlowerTypeMushrooms);
|
||||
|
||||
for (Map.Entry<String, String> special : specialCaseTwoTall.entrySet()) {
|
||||
Block plantBlock = GameRegistry.findBlock(PlantMP, special.getKey());
|
||||
@@ -449,7 +457,7 @@ public class PluginPlantMegaPack extends ForestryPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
private static void addMetaFlower(ImmutableMap<String, Integer> flowerMap, String flowertype, boolean plantable) {
|
||||
private static void addMetaFlower(ImmutableMap<String, Integer> flowerMap, boolean plantable, String... flowertype) {
|
||||
for (Map.Entry<String, Integer> flower : flowerMap.entrySet()) {
|
||||
Block flowerBlock = GameRegistry.findBlock(PlantMP, flower.getKey());
|
||||
ItemStack flowerStack = GameRegistry.findItemStack(PlantMP, flower.getKey(), 1);
|
||||
|
||||
@@ -25,6 +25,7 @@ import forestry.farming.logic.FarmableBasicFruit;
|
||||
import forestry.farming.logic.FarmableGenericCrop;
|
||||
import forestry.plugins.ForestryPlugin;
|
||||
import forestry.plugins.Plugin;
|
||||
import forestry.plugins.PluginManager;
|
||||
|
||||
@Plugin(pluginID = "RotaryCraft", name = "RotaryCraft", author = "Nirek", url = Constants.URL, unlocalizedDescription = "for.plugin.rotarycraft.description")
|
||||
public class PluginRotaryCraft extends ForestryPlugin {
|
||||
@@ -50,9 +51,13 @@ public class PluginRotaryCraft extends ForestryPlugin {
|
||||
int seedAmount = (ForestryAPI.activeMode.getIntegerSetting("squeezer.liquid.seed") / 16);
|
||||
seedAmount = Math.max(seedAmount, 1); // Produce at least 1 mb.
|
||||
if (canolaSeed != null && canolaCrop != null) {
|
||||
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{canolaSeed}, Fluids.SEEDOIL.getFluid(seedAmount));
|
||||
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(canolaSeed, canolaCrop, 9));
|
||||
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(canolaCrop, 9));
|
||||
if(PluginManager.Module.FACTORY.isEnabled()) {
|
||||
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{canolaSeed}, Fluids.SEEDOIL.getFluid(seedAmount));
|
||||
}
|
||||
if(PluginManager.Module.FARMING.isEnabled()) {
|
||||
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(canolaSeed, canolaCrop, 9));
|
||||
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(canolaCrop, 9));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -77,14 +77,14 @@ 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));
|
||||
|
||||
for (String flowerAcceptName : flowersAccept) {
|
||||
Block flowerBlock = GameRegistry.findBlock(Witch, flowerAcceptName);
|
||||
if (flowerBlock != null) {
|
||||
FlowerManager.flowerRegistry.registerAcceptableFlower(flowerBlock, FlowerManager.FlowerTypeVanilla);
|
||||
FlowerManager.flowerRegistry.registerAcceptableFlower(flowerBlock, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow);
|
||||
}
|
||||
}
|
||||
for (String cropDirectName : cropDirect) {
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 8.1 KiB |
@@ -0,0 +1 @@
|
||||
{"animation":{"width":1,"height":32,"frametime":1,"frames":[{"index":0,"time":2},{"index":1,"time":2},{"index":2,"time":2},{"index":3,"time":2},{"index":4,"time":2},{"index":5,"time":2},{"index":6,"time":2},{"index":7,"time":2},{"index":8,"time":2},{"index":9,"time":2},{"index":10,"time":2},{"index":11,"time":2},{"index":12,"time":2},{"index":13,"time":2},{"index":14,"time":2},{"index":15,"time":2},{"index":16,"time":2},{"index":17,"time":2},{"index":18,"time":2},{"index":19,"time":2},{"index":20,"time":2},{"index":21,"time":2},{"index":22,"time":2},{"index":23,"time":2},{"index":24,"time":2},{"index":25,"time":2},{"index":26,"time":2},{"index":27,"time":2},{"index":28,"time":2},{"index":29,"time":2},{"index":30,"time":2},{"index":31,"time":2}]}}
|
||||
Reference in new issue
Block a user