/[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

revision 1533 by torben, Mon Jun 27 19:34:03 2011 UTC revision 1579 by torben, Sat Jul 16 11:16:09 2011 UTC
# Line 14  class Door { Line 14  class Door {
14          final static int NORTH = 2;          final static int NORTH = 2;
15          final static int SOUTH = 3;          final static int SOUTH = 3;
16                    
17          Location leftUpper;          private Location leftUpper;
18    
19                    
20          Location blocks[][]; // [width][height] - [0][0] == leftUpper          private Location blocks[][]; // [width][height] - [0][0] == leftUpper
21    
22          int material;          private int material;
23                    
24          int direction;          private int direction;
25                    
26          int width;          private int width;
27          int height;          private int height;
28    
29            private String owner;
30                    
31    
32          public Door(Block sign, int width, int height) {          public Door(Block sign, int width, int height, DoorStorage store, String owner) throws ConflictingDoorException{
33                  leftUpper = sign.getLocation().clone();                  leftUpper = sign.getLocation().clone();
34                                    
35                  this.width = width;                  this.width = width;
36                  this.height = height;                  this.height = height;
37    
38                    this.owner = owner;
39                                    
40                  blocks = new Location[width][height];                            blocks = new Location[width][height];          
41    
# Line 57  class Door { Line 61  class Door {
61                  material = leftUpper.getBlock().getTypeId();                  material = leftUpper.getBlock().getTypeId();
62                                    
63                  loadBlocks();                  loadBlocks();
64                    
65            
66                    for (int w=0; w<width; w++) {
67                            for (int h=0; h<height; h++) {
68                                    Door d = store.findDoor( blocks[w][h] );
69                                    if (d != null) {
70                                            throw new ConflictingDoorException();
71                                    }
72                            }
73                    }
74    
75          }          }
76    
# Line 71  class Door { Line 85  class Door {
85                                    
86                  width = Integer.parseInt( parts[6] );                  width = Integer.parseInt( parts[6] );
87                  height = Integer.parseInt( parts[7] );                  height = Integer.parseInt( parts[7] );
88                    owner = parts[8];
89    
90    
91                    blocks = new Location[width][height];          
92                                    
93                  loadBlocks();                  loadBlocks();
94          }          }
95    
96            public void powerChange(World world, int oldCurrent, int newCurrent ) {
97                    if (newCurrent != 0 && isPowered() == true) {
98                            open();
99                    } else {
100                            close();
101                    }      
102            }
103    
104            public boolean isPowered() {
105                    for (int w=0; w<width; w++) {
106                            for (int h=0; h<height; h++) {
107                                    if (blocks[w][h].getBlock().isBlockIndirectlyPowered() == true)
108                                            return true;
109                            }
110                    }
111                            
112                    return false;
113            }
114                    
115          private void loadBlocks() {          private void loadBlocks() {
116                                    
# Line 123  class Door { Line 160  class Door {
160                                    
161                  sb.append( ":" + width );                  sb.append( ":" + width );
162                  sb.append( ":" + height );                  sb.append( ":" + height );
163                    sb.append( ":" + owner);
164    
165                  return sb.toString();                  return sb.toString();
166          }          }
# Line 145  class Door { Line 183  class Door {
183    
184          }          }
185    
186          public void open(World world) {          public void open() {
187                  for (int w=0; w<width; w++) {                  for (int w=0; w<width; w++) {
188                          for (int h=0; h<height; h++) {                                                    for (int h=0; h<height; h++) {                          
189                                  blocks[w][h].getBlock().setTypeId(0);                                  blocks[w][h].getBlock().setTypeId(0, false);
190                          }                          }
191                  }                  }
192    
193          }          }
194    
195          public void close(World world) {          public void close() {
196                  for (int w=0; w<width; w++) {                  for (int w=0; w<width; w++) {
197                          for (int h=0; h<height; h++) {                                                    for (int h=0; h<height; h++) {                          
198                                  blocks[w][h].getBlock().setTypeId( material );                                  blocks[w][h].getBlock().setTypeId( material );
# Line 162  class Door { Line 200  class Door {
200                  }                  }
201          }          }
202    
 }  
203    
204            /////// setters and getters
205            public String getOwner() {
206                    return owner;
207            }
208    
209    }

Legend:
Removed from v.1533  
changed lines
  Added in v.1579

  ViewVC Help
Powered by ViewVC 1.1.20