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

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

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

revision 1746 by torben, Sun Mar 18 11:14:51 2012 UTC revision 1747 by torben, Sun Mar 18 11:38:57 2012 UTC
# Line 3  package dk.thoerup.bukkit.hoeruputils; Line 3  package dk.thoerup.bukkit.hoeruputils;
3  import java.io.BufferedReader;  import java.io.BufferedReader;
4  import java.io.File;  import java.io.File;
5  import java.io.FileInputStream;  import java.io.FileInputStream;
 import java.io.IOException;  
6  import java.io.InputStreamReader;  import java.io.InputStreamReader;
7    
8  import org.bukkit.ChatColor;  import org.bukkit.ChatColor;
# Line 18  import org.bukkit.plugin.Plugin; Line 17  import org.bukkit.plugin.Plugin;
17  public class TemplateCommand implements CommandExecutor {  public class TemplateCommand implements CommandExecutor {
18    
19    
20          /*class Pair {          class Pair {
21                  public int id;                  public int id;
22                  public int subId;                  public int subId;
23    
# Line 27  public class TemplateCommand implements Line 26  public class TemplateCommand implements
26                          subId = s;                          subId = s;
27                  }                  }
28    
29          }*/          }
30    
31          Plugin plugin;          Plugin plugin;
32    
# Line 60  public class TemplateCommand implements Line 59  public class TemplateCommand implements
59                          return true;                          return true;
60                  }                        }      
61    
62                  int[][][] template;                  Pair[][][] template;
63    
64                  try {                  try {
65                          template = parseFile(templateFile);                          template = parseFile(templateFile);
# Line 82  public class TemplateCommand implements Line 81  public class TemplateCommand implements
81    
82    
83    
84          int[][][] parseFile(File templateFile) throws Exception {          Pair[][][] parseFile(File templateFile) throws Exception {
85    
86    
87                  int lines = 0;                  int lines = 0;
# Line 107  public class TemplateCommand implements Line 106  public class TemplateCommand implements
106                  int ysize = Integer.parseInt(dimensions[1]);                  int ysize = Integer.parseInt(dimensions[1]);
107                  int zsize = Integer.parseInt(dimensions[2]);                  int zsize = Integer.parseInt(dimensions[2]);
108    
109                  int[][][] array = new int[xsize][ysize][zsize];                  Pair[][][] array = new Pair[xsize][ysize][zsize];
110    
111                  int x = 0;                  int x = 0;
112                  int y = 0;                  int y = 0;
# Line 129  public class TemplateCommand implements Line 128  public class TemplateCommand implements
128                          }                          }
129    
130                          for (int i=0; i<elements.length; i++) {                          for (int i=0; i<elements.length; i++) {
131                                  try {                                  int val = 0;
132                                          String element = elements[i].trim();                                  int subval = 0;
133                                          int val = Integer.parseInt( element );                                  
134                                    String element[] = elements[i].trim().split("\\.");
135                                          if (val < 0 || val>255) {  
136                                                  throw new Exception( "Template: invalid value on line " + lines + ": " + val );                                  
137                                          }                                  try {                                  
138                                          array[x][y][i] = val;                                          val = Integer.parseInt( element[0] );
   
139                                  } catch (Exception e) {                                  } catch (Exception e) {
140                                          throw new Exception( "Template: invalid value on line " + lines + ": " + elements[i] );                                          throw new Exception( "Template: invalid value on line " + lines + ": " + element[0] );
141                                  }                                  }
142                                    
143                                    if (val < 0 || val>255) {
144                                            throw new Exception( "Template: invalid value on line " + lines + ": " + val );
145                                    }
146                                    
147                                    if (element.length == 2) {
148                                            try {                                  
149                                                    subval = Integer.parseInt( element[1] );
150                                            } catch (Exception e) {
151                                                    throw new Exception( "Template: invalid value on line " + lines + ": " + element[1] );
152                                            }
153                                    }
154                                                                    
155                                    array[x][y][i] = new Pair(val,subval);
156                          }                          }
157    
158                          x++;                          x++;
# Line 163  public class TemplateCommand implements Line 175  public class TemplateCommand implements
175    
176          }          }
177    
178          void buildTemplate(Location loc, int[][][] template) {          void buildTemplate(Location loc, Pair[][][] template) {
179                  World world = loc.getWorld();                  World world = loc.getWorld();
180                  for (int i=0; i<template.length; i++ ) {                  for (int i=0; i<template.length; i++ ) {
181                          for (int j=0; j<template[0].length; j++) {                          for (int j=0; j<template[0].length; j++) {
# Line 172  public class TemplateCommand implements Line 184  public class TemplateCommand implements
184                                          int y = loc.getBlockY() + j;                                          int y = loc.getBlockY() + j;
185                                          int z = loc.getBlockZ() + k;                                          int z = loc.getBlockZ() + k;
186    
187                                          int type = template[i][j][k];                                          int type = template[i][j][k].id;
188                                            byte data = (byte) template[i][j][k].subId;
189    
190                                          //plugin.getLogger().info(  String.format(  "Setting typeid at %d,%d,%d  to %d", x,y,z, type)  );                                          //plugin.getLogger().info(  String.format(  "Setting typeid at %d,%d,%d  to %d", x,y,z, type)  );
191    
192                                          world.getBlockAt(x, y, z).setTypeId( type  );                                          
193                                            world.getBlockAt(x, y, z).setTypeIdAndData(type, data, true);
194                                  }                                  }
195                          }                          }
196                  }                  }

Legend:
Removed from v.1746  
changed lines
  Added in v.1747

  ViewVC Help
Powered by ViewVC 1.1.20