Scrapboxes work in dispensers (w/ config option)

This commit is contained in:
TheDoctorSoda 2016-03-08 00:15:34 -08:00
parent c5302f8d6b
commit 02dd024e83
5 changed files with 150 additions and 112 deletions

View file

@ -0,0 +1,30 @@
package techreborn.dispenser;
import net.minecraft.block.BlockDispenser;
import net.minecraft.dispenser.BehaviorDefaultDispenseItem;
import net.minecraft.dispenser.IBlockSource;
import net.minecraft.dispenser.IPosition;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import techreborn.api.ScrapboxList;
import techreborn.init.ModItems;
public class BehaviorDispenseScrapbox extends BehaviorDefaultDispenseItem {
@Override
protected ItemStack dispenseStack(IBlockSource source, ItemStack stack) {
int random = source.getWorld().rand.nextInt(ScrapboxList.stacks.size());
ItemStack out = ScrapboxList.stacks.get(random).copy();
float xOffset = source.getWorld().rand.nextFloat() * 0.8F + 0.1F;
float yOffset = source.getWorld().rand.nextFloat() * 0.8F + 0.1F;
float zOffset = source.getWorld().rand.nextFloat() * 0.8F + 0.1F;
stack.splitStack(1);
EnumFacing enumfacing = BlockDispenser.getFacing(source.getBlockMetadata());
IPosition iposition = BlockDispenser.getDispensePosition(source);
doDispense(source.getWorld(), out, 6, enumfacing, iposition);
return stack;
}
}