| 41 | import static gregapi.data.CS.*; |
| 42 | |
| 43 | public class CompatFR extends CompatBase implements ICompatFR, IFarmable { |
| 44 | public ItemStackSet<ItemStackContainer> mWindfalls = ST.hashset(); |
| 45 | |
| 46 | @Override |
| 47 | public void onPostLoad(FMLPostInitializationEvent aEvent) { |
| 48 | Farmables.farmables.get("farmArboreal").add(this); |
| 49 | } |
| 50 | |
| 51 | @Override |
| 52 | public void addToBackpacks(String aType, ItemStack aStack) { |
| 53 | if (MD.FR.mLoaded) try { |
| 54 | BackpackManager.definitions.get(aType).addValidItem(aStack); |
| 55 | } catch(Throwable e) { |
| 56 | e.printStackTrace(ERR); |
| 57 | } |
| 58 | } |
| 59 | |
| 60 | @Override |
| 61 | public boolean isSaplingAt(World aWorld, int aX, int aY, int aZ) { |
| 62 | return aWorld.getBlock(aX, aY, aZ) instanceof BlockBaseSapling; |
| 63 | } |
| 64 | |
| 65 | @Override |
| 66 | public ICrop getCropAt(World aWorld, int aX, int aY, int aZ) { |
| 67 | Block aBlock = aWorld.getBlock(aX, aY, aZ); |
| 68 | return aBlock.isWood(aWorld, aX, aY, aZ) ? new CropBlock(aWorld, aBlock, aWorld.getBlockMetadata(aX, aY, aZ), new Vect(aX, aY, aZ)) : null; |
| 69 | } |
| 70 | |
| 71 | @Override |
| 72 | public boolean isGermling(ItemStack aStack) { |
| 73 | return aStack.getItem() instanceof ItemBlockBase && ((ItemBlockBase)aStack.getItem()).mPlaceable instanceof BlockBaseSapling; |
| 74 | } |
| 75 | |
| 76 | @Override |
| 77 | public void addWindfall(ItemStack aStack) {mWindfalls.add(aStack);} |
| 78 | |
| 79 | @Override |
| 80 | public boolean isWindfall(ItemStack aStack) { |
| 81 | return mWindfalls.contains(aStack, T); |
| 82 | } |
| 83 | |
| 84 | @Override |
| 85 | public boolean plantSaplingAt(EntityPlayer aPlayer, ItemStack aSeed, World aWorld, int aX, int aY, int aZ) { |
| 86 | return aSeed.copy().tryPlaceItemIntoWorld(aPlayer, aWorld, aX, aY - 1, aZ, SIDE_UP, 0, 0, 0); |
| 87 | } |
| 88 | } |