redpower/src/main/java/com/eloraam/redpower/compat/ItemMachineCompat.java

73 lines
2.2 KiB
Java

package com.eloraam.redpower.compat;
import com.eloraam.redpower.core.BlockExtended;
import com.eloraam.redpower.core.ItemExtended;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class ItemMachineCompat extends ItemExtended {
public ItemMachineCompat(Block block) {
super(block);
}
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float xp, float yp, float zp) {
Block bid = world.getBlock(x, y, z);
Block bl = Block.getBlockFromItem(this);
if (bid == Blocks.snow) {
side = 1;
} else if (bid != Blocks.vine && bid != Blocks.tallgrass && bid != Blocks.deadbush) {
switch(side) {
case 0:
--y;
break;
case 1:
++y;
break;
case 2:
--z;
break;
case 3:
++z;
break;
case 4:
--x;
break;
default:
++x;
}
}
if (stack.stackSize == 0) {
return false;
} else if (!player.canPlayerEdit(x, y, z, side, stack)) {
return false;
} else if (y >= world.getHeight() - 1) {
return false;
} else if (!world.canPlaceEntityOnSide(bl, x, y, z, false, side, player, stack)) {
return false;
} else {
if (world.setBlock(x, y, z, bl, this.getMetadata(stack.getItemDamage()), 3)) {
if (world.getBlock(x, y, z) == bl) {
BlockExtended bex = (BlockExtended)bl;
bex.onBlockPlacedBy(world, x, y, z, side, player, stack);
}
world.playSoundEffect(
(double)((float)x + 0.5F),
(double)((float)y + 0.5F),
(double)((float)z + 0.5F),
bl.stepSound.func_150496_b(),
(bl.stepSound.getVolume() + 1.0F) / 2.0F,
bl.stepSound.getPitch() * 0.8F
);
--stack.stackSize;
}
return true;
}
}
}