Paper/src/main/java/net/minecraft/server/ItemDoor.java
Wesley Wolfe b00de5f176 Cleaned up CraftBukkit comments in NMS.
Added newlines at the end of files
Fixed improper line endings on some files
Matched start - end comments
Added some missing comments for diffs
Fixed syntax on some spots
Minimized some diff
Removed some no longer used files
Added comment on some required files with no changes
Fixed imports of items used once
Added imports for items used more than once
2012-07-23 23:55:31 -05:00

107 Zeilen
3.4 KiB
Java

package net.minecraft.server;
import org.bukkit.craftbukkit.block.CraftBlockState; // CraftBukkit
public class ItemDoor extends Item {
private Material a;
public ItemDoor(int i, Material material) {
super(i);
this.a = material;
this.maxStackSize = 1;
}
public boolean interactWith(ItemStack itemstack, EntityHuman entityhuman, World world, int i, int j, int k, int l) {
if (l != 1) {
return false;
} else {
++j;
Block block;
if (this.a == Material.WOOD) {
block = Block.WOODEN_DOOR;
} else {
block = Block.IRON_DOOR_BLOCK;
}
if (entityhuman.d(i, j, k) && entityhuman.d(i, j + 1, k)) {
if (!block.canPlace(world, i, j, k)) {
return false;
} else {
int i1 = MathHelper.floor((double) ((entityhuman.yaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3;
// CraftBukkit start
if (!place(world, i, j, k, i1, block, entityhuman)) {
return false;
}
// CraftBukkit end
--itemstack.count;
return true;
}
} else {
return false;
}
}
}
public static void place(World world, int i, int j, int k, int l, Block block) {
// CraftBukkit start
place(world, i, j, k, l, block, null);
}
public static boolean place(World world, int i, int j, int k, int l, Block block, EntityHuman entityhuman) {
// CraftBukkit end
byte b0 = 0;
byte b1 = 0;
if (l == 0) {
b1 = 1;
}
if (l == 1) {
b0 = -1;
}
if (l == 2) {
b1 = -1;
}
if (l == 3) {
b0 = 1;
}
int i1 = (world.e(i - b0, j, k - b1) ? 1 : 0) + (world.e(i - b0, j + 1, k - b1) ? 1 : 0);
int j1 = (world.e(i + b0, j, k + b1) ? 1 : 0) + (world.e(i + b0, j + 1, k + b1) ? 1 : 0);
boolean flag = world.getTypeId(i - b0, j, k - b1) == block.id || world.getTypeId(i - b0, j + 1, k - b1) == block.id;
boolean flag1 = world.getTypeId(i + b0, j, k + b1) == block.id || world.getTypeId(i + b0, j + 1, k + b1) == block.id;
boolean flag2 = false;
if (flag && !flag1) {
flag2 = true;
} else if (j1 > i1) {
flag2 = true;
}
CraftBlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit
world.suppressPhysics = true;
world.setTypeIdAndData(i, j, k, block.id, l);
// CraftBukkit start
if (entityhuman != null) {
org.bukkit.event.block.BlockPlaceEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, i, j, k);
if (event.isCancelled() || !event.canBuild()) {
event.getBlockPlaced().setTypeIdAndData(blockState.getTypeId(), blockState.getRawData(), false);
return false;
}
}
// CraftBukkit end
world.setTypeIdAndData(i, j + 1, k, block.id, 8 | (flag2 ? 1 : 0));
world.suppressPhysics = false;
world.applyPhysics(i, j, k, block.id);
world.applyPhysics(i, j + 1, k, block.id);
return true; // CraftBukkit
}
}