craftbukkit/src/main/java/net/minecraft/server/ItemFlintAndSteel.java

77 lines
2.3 KiB
Java
Raw Normal View History

package net.minecraft.server;
2013-03-24 23:22:32 -05:00
// CraftBukkit start
import org.bukkit.craftbukkit.block.CraftBlockState;
import org.bukkit.craftbukkit.event.CraftEventFactory;
// CraftBukkit end
public class ItemFlintAndSteel extends Item {
public ItemFlintAndSteel(int i) {
super(i);
2011-01-29 22:50:29 +01:00
this.maxStackSize = 1;
this.setMaxDurability(64);
2012-07-29 02:33:13 -05:00
this.a(CreativeModeTab.i);
}
2012-07-29 02:33:13 -05:00
public boolean interactWith(ItemStack itemstack, EntityHuman entityhuman, World world, int i, int j, int k, int l, float f, float f1, float f2) {
2011-05-14 16:29:42 +02:00
int clickedX = i, clickedY = j, clickedZ = k; // CraftBukkit
2011-01-29 22:50:29 +01:00
if (l == 0) {
2011-01-29 22:50:29 +01:00
--j;
}
2011-01-29 22:50:29 +01:00
if (l == 1) {
2011-01-29 22:50:29 +01:00
++j;
}
2011-01-29 22:50:29 +01:00
if (l == 2) {
2011-01-29 22:50:29 +01:00
--k;
}
2011-01-29 22:50:29 +01:00
if (l == 3) {
2011-01-29 22:50:29 +01:00
++k;
}
2011-01-29 22:50:29 +01:00
if (l == 4) {
2011-01-29 22:50:29 +01:00
--i;
}
2011-01-29 22:50:29 +01:00
if (l == 5) {
2011-01-29 22:50:29 +01:00
++i;
}
2011-01-29 22:50:29 +01:00
if (!entityhuman.a(i, j, k, l, itemstack)) {
2011-09-15 01:23:52 +01:00
return false;
} else {
int i1 = world.getTypeId(i, j, k);
if (i1 == 0) {
2013-03-24 23:22:32 -05:00
// CraftBukkit start - Store the clicked block
if (CraftEventFactory.callBlockIgniteEvent(world, i, j, k, org.bukkit.event.block.BlockIgniteEvent.IgniteCause.FLINT_AND_STEEL, entityhuman).isCancelled()) {
2011-09-15 01:23:52 +01:00
itemstack.damage(1, entityhuman);
return false;
}
CraftBlockState blockState = CraftBlockState.getBlockState(world, i, j, k);
// CraftBukkit end
2013-03-13 17:33:27 -05:00
world.makeSound((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "fire.ignite", 1.0F, e.nextFloat() * 0.4F + 0.8F);
world.setTypeIdUpdate(i, j, k, Block.FIRE.id);
2011-09-15 01:23:52 +01:00
// CraftBukkit start
2013-03-24 23:22:32 -05:00
org.bukkit.event.block.BlockPlaceEvent placeEvent = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, clickedX, clickedY, clickedZ);
2011-09-15 01:23:52 +01:00
if (placeEvent.isCancelled() || !placeEvent.canBuild()) {
placeEvent.getBlockPlaced().setTypeIdAndData(0, (byte) 0, false);
return false;
}
// CraftBukkit end
}
2011-09-15 01:23:52 +01:00
itemstack.damage(1, entityhuman);
return true;
}
}
}