register dispenser behaviors in DispenserBlock.getBehaviorForItem(...)

This commit is contained in:
DeadlyMC committed 2019-09-15 21:22:50 +05:30
1 parent 8d97b5bf01
commit d985aa1059
3 files changed
+25 -22

No files matched your search

@@ -0,0 +1,24 @@
package carpet.mixins;
import carpet.helpers.BlockRotator;
import net.minecraft.block.DispenserBlock;
import net.minecraft.block.dispenser.DispenserBehavior;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(DispenserBlock.class)
public abstract class DispenserBlock_cactusMixin
{
@Inject(method = "getBehaviorForItem", at = @At("HEAD"), cancellable = true)
private void registerCarpetBehaviors(ItemStack stack, CallbackInfoReturnable<DispenserBehavior> cir)
{
Item item = stack.getItem();
if (item == Items.CACTUS)
cir.setReturnValue(new BlockRotator.CactusDispenserBehaviour());
}
}