Compare commits

...
56 Commits
Author SHA1 Message Date
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
mezz b466e9ce4a Merge remote-tracking branch 'origin/dev' into 4.2 2016-04-27 19:30:56 -07:00
Nirek-K 60c9dad874 Merge pull request #1137 from ultrasn0w/dev
Update PlantMegaPack Plugin
2016-04-25 14:55:21 -05:00
ultrasn0w d734ca55e6 Update PlantMegaPack Plugin 2016-04-25 21:15:47 +02:00
Nirek-K f16f349f10 Version bump to be ahead of stable, and pull in lang fixes 2016-04-24 14:32:05 -05:00
Nirek-K 66561ac66d Fix #1129 Bugfixes for Multifarm BC Gate Triggers. 2016-04-18 17:28:37 -05:00
Nirek-K ad96e21b37 Fix eating bottles slightly better, Steve now enjoys mead in 8packs (hic). 2016-04-17 18:46:52 -05:00
Nirek-K 3967d21b06 Short mead now has a purpose, further distillation produces mead (only drinkable in bottles).
Also fix somehow eating it glass bottle and all.
2016-04-17 01:40:45 -05:00
Nirek-K 2a025254a0 Add ic2 industrial fert as farming fertilizer. (seperate config option to probably come later) 2016-04-05 16:08:00 -05:00
Nirek-K 97bfbe2213 Fix #1117 Radioactive bee effect can bypass apiarist suit 2016-04-03 11:17:30 -05:00
Nirek-K 98c56973db Fix #1123 Add lang string for Leporine Bee, Add some basic bee trades to Aparist. 2016-03-31 09:41:47 -05:00
mezz b83da5c628 Merge branch 'mc-1.7.10' into 4.2 2016-03-22 12:29:14 -07:00
mezz 4a2af4743f Fix #1117 Radioactive bee effect can bypass apiarist suit 2016-03-22 12:28:31 -07:00
mezz e90771e38a Merge branch 'dev' into 4.2 2016-03-06 10:01:54 -08:00
mezz 9c98a6a00b Bump Version 2016-03-06 10:01:23 -08:00
mezz 75a3a7b935 Fix #1093 Electrical Engine circuit board does not sync 2016-03-06 10:00:22 -08:00
mezz 99020cde7f Fix #1086 Squeezer NEI integration can't lookup multi stack recipes. 2016-02-28 23:40:57 -08:00
mezz 98e13299d6 Fix #1061 Squeezer is very "liberal" regarding oredict in Recipes 2016-02-28 23:39:55 -08:00
mezz 010fe4662a Fix #1081 FillBucketHook does not check bucket type 2016-02-28 23:18:55 -08:00
mezz 92ee6dbc0d Merge branch 'dev' into 4.2 2016-02-22 15:34:50 -08:00
mezz 98c7b3b5ed Bump version 2016-02-22 15:34:21 -08:00
Nirek-K 507b03043e Add module checks to RotaryCraft plugin 2016-02-21 19:34:34 -06:00
mezz c1e00ff395 Do not save player profile properties to nbt 2016-02-19 19:08:17 -08:00
Nirek-K 897123c883 Add missing Snow diplacable tags for plugin flowers. 2016-02-19 13:14:00 -06:00
Nirek-K 0ed33cf9a3 Increase wax cast durability to 16, Fabricator tank to 8, Add 4 to 4 Plain glass Fabrication recipe, change stamp defs to be oreDictionary. 2016-02-19 12:41:35 -06:00
Nirek-K 8ba8c0fb17 Forgot Sandstone had variants. Add variants->Fabricator. 2016-02-18 06:25:16 -06:00
Nirek-K 9c40b03751 Tank should probably be a multiple of 2, derp. 2016-02-18 06:05:42 -06:00
Nirek-K 194c0a0e77 Add Red Sand, Sandstone to Fabricator->glass, slightly increase fabricator glasstank. 2016-02-18 05:51:30 -06:00
Nirek-K 77157aa9cb Add new pinecones from BoP to squeezable for seedoil. 2016-02-12 15:16:24 -06:00
Nirek-K f4681d251c Increase seed oil yield of Harvestcraft peanuts, and tree nuts to be slightly more viable oil sources. 2016-02-12 11:00:09 -06:00
mezz 96cc1b869c Merge branch 'dev' into 4.2 2016-02-11 17:36:46 -08:00
mezz 20ca044be0 Bump version 2016-02-11 17:36:30 -08:00
mezz 6cd9f33c3f Close #1060 Close #1065 Disable Growthcraft plugin for version 2.5.0+ 2016-02-11 17:35:21 -08:00
Nirek-K 7585c6a265 Fix #1067 add module checks to BoP Plugin 2016-02-11 00:48:38 -06:00
Nirek-K 91a5084bde Further cleanup GC plugin nulls. 2016-02-10 15:29:26 -06:00
Nirek-K 0876a50be2 Add missing null check to Growthcraft plugin. 2016-02-10 08:19:40 -06:00
mezz 1941690330 Merge branch 'dev' into 4.2 2016-02-01 18:06:09 -08:00
mezz bbd39ea5c7 Fix #1053 NPE when loading with old configs 2016-02-01 18:05:51 -08:00
mezz 53f4107ee3 Merge branch 'dev' into 4.2 2016-01-28 20:38:06 -08:00
mezz 6265c01f60 Bump version 2016-01-28 20:37:46 -08:00
Nirek-K b9478e16b7 Add Orchard farmland, dirt traversal for ic2 plants. 2016-01-24 15:49:31 -06:00
Nirek-K 2cdee67624 Add Carrots equal to Apples in the squeezer(juice/mulch), potatoes at double fermenter rate of wheat (choice between pure fermenting, and seeds for seedoil) 2016-01-24 03:35:55 -06:00
Nirek-K 58fe331fe3 And missed one in HC too. 2016-01-24 03:17:37 -06:00
Nirek-K a4d5117a97 Missed a check in BoP, also fix PlantMegaPack 2016-01-24 03:05:27 -06:00
Nirek-K 32a9a6ff5c Fix #1051 Check for Farming module before adding BoP and Harvestcraft crops. 2016-01-24 02:19:15 -06:00
mezz 9f2f2ed85b Fix #1043 Crash from mods spawning wood items with wildcard metadata 2016-01-15 20:07:54 -08:00
mezz 22258c2dac Merge branch 'dev' into 4.2 2016-01-11 07:40:17 -08:00
mezz e0c1c538aa Fix ClientTickEvent crash on disconnect from server 2016-01-10 21:04:35 -08:00
mezz 825768e522 Fix naturalist's eye lag on multiplayer servers 2016-01-01 11:55:39 -08:00
44 changed files with 435 additions and 154 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=4
version_patch=14
+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
@@ -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();
}
@@ -121,7 +121,7 @@ public class ItemBlockWood extends ItemBlockForestry {
if (ordinal >= 0 && ordinal < EnumWoodType.VALUES.length) {
return EnumWoodType.VALUES[ordinal];
}
return null;
return EnumWoodType.LARCH;
}
@Override
@@ -40,16 +40,25 @@ public abstract class IconProviderWood {
@SideOnly(Side.CLIENT)
public static IIcon getPlankIcon(EnumWoodType woodType) {
if (woodType == null) {
woodType = EnumWoodType.LARCH;
}
return icons[0][woodType.ordinal()];
}
@SideOnly(Side.CLIENT)
public static IIcon getBarkIcon(EnumWoodType woodType) {
if (woodType == null) {
woodType = EnumWoodType.LARCH;
}
return icons[1][woodType.ordinal()];
}
@SideOnly(Side.CLIENT)
public static IIcon getHeartIcon(EnumWoodType woodType) {
if (woodType == null) {
woodType = EnumWoodType.LARCH;
}
return icons[2][woodType.ordinal()];
}
@@ -10,13 +10,14 @@
******************************************************************************/
package forestry.core;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.RenderGlobal;
import net.minecraft.entity.player.EntityPlayer;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
import cpw.mods.fml.common.gameevent.TickEvent.Phase;
import cpw.mods.fml.common.gameevent.TickEvent.PlayerTickEvent;
import forestry.core.proxy.Proxies;
import forestry.core.utils.GeneticsUtil;
public class TickHandlerCoreClient {
@@ -24,18 +25,30 @@ public class TickHandlerCoreClient {
private boolean hasNaturalistEye;
@SubscribeEvent
public void onPlayerTick(PlayerTickEvent event) {
public void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != Phase.END) {
return;
}
EntityPlayer player = event.player;
Minecraft minecraft = Minecraft.getMinecraft();
if (minecraft == null) {
return;
}
EntityPlayer player = minecraft.thePlayer;
if (player == null) {
return;
}
boolean hasNaturalistEye = GeneticsUtil.hasNaturalistEye(player);
if (this.hasNaturalistEye != hasNaturalistEye) {
this.hasNaturalistEye = hasNaturalistEye;
Proxies.common.getClientInstance().renderGlobal.markBlockRangeForRenderUpdate(
(int) player.posX - 32, (int) player.posY - 32, (int) player.posZ - 32,
(int) player.posX + 32, (int) player.posY + 32, (int) player.posZ + 32);
RenderGlobal renderGlobal = minecraft.renderGlobal;
if (renderGlobal != null) {
renderGlobal.markBlockRangeForRenderUpdate(
(int) player.posX - 32, (int) player.posY - 32, (int) player.posZ - 32,
(int) player.posX + 32, (int) player.posY + 32, (int) player.posZ + 32);
}
}
}
}
@@ -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);
}
}
+26 -2
View File
@@ -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<>();
@@ -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;
}
@@ -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,19 +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()) {
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.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)),
;
@@ -17,6 +17,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Random;
import java.util.Set;
@@ -213,7 +214,7 @@ public class PluginApiculture extends ForestryPlugin {
}
LocalizedConfiguration config = new LocalizedConfiguration(configFile, "2.0.0");
if (!config.getLoadedConfigVersion().equals(config.getDefinedConfigVersion())) {
if (!Objects.equals(config.getLoadedConfigVersion(), config.getDefinedConfigVersion())) {
boolean deleted = configFile.delete();
if (deleted) {
config = new LocalizedConfiguration(configFile, "2.0.0");
@@ -709,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
@@ -273,6 +276,8 @@ public class PluginFactory extends ForestryPlugin {
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Items.apple)}, Fluids.JUICE.getFluid(appleJuiceAmount),
PluginCore.items.mulch.getItemStack(), appleMulchAmount);
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Items.carrot)}, Fluids.JUICE.getFluid(appleJuiceAmount),
PluginCore.items.mulch.getItemStack(), appleMulchAmount);
int seedOilAmount = ForestryAPI.activeMode.getIntegerSetting("squeezer.liquid.seed");
FluidStack seedOil = Fluids.SEEDOIL.getFluid(seedOilAmount);
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Items.wheat_seeds)}, seedOil);
@@ -303,6 +308,7 @@ public class PluginFactory extends ForestryPlugin {
RecipeUtil.addFermenterRecipes(new ItemStack(Blocks.cactus), ForestryAPI.activeMode.getIntegerSetting("fermenter.yield.cactus"), Fluids.BIOMASS);
RecipeUtil.addFermenterRecipes(new ItemStack(Items.wheat), ForestryAPI.activeMode.getIntegerSetting("fermenter.yield.wheat"), Fluids.BIOMASS);
RecipeUtil.addFermenterRecipes(new ItemStack(Items.potato), (2 * ForestryAPI.activeMode.getIntegerSetting("fermenter.yield.wheat")), Fluids.BIOMASS);
RecipeUtil.addFermenterRecipes(new ItemStack(Items.reeds), ForestryAPI.activeMode.getIntegerSetting("fermenter.yield.cane"), Fluids.BIOMASS);
RecipeUtil.addFermenterRecipes(new ItemStack(Blocks.brown_mushroom), ForestryAPI.activeMode.getIntegerSetting("fermenter.yield.mushroom"), Fluids.BIOMASS);
RecipeUtil.addFermenterRecipes(new ItemStack(Blocks.red_mushroom), ForestryAPI.activeMode.getIntegerSetting("fermenter.yield.mushroom"), Fluids.BIOMASS);
@@ -312,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()),
@@ -39,6 +39,7 @@ import forestry.farming.logic.FarmableGenericSapling;
import forestry.plugins.ForestryPlugin;
import forestry.plugins.Plugin;
import forestry.plugins.PluginCore;
import forestry.plugins.PluginManager;
@Plugin(pluginID = "BiomesOPlenty", name = "BiomesOPlenty", author = "Nirek", url = Constants.URL, unlocalizedDescription = "for.plugin.biomesoplenty.description")
public class PluginBiomesOPlenty extends ForestryPlugin {
@@ -48,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() {
@@ -71,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() {
@@ -106,8 +116,12 @@ public class PluginBiomesOPlenty extends ForestryPlugin {
Block boPTurnip = GameRegistry.findBlock(BoP, "turnip");
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));
@@ -128,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);
}
@@ -140,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);
}
@@ -32,6 +32,7 @@ import forestry.farming.logic.FarmableGenericCrop;
import forestry.plugins.ForestryPlugin;
import forestry.plugins.Plugin;
import forestry.plugins.PluginCore;
import forestry.plugins.PluginManager;
@Plugin(pluginID = "HarvestCraft", name = "HarvestCraft", author = "Nirek", url = Constants.URL, unlocalizedDescription = "for.plugin.harvestcraft.description")
public class PluginHarvestCraft extends ForestryPlugin {
@@ -88,7 +89,8 @@ public class PluginHarvestCraft extends ForestryPlugin {
"persimmon",
"avocado",
"coconut",
"durian"
"durian",
"gooseberry"
);
ImmutableList<String> trees = ImmutableList.of(
@@ -111,7 +113,8 @@ public class PluginHarvestCraft extends ForestryPlugin {
ImmutableList<String> spices = ImmutableList.of(
"ginger",
"spiceleaf"
"spiceleaf",
"curryleaf"
//"mustardseed" Mustard is inconsistent and annoying.
);
@@ -148,7 +151,8 @@ public class PluginHarvestCraft extends ForestryPlugin {
"wintersquash",
"zucchini",
"bambooshoot",
"spinach"
"spinach",
"waterchestnut"
);
ImmutableList<String> grains = ImmutableList.of(
@@ -158,7 +162,8 @@ public class PluginHarvestCraft extends ForestryPlugin {
);
ImmutableList<String> cropNuts = ImmutableList.of(
"peanut"
"peanut",
"sesameseeds"
);
ImmutableList<String> nuts = ImmutableList.of(
@@ -201,7 +206,7 @@ public class PluginHarvestCraft extends ForestryPlugin {
if (berrySeed != null) {
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{berrySeed}, Fluids.SEEDOIL.getFluid(seedamount));
}
if (berrySeed != null && berryBlock != null) {
if (PluginManager.Module.FARMING.isEnabled() && berrySeed != null && berryBlock != null) {
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(berrySeed, berryBlock, 7));
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(berryBlock, 7));
}
@@ -219,7 +224,7 @@ public class PluginHarvestCraft extends ForestryPlugin {
if (fruitSeed != null) {
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{fruitSeed}, Fluids.SEEDOIL.getFluid(seedamount));
}
if (fruitSeed != null && fruitBlock != null) {
if (PluginManager.Module.FARMING.isEnabled() && fruitSeed != null && fruitBlock != null) {
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(fruitSeed, fruitBlock, 7));
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(fruitBlock, 7));
}
@@ -238,7 +243,7 @@ public class PluginHarvestCraft extends ForestryPlugin {
if (vegetableSeed != null) {
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{vegetableSeed}, Fluids.SEEDOIL.getFluid(seedamount));
}
if (vegetableSeed != null && vegetableBlock != null) {
if (PluginManager.Module.FARMING.isEnabled() && vegetableSeed != null && vegetableBlock != null) {
Farmables.farmables.get("farmVegetables").add(new FarmableGenericCrop(vegetableSeed, vegetableBlock, 7));
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(vegetableBlock, 7));
}
@@ -257,7 +262,7 @@ public class PluginHarvestCraft extends ForestryPlugin {
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{grainSeed}, Fluids.SEEDOIL.getFluid(seedamount));
RecipeManagers.moistenerManager.addRecipe(grainSeed, new ItemStack(Blocks.mycelium), 5000);
}
if (grainSeed != null && grainBlock != null) {
if (PluginManager.Module.FARMING.isEnabled() && grainSeed != null && grainBlock != null) {
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(grainSeed, grainBlock, 7));
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(grainBlock, 7));
}
@@ -267,7 +272,7 @@ public class PluginHarvestCraft extends ForestryPlugin {
for (String treeFruitName : treeFruits) {
ItemStack treeFruit = GameRegistry.findItemStack(HC, treeFruitName + "Item", 1);
Block treeFruitBlock = GameRegistry.findBlock(HC, "pam" + (Character.toUpperCase(treeFruitName.charAt(0)) + treeFruitName.substring(1)));
if (treeFruitBlock != null) {
if (PluginManager.Module.FARMING.isEnabled() && treeFruitBlock != null) {
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(treeFruitBlock, 2));
}
if (treeFruit != null) {
@@ -278,7 +283,7 @@ public class PluginHarvestCraft extends ForestryPlugin {
for (String treeName : trees) {
Block fruitBlock = GameRegistry.findBlock(HC, "pam" + (Character.toUpperCase(treeName.charAt(0)) + treeName.substring(1)));
if (fruitBlock != null) {
if (PluginManager.Module.FARMING.isEnabled() && fruitBlock != null) {
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(fruitBlock, 2));
}
plants.add(treeName);
@@ -286,7 +291,7 @@ public class PluginHarvestCraft extends ForestryPlugin {
for (String treeName : treesSpecial) {
Block fruitBlock = GameRegistry.findBlock(HC, "pam" + (Character.toUpperCase(treeName.charAt(0)) + treeName.substring(1)));
if (fruitBlock != null) {
if (PluginManager.Module.FARMING.isEnabled() && fruitBlock != null) {
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(fruitBlock, 2));
}
}
@@ -297,7 +302,7 @@ public class PluginHarvestCraft extends ForestryPlugin {
if (genericCropSeed != null) {
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{genericCropSeed}, Fluids.SEEDOIL.getFluid(seedamount));
}
if (genericCropSeed != null && genericCropBlock != null) {
if (PluginManager.Module.FARMING.isEnabled() && genericCropSeed != null && genericCropBlock != null) {
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(genericCropSeed, genericCropBlock, 7));
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(genericCropBlock, 7));
}
@@ -309,7 +314,7 @@ public class PluginHarvestCraft extends ForestryPlugin {
if (mustardCropSeed != null) {
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{mustardCropSeed}, Fluids.SEEDOIL.getFluid(seedamount));
}
if (mustardCropSeed != null && mustardCropBlock != null) {
if (PluginManager.Module.FARMING.isEnabled() && mustardCropSeed != null && mustardCropBlock != null) {
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(mustardCropSeed, mustardCropBlock, 7));
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(mustardCropBlock, 7));
}
@@ -331,23 +336,23 @@ public class PluginHarvestCraft extends ForestryPlugin {
if (cropnutSeed != null) {
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{cropnutSeed}, Fluids.SEEDOIL.getFluid(seedamount));
}
if (cropnutSeed != null && cropnutBlock != null) {
if (PluginManager.Module.FARMING.isEnabled() && cropnutSeed != null && cropnutBlock != null) {
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(cropnutSeed, cropnutBlock, 7));
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));
}
}
for (String nutName : nuts) {
ItemStack nut = GameRegistry.findItemStack(HC, nutName + "Item", 1);
Block nutBlock = GameRegistry.findBlock(HC, "pam" + (Character.toUpperCase(nutName.charAt(0)) + nutName.substring(1)));
if (nutBlock != null) {
if (PluginManager.Module.FARMING.isEnabled() && nutBlock != null) {
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));
}
}
}
@@ -33,6 +33,7 @@ import forestry.farming.logic.FarmableGenericCrop;
import forestry.farming.logic.FarmableStacked;
import forestry.plugins.ForestryPlugin;
import forestry.plugins.Plugin;
import forestry.plugins.PluginManager;
@Plugin(pluginID = "PlantMegaPack", name = "PlantMegaPack", author = "Nirek", url = Constants.URL, unlocalizedDescription = "for.plugin.plantmegapack.description")
public class PluginPlantMegaPack extends ForestryPlugin {
@@ -66,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"
);
@@ -365,7 +374,9 @@ public class PluginPlantMegaPack extends ForestryPlugin {
ItemStack reedStack = GameRegistry.findItemStack(PlantMP, reedLike, 1);
if (reedBlock != null && reedStack != null) {
RecipeUtil.addFermenterRecipes(reedStack, ForestryAPI.activeMode.getIntegerSetting("fermenter.yield.wheat"), Fluids.BIOMASS);
Farmables.farmables.get("farmPoales").add(new FarmableStacked(reedBlock, 14, 4));
if (PluginManager.Module.FARMING.isEnabled()) {
Farmables.farmables.get("farmPoales").add(new FarmableStacked(reedBlock, 14, 4));
}
}
}
@@ -380,8 +391,10 @@ public class PluginPlantMegaPack extends ForestryPlugin {
if (seedStack != null) {
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{seedStack}, Fluids.SEEDOIL.getFluid(seedamount));
}
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(seedStack, landCropBlock, 4));
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(landCropBlock, 4));
if (PluginManager.Module.FARMING.isEnabled()) {
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(seedStack, landCropBlock, 4));
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(landCropBlock, 4));
}
}
}
@@ -396,7 +409,7 @@ public class PluginPlantMegaPack extends ForestryPlugin {
for (Map.Entry<String, Integer> wPlant : floatingWaterPlant.entrySet()) {
Block waterPlantBlock = GameRegistry.findBlock(PlantMP, wPlant.getKey());
if (waterPlantBlock != null) {
if (PluginManager.Module.FARMING.isEnabled() && waterPlantBlock != null) {
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(waterPlantBlock, wPlant.getValue()));
}
}
@@ -412,15 +425,17 @@ public class PluginPlantMegaPack extends ForestryPlugin {
if (foodStack != null) {
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{foodStack}, Fluids.JUICE.getFluid(juiceAmount));
}
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(berryBushStack, berryBushCropBlock, berryBushCrop.getValue()));
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(berryBushCropBlock, berryBushCrop.getValue()));
if (PluginManager.Module.FARMING.isEnabled()) {
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(berryBushStack, berryBushCropBlock, berryBushCrop.getValue()));
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(berryBushCropBlock, berryBushCrop.getValue()));
}
}
}
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());
@@ -428,7 +443,9 @@ public class PluginPlantMegaPack extends ForestryPlugin {
if (plantBlock != null && plantBlock != null) {
FlowerManager.flowerRegistry.registerAcceptableFlower(plantBlock, special.getValue());
FlowerManager.flowerRegistry.registerPlantableFlower(plantBlock, 0, 0.75, special.getValue());
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(specialStack, plantBlock, 4));
if (PluginManager.Module.FARMING.isEnabled()) {
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(specialStack, plantBlock, 4));
}
}
}
@@ -440,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);
@@ -448,7 +465,7 @@ public class PluginPlantMegaPack extends ForestryPlugin {
if (plantable && flowerBlock != null) {
FlowerManager.flowerRegistry.registerPlantableFlower(flowerBlock, 0, 0.75, flowertype);
}
if (flowerStack != null && flowerBlock != null) {
if (PluginManager.Module.FARMING.isEnabled() && flowerStack != null && flowerBlock != null) {
Farmables.farmables.get("farmWheat").add(new FarmableGenericCrop(flowerStack, flowerBlock, flower.getValue()));
if (flower.getValue() < 5) {
Farmables.farmables.get("farmOrchard").add(new FarmableBasicFruit(flowerBlock, flower.getValue()));
@@ -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}]}}