Added Pam's Harvestcraft support as well as a bit of stuff to help with ritual activation/deactivation.

This commit is contained in:
WayofTime 2014-09-23 19:28:05 -04:00
parent 5983ff4130
commit dcecd05b85
11 changed files with 316 additions and 34 deletions

View file

@ -0,0 +1,74 @@
package WayofTime.alchemicalWizardry.common.harvest;
import java.util.List;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.common.IPlantable;
import WayofTime.alchemicalWizardry.api.harvest.IHarvestHandler;
public class GenericPamSeedlessFruitHarvestHandler implements IHarvestHandler
{
public Block harvestBlock;
public int harvestMeta;
public int resetMeta;
public GenericPamSeedlessFruitHarvestHandler(String block, int harvestMeta, int resetMeta)
{
this.harvestBlock = getBlockForString(block);
this.harvestMeta = harvestMeta;
this.resetMeta = resetMeta;
}
public boolean isHarvesterValid()
{
return harvestBlock != null;
}
public static Block getBlockForString(String str)
{
String[] parts = str.split(":");
String modId = parts[0];
String name = parts[1];
return GameRegistry.findBlock(modId, name);
}
public static Item getItemForString(String str)
{
String[] parts = str.split(":");
String modId = parts[0];
String name = parts[1];
return GameRegistry.findItem(modId, name);
}
public boolean canHandleBlock(Block block)
{
return block == harvestBlock;
}
public int getHarvestMeta(Block block)
{
return harvestMeta;
}
@Override
public boolean harvestAndPlant(World world, int xCoord, int yCoord, int zCoord, Block block, int meta)
{
if(!this.canHandleBlock(block) || meta != this.getHarvestMeta(block))
{
return false;
}
world.func_147480_a(xCoord, yCoord, zCoord, true);
world.setBlock(xCoord, yCoord, zCoord, harvestBlock, resetMeta, 3);
return true;
}
}

View file

@ -33,6 +33,11 @@ public class GenericSeededHarvestHandler implements IHarvestHandler
}
}
public boolean isHarvesterValid()
{
return harvestBlock != null && harvestSeed != null;
}
public static Block getBlockForString(String str)
{
String[] parts = str.split(":");
@ -129,23 +134,6 @@ public class GenericSeededHarvestHandler implements IHarvestHandler
public IPlantable getSeedItem(Block block)
{
if(block == Blocks.wheat)
{
return (IPlantable) Items.wheat_seeds;
}
if(block == Blocks.carrots)
{
return (IPlantable) Items.carrot;
}
if(block == Blocks.potatoes)
{
return (IPlantable) Items.potato;
}
if(block == Blocks.nether_wart)
{
return (IPlantable) Items.nether_wart;
}
return null;
return harvestSeed;
}
}

View file

@ -0,0 +1,125 @@
package WayofTime.alchemicalWizardry.common.harvest;
import WayofTime.alchemicalWizardry.api.harvest.HarvestRegistry;
public class PamHarvestCompatRegistry
{
public static void registerPamHandlers()
{
registerSeededHandler("blackberry", 7);
registerSeededHandler("blueberry", 7);
registerSeededHandler("candleberry", 7);
registerSeededHandler("raspberry", 7);
registerSeededHandler("strawberry", 7);
registerSeededHandler("cactusfruit", 7);
registerSeededHandler("asparagus", 7);
registerSeededHandler("barley", 7);
registerSeededHandler("oats", 7);
registerSeededHandler("rye", 7);
registerSeededHandler("corn", 7);
registerSeededHandler("bambooshoot", 7);
registerSeededHandler("cantaloupe", 7);
registerSeededHandler("cucumber", 7);
registerSeededHandler("windersquash", 7);
registerSeededHandler("zucchini", 7);
registerSeededHandler("beat", 7);
registerSeededHandler("onion", 7);
registerSeededHandler("parsnip", 7);
registerSeededHandler("peanut", 7);
registerSeededHandler("radish", 7);
registerSeededHandler("rutabaga", 7);
registerSeededHandler("sweetpotato", 7);
registerSeededHandler("turnip", 7);
registerSeededHandler("rhubarb", 7);
registerSeededHandler("celery", 7);
registerSeededHandler("garlic", 7);
registerSeededHandler("ginger", 7);
registerSeededHandler("spiceleaf", 7);
registerSeededHandler("tealeaf", 7);
registerSeededHandler("coffeebean", 7);
registerSeededHandler("mustardseeds", 7);
registerSeededHandler("brocolli", 7);
registerSeededHandler("cauliflower", 7);
registerSeededHandler("leek", 7);
registerSeededHandler("lettuce", 7);
registerSeededHandler("scallion", 7);
registerSeededHandler("artichoke", 7);
registerSeededHandler("brusselsprout", 7);
registerSeededHandler("cabbage", 7);
registerSeededHandler("whitemushroom", 7);
registerSeededHandler("bean", 7);
registerSeededHandler("soybean", 7);
registerSeededHandler("bellpepper", 7);
registerSeededHandler("chili", 7);
registerSeededHandler("eggplant", 7);
registerSeededHandler("pamokra", 7);
registerSeededHandler("peas", 7);
registerSeededHandler("tomato", 7);
registerSeededHandler("cotton", 7);
registerSeededHandler("pineapple", 7);
registerSeededHandler("grape", 7);
registerSeededHandler("kiwi", 7);
registerSeededHandler("cranberry", 7);
registerSeededHandler("rice", 7);
registerSeededHandler("seaweed", 7);
registerFruitHandler("apple", 7, 0);
registerFruitHandler("Almond", 7, 0);
registerFruitHandler("Apricot", 7, 0);
registerFruitHandler("Avocado", 7, 0);
registerFruitHandler("Banana", 7, 0);
registerFruitHandler("Cashew", 7, 0);
registerFruitHandler("Cherry", 7, 0);
registerFruitHandler("Chestnut", 7, 0);
registerFruitHandler("Cinnamon", 7, 0);
registerFruitHandler("Coconut", 7, 0);
registerFruitHandler("Date", 7, 0);
registerFruitHandler("Dragonfruit", 7, 0);
registerFruitHandler("Durian", 7, 0);
registerFruitHandler("Fig", 7, 0);
registerFruitHandler("Grapefruit", 7, 0);
registerFruitHandler("Lemon", 7, 0);
registerFruitHandler("Lime", 7, 0);
registerFruitHandler("Maple", 7, 0);
registerFruitHandler("Mango", 7, 0);
registerFruitHandler("Nutmeg", 7, 0);
registerFruitHandler("Olive", 7, 0);
registerFruitHandler("Orange", 7, 0);
registerFruitHandler("Papaya", 7, 0);
registerFruitHandler("Paperbark", 7, 0);
registerFruitHandler("Peach", 7, 0);
registerFruitHandler("Pear", 7, 0);
registerFruitHandler("Pecan", 7, 0);
registerFruitHandler("Peppercorn", 7, 0);
registerFruitHandler("Persimmon", 7, 0);
registerFruitHandler("Pistachio", 7, 0);
registerFruitHandler("Plum", 7, 0);
registerFruitHandler("Pomegranate", 7, 0);
registerFruitHandler("Starfruit", 7, 0);
registerFruitHandler("Vanillabean", 7, 0);
registerFruitHandler("Walnut", 7, 0);
}
public static void registerSeededHandler(String name, int meta)
{
String block = "harvestcraft:pam" + name + "Crop";
String seed = "harvestcraft:" + name + "Item";
GenericSeededHarvestHandler handler = new GenericSeededHarvestHandler(block, meta, seed);
if(handler.isHarvesterValid())
{
HarvestRegistry.registerHarvestHandler(handler);
}
}
public static void registerFruitHandler(String name, int harvestMeta, int resetMeta)
{
String block = "harvestcraft:pam" + name;
GenericPamSeedlessFruitHarvestHandler handler = new GenericPamSeedlessFruitHarvestHandler(block, harvestMeta, resetMeta);
if(handler.isHarvesterValid())
{
HarvestRegistry.registerHarvestHandler(handler);
}
}
}