/[projects]/miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/secretdoor/Door.java
ViewVC logotype

Diff of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/secretdoor/Door.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/secretdoor/Door.java revision 1580 by torben, Sun Jul 17 19:28:22 2011 UTC miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/secretdoor/Door.java revision 1708 by torben, Sun Mar 4 20:21:03 2012 UTC
# Line 2  package dk.thoerup.bukkit.hoeruputils.se Line 2  package dk.thoerup.bukkit.hoeruputils.se
2    
3  import java.util.Map;  import java.util.Map;
4    
5    import org.bukkit.Material;
6  import org.bukkit.Location;  import org.bukkit.Location;
7  import org.bukkit.Server;  import org.bukkit.Server;
8  import org.bukkit.World;  import org.bukkit.World;
# Line 18  class Door { Line 19  class Door {
19    
20                    
21          private Location blocks[][]; // [width][height] - [0][0] == leftUpper          private Location blocks[][]; // [width][height] - [0][0] == leftUpper
22            private int material[][];
23          private int material;          private byte data[][];
24                    
25          private int direction;          private int direction;
26                    
# Line 27  class Door { Line 28  class Door {
28          private int height;          private int height;
29    
30          private String owner;          private String owner;
31    
32            private boolean isPrivate;
33                    
34    
35          public Door(Block sign, int width, int height, DoorStorage store, String owner) throws ConflictingDoorException{          public Door(Block sign, int width, int height, DoorStorage store, String owner, boolean isPrivate) throws ConflictingDoorException{
36                  leftUpper = sign.getLocation().clone();                  leftUpper = sign.getLocation().clone();
37                                    
38                  this.width = width;                  this.width = width;
39                  this.height = height;                  this.height = height;
40    
41                  this.owner = owner;                  this.owner = owner;
42    
43                    this.isPrivate = isPrivate;
44                                    
                 blocks = new Location[width][height];            
45    
46                  direction = sign.getData() - 2;                  direction = sign.getData() - 2;
47                                    
# Line 58  class Door { Line 62  class Door {
62    
63                                    
64                                    
65                  material = leftUpper.getBlock().getTypeId();                  //material = leftUpper.getBlock().getTypeId();
66                                    
67                  loadBlocks();                  loadBlocks();
68                                    
# Line 74  class Door { Line 78  class Door {
78    
79          }          }
80    
81    /*
82            @Deprecated
83          public Door(String input, Server server) {          public Door(String input, Server server) {
84                  String parts[] = input.split(":");                  String parts[] = input.split(":");
85    
# Line 81  class Door { Line 87  class Door {
87    
88                  leftUpper  = new Location(w, Integer.parseInt(parts[1]),  Integer.parseInt(parts[2]),  Integer.parseInt(parts[3]) );                  leftUpper  = new Location(w, Integer.parseInt(parts[1]),  Integer.parseInt(parts[2]),  Integer.parseInt(parts[3]) );
89                  direction = Integer.parseInt( parts[4] );                  direction = Integer.parseInt( parts[4] );
90                  material = Integer.parseInt( parts[5] );                  //material = Integer.parseInt( parts[5] );
91                                    
92                  width = Integer.parseInt( parts[6] );                  width = Integer.parseInt( parts[6] );
93                  height = Integer.parseInt( parts[7] );                  height = Integer.parseInt( parts[7] );
94                  owner = parts[8];                  owner = parts[8];
95    
   
                 blocks = new Location[width][height];            
96                                    
97                  loadBlocks();                  loadBlocks();
98            }*/
99    
100            public Door(Location loc, int direction, int width, int height, String owner, boolean isPrivate) {
101                    leftUpper = loc;
102                    this.direction = direction;
103                    this.width = width;
104                    this.height = height;
105                    this.owner = owner;
106                    this.isPrivate = isPrivate;
107    
108                    loadBlocks();
109          }          }
110    
111            
112    
113          public void powerChange(World world, int oldCurrent, int newCurrent ) {          public void powerChange(World world, int oldCurrent, int newCurrent ) {
114                  if (isPowered() == true) {                  if (isPowered() == true) {
115                          open();                          open();
# Line 115  class Door { Line 132  class Door {
132          }          }
133                    
134          private void loadBlocks() {          private void loadBlocks() {
135                    blocks = new Location[width][height];          
136                    material = new int[width][height];              
137                    data = new byte[width][height];        
138                                    
139                  for (int w=0; w<width; w++) {                  for (int w=0; w<width; w++) {
140                          for (int h=0; h<height; h++) {                          for (int h=0; h<height; h++) {
# Line 142  class Door { Line 162  class Door {
162                                  //System.out.println("Add block: " + x + ":" + y + ":" + z);                                  //System.out.println("Add block: " + x + ":" + y + ":" + z);
163                                                                    
164                                  blocks[w][h] = new Location( leftUpper.getWorld(), x, y, z);                                  blocks[w][h] = new Location( leftUpper.getWorld(), x, y, z);
165    
166                                    material[w][h] = blocks[w][h].getBlock().getTypeId();
167                                    data[w][h] = blocks[w][h].getBlock().getData();
168                                                                    
169                          }                          }
170                  }                  }
171                                    
172          }          }
173    
174          public String toCsv() {  /*      public String toCsv() {
175                  StringBuilder sb = new StringBuilder();                  StringBuilder sb = new StringBuilder();
176                  sb.append( leftUpper.getWorld().getName() );                  sb.append( leftUpper.getWorld().getName() );
177    
# Line 158  class Door { Line 181  class Door {
181                                    
182                  sb.append( ":" + direction );                  sb.append( ":" + direction );
183    
184                  sb.append( ":" + material );                  sb.append( ":" + material[0][0] );
185                                    
186                  sb.append( ":" + width );                  sb.append( ":" + width );
187                  sb.append( ":" + height );                  sb.append( ":" + height );
188                  sb.append( ":" + owner);                  sb.append( ":" + owner);
189    
190                  return sb.toString();                  return sb.toString();
191          }          }*/
192    
193    
194          public void registerMap(Map<Location,Door> map) {          public void registerMap(Map<Location,Door> map) {
# Line 188  class Door { Line 211  class Door {
211          public void open() {          public void open() {
212                  for (int w=0; w<width; w++) {                  for (int w=0; w<width; w++) {
213                          for (int h=0; h<height; h++) {                                                    for (int h=0; h<height; h++) {                          
214                                  blocks[w][h].getBlock().setTypeId(0, false);                                  //blocks[w][h].getBlock().setTypeId( 0, false);
215                                    blocks[w][h].getBlock().setType( Material.AIR );
216                          }                          }
217                  }                  }
218    
# Line 197  class Door { Line 221  class Door {
221          public void close() {          public void close() {
222                  for (int w=0; w<width; w++) {                  for (int w=0; w<width; w++) {
223                          for (int h=0; h<height; h++) {                                                    for (int h=0; h<height; h++) {                          
224                                  blocks[w][h].getBlock().setTypeId( material );                                  blocks[w][h].getBlock().setTypeIdAndData( material[w][h], data[w][h], true );
225                          }                          }
226                  }                  }
227          }          }
# Line 208  class Door { Line 232  class Door {
232                  return owner;                  return owner;
233          }          }
234    
235            public Location getLeftUpper() {
236                    return leftUpper;
237            }
238    
239            public int getWidth() {
240                    return width;
241            }
242    
243            public int getHeight() {
244                    return height;
245            }
246    
247            public int getDirection() {
248                    return direction;
249            }
250    
251            public boolean isPrivate() {
252                    return isPrivate;
253            }
254    
255  }  }

Legend:
Removed from v.1580  
changed lines
  Added in v.1708

  ViewVC Help
Powered by ViewVC 1.1.20