package imdutch21.oilcraft.util;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.event.entity.player.FillBucketEvent;
import net.minecraftforge.fml.common.eventhandler.Event;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import java.util.HashMap;
import java.util.Map;
/**
* Created by Bart on 14/02/2016.
*/
public class BucketHandler {
public static BucketHandler INSTANCE = new BucketHandler();
public Map<Block, Item> buckets = new HashMap<Block, Item>();
private BucketHandler() {
}
@SubscribeEvent
public void onBucketFill(FillBucketEvent event) {
ItemStack result = fillCustomBucket(event.getWorld(), event.getTarget().getBlockPos());
if (result == null)
return;
event.setFilledBucket(result);
event.setResult(Event.Result.ALLOW);
}
private ItemStack fillCustomBucket(World world, BlockPos pos) {
IBlockState blockState = world.getBlockState(pos);
Block block = blockState.getBlock();
int metadata = block.getMetaFromState(blockState);
Item bucket = buckets.get(block);
if (bucket != null && metadata == 0) {
world.setBlockToAir(pos);
return new ItemStack(bucket);
} else
return null;
}
}