Restore compatibility with MFR, fixes #86

This commit is contained in:
samrg472 2013-10-04 20:56:20 -04:00
parent 15ea622866
commit 9cde7c5ba5
3 changed files with 4 additions and 139 deletions

View file

@ -1,23 +1,17 @@
package biomesoplenty.integration; package biomesoplenty.integration;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import powercrystals.minefactoryreloaded.api.FarmingRegistry;
import powercrystals.minefactoryreloaded.api.HarvestType;
import powercrystals.minefactoryreloaded.api.MobDrop;
import biomesoplenty.api.Biomes; import biomesoplenty.api.Biomes;
import biomesoplenty.api.BlockReferences; import biomesoplenty.api.BlockReferences;
import biomesoplenty.api.Blocks; import biomesoplenty.api.Blocks;
import biomesoplenty.api.Entities;
import biomesoplenty.api.Items; import biomesoplenty.api.Items;
import biomesoplenty.integration.minefactoryreloaded.Fertilizable; import biomesoplenty.integration.minefactoryreloaded.Fertilizable;
import biomesoplenty.integration.minefactoryreloaded.FruitLeaves; import biomesoplenty.integration.minefactoryreloaded.FruitLeaves;
import biomesoplenty.integration.minefactoryreloaded.Grindable;
import biomesoplenty.integration.minefactoryreloaded.Harvestable; import biomesoplenty.integration.minefactoryreloaded.Harvestable;
import biomesoplenty.integration.minefactoryreloaded.Plantable;
import com.google.common.base.Optional; import com.google.common.base.Optional;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import powercrystals.minefactoryreloaded.api.FarmingRegistry;
import powercrystals.minefactoryreloaded.api.HarvestType;
public class MFRIntegration public class MFRIntegration
{ {
@ -26,7 +20,6 @@ public class MFRIntegration
registerRubberTreeBiomes(); registerRubberTreeBiomes();
registerFarmables(); registerFarmables();
registerSludgeDrops(); registerSludgeDrops();
registerGrindables();
} }
private static void registerRubberTreeBiomes() private static void registerRubberTreeBiomes()
@ -77,7 +70,6 @@ public class MFRIntegration
for(Optional<? extends Block> sapling : bopSaplings) for(Optional<? extends Block> sapling : bopSaplings)
{ {
FarmingRegistry.registerPlantable(new Plantable(sapling.get().blockID, sapling.get().blockID));
FarmingRegistry.registerFertilizable(new Fertilizable(sapling.get().blockID)); FarmingRegistry.registerFertilizable(new Fertilizable(sapling.get().blockID));
} }
@ -96,23 +88,4 @@ public class MFRIntegration
FarmingRegistry.registerSludgeDrop(15, new ItemStack(Items.miscItems.get(), 4, 1)); FarmingRegistry.registerSludgeDrop(15, new ItemStack(Items.miscItems.get(), 4, 1));
FarmingRegistry.registerSludgeDrop(25, new ItemStack(Items.mudball.get(), 4)); FarmingRegistry.registerSludgeDrop(25, new ItemStack(Items.mudball.get(), 4));
} }
private static void registerGrindables()
{
FarmingRegistry.registerGrindable(new Grindable(Entities.JungleSpider, new MobDrop[]
{
new MobDrop(3, new ItemStack(Item.silk)),
new MobDrop(1, new ItemStack(Item.spiderEye))
}));
FarmingRegistry.registerGrindable(new Grindable(Entities.Rosester, new MobDrop[]
{
new MobDrop(1, new ItemStack(Item.chickenRaw)),
new MobDrop(1, new ItemStack(Item.dyePowder, 1, 1))
}));
FarmingRegistry.registerGrindable(new Grindable(Entities.Glob, new MobDrop[]
{
new MobDrop(1, new ItemStack(Item.slimeBall)),
new MobDrop(4, new ItemStack(Items.mudball.get()))
}));
}
} }

View file

@ -1,38 +0,0 @@
package biomesoplenty.integration.minefactoryreloaded;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import net.minecraft.entity.EntityLiving;
import net.minecraft.world.World;
import powercrystals.minefactoryreloaded.api.IFactoryGrindable;
import powercrystals.minefactoryreloaded.api.MobDrop;
public class Grindable implements IFactoryGrindable
{
private Class<?> grindableClass;
private List<MobDrop> drops;
public Grindable(Class<?> entityToGrind, MobDrop[] dropStacks)
{
grindableClass = entityToGrind;
drops = new ArrayList<MobDrop>();
for(MobDrop d : dropStacks)
{
drops.add(d);
}
}
@Override
public Class<?> getGrindableEntity()
{
return grindableClass;
}
@Override
public List<MobDrop> grind(World world, EntityLiving entity, Random random)
{
return drops;
}
}

View file

@ -1,70 +0,0 @@
package biomesoplenty.integration.minefactoryreloaded;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.IPlantable;
import powercrystals.minefactoryreloaded.api.IFactoryPlantable;
public class Plantable implements IFactoryPlantable
{
protected int sourceId;
protected int plantedBlockId;
public Plantable(int sourceId, int plantedBlockId)
{
if(plantedBlockId >= Block.blocksList.length)
{
throw new IllegalArgumentException("Passed an Item ID to FactoryPlantableStandard's planted block argument");
}
this.sourceId = sourceId;
this.plantedBlockId = plantedBlockId;
}
@Override
public boolean canBePlantedHere(World world, int x, int y, int z, ItemStack stack)
{
int groundId = world.getBlockId(x, y - 1, z);
if(!world.isAirBlock(x, y, z))
{
return false;
}
return
(Block.blocksList[plantedBlockId].canPlaceBlockAt(world, x, y, z) && Block.blocksList[plantedBlockId].canBlockStay(world, x, y, z)) ||
(Block.blocksList[plantedBlockId] instanceof IPlantable && Block.blocksList[groundId] != null &&
Block.blocksList[groundId].canSustainPlant(world, x, y, z, ForgeDirection.UP, ((IPlantable)Block.blocksList[plantedBlockId])));
}
@Override
public void prePlant(World world, int x, int y, int z, ItemStack stack)
{
}
@Override
public void postPlant(World world, int x, int y, int z, ItemStack stack)
{
}
@Override
public int getPlantedBlockId(World world, int x, int y, int z, ItemStack stack)
{
if(stack.itemID != sourceId)
{
return -1;
}
return plantedBlockId;
}
@Override
public int getPlantedBlockMetadata(World world, int x, int y, int z, ItemStack stack)
{
return stack.getItemDamage();
}
@Override
public int getSeedId()
{
return sourceId;
}
}