36 lines
1.4 KiB
Java
36 lines
1.4 KiB
Java
package com.thebrokenrail.slightlyvanilla.dispenser;
|
|
|
|
import com.thebrokenrail.slightlyvanilla.SlightlyVanilla;
|
|
import com.thebrokenrail.slightlyvanilla.entity.SlimeballEntity;
|
|
import net.minecraft.block.dispenser.DispenserBehavior;
|
|
import net.minecraft.block.dispenser.ItemDispenserBehavior;
|
|
import net.minecraft.block.dispenser.ProjectileDispenserBehavior;
|
|
import net.minecraft.entity.projectile.ProjectileEntity;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.math.BlockPointer;
|
|
import net.minecraft.util.math.Position;
|
|
import net.minecraft.world.World;
|
|
|
|
public class SlimeballDispenserBehavior implements DispenserBehavior {
|
|
private static class Default extends ItemDispenserBehavior {
|
|
}
|
|
|
|
private static class Modified extends ProjectileDispenserBehavior {
|
|
@Override
|
|
protected ProjectileEntity createProjectile(World position, Position stack, ItemStack itemStack) {
|
|
SlimeballEntity entity = new SlimeballEntity(position, stack.getX(), stack.getY(), stack.getZ());
|
|
entity.setItem(itemStack);
|
|
return entity;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public ItemStack dispense(BlockPointer pointer, ItemStack stack) {
|
|
if (SlightlyVanilla.getConfig().throwableSlimeballs.dispenser) {
|
|
return new Modified().dispense(pointer, stack);
|
|
} else {
|
|
return new Default().dispense(pointer, stack);
|
|
}
|
|
}
|
|
}
|