--- miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/secretdoor/Door.java 2011/06/27 16:14:34 1530 +++ miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/secretdoor/Door.java 2011/06/27 19:43:33 1534 @@ -8,49 +8,66 @@ import org.bukkit.block.Block; - class Door { + final static int EAST = 0; + final static int WEST = 1; + final static int NORTH = 2; + final static int SOUTH = 3; + Location leftUpper; - Location rightUpper; - Location leftLower; - Location rightLower; + + + Location blocks[][]; // [width][height] - [0][0] == leftUpper int material; + + int direction; + + int width; + int height; + - public Door(Block sign) { + public Door(Block sign, int width, int height, DoorStorage store) throws ConflictingDoorException{ leftUpper = sign.getLocation().clone(); - rightUpper = sign.getLocation().clone(); + + this.width = width; + this.height = height; + + blocks = new Location[width][height]; + direction = sign.getData() - 2; + switch ( sign.getData() ) { case 2: //facing east leftUpper.setZ( leftUpper.getZ() + 1 ); - rightUpper.setZ( rightUpper.getZ() + 1 ); - rightUpper.setX( rightUpper.getX() - 1 ); break; case 3: //facing west leftUpper.setZ( leftUpper.getZ() - 1 ); - rightUpper.setZ( rightUpper.getZ() - 1 ); - rightUpper.setX( rightUpper.getX() + 1 ); break; case 4: //facing north leftUpper.setX( leftUpper.getX() + 1); - rightUpper.setX( rightUpper.getX() + 1); - rightUpper.setZ( rightUpper.getZ() + 1); break; case 5: //facing south leftUpper.setX( leftUpper.getX() - 1); - rightUpper.setX( rightUpper.getX() - 1); - rightUpper.setZ( rightUpper.getZ() - 1); break; } - material = sign.getWorld().getBlockAt( leftUpper ).getTypeId(); - - leftLower = leftUpper.clone(); - rightLower = rightUpper.clone(); + + + material = leftUpper.getBlock().getTypeId(); + + loadBlocks(); + + + for (int w=0; w map) { - map.put(leftUpper, this ); - map.put(rightUpper, this ); - map.put(leftLower, this ); - map.put(rightLower, this ); + for (int w=0; w map) { - map.remove(leftUpper); - map.remove(rightUpper); - map.remove(leftLower); - map.remove(rightLower); + for (int w=0; w