From 803e0e19d5a40ad67ee9890ec8d5383d3ed6f1d1 Mon Sep 17 00:00:00 2001 From: LemADEC Date: Fri, 15 Jan 2016 12:01:25 +0100 Subject: [PATCH] Improved world generation configuration logs Fixed block names in default structure --- .../warpdrive/config/XmlPreprocessor.java | 43 +++++++++--------- .../config/filler/FillerManager.java | 22 ++-------- .../warpdrive/config/filler/FillerSet.java | 41 ++++++++--------- .../cr0s/warpdrive/config/structures/Orb.java | 44 +++++++++---------- .../config/structures/StructureManager.java | 12 ++--- .../resources/config/structures-default.xml | 4 +- 6 files changed, 72 insertions(+), 94 deletions(-) diff --git a/src/main/java/cr0s/warpdrive/config/XmlPreprocessor.java b/src/main/java/cr0s/warpdrive/config/XmlPreprocessor.java index 1805eb75..44f482b1 100644 --- a/src/main/java/cr0s/warpdrive/config/XmlPreprocessor.java +++ b/src/main/java/cr0s/warpdrive/config/XmlPreprocessor.java @@ -19,16 +19,16 @@ public class XmlPreprocessor { /** * Will check the given element for a mod attribute and return a string of all the ones that are not loaded, separated by commas * - * @param e + * @param element * Element to check * @return A string, which is empty if all the mods are loaded. * @throws InvalidXmlException */ - public static ModCheckResults checkModRequirements(Element e) { + public static ModCheckResults checkModRequirements(Element element) { ModCheckResults modErrors = new ModCheckResults(); - for (String mod : e.getAttribute("mods").split(",")) { + for (String mod : element.getAttribute("mods").split(",")) { //TODO: add version check @@ -63,29 +63,25 @@ public class XmlPreprocessor { Node child = children.item(i); if (child instanceof Element) { - - ModCheckResults res = checkModRequirements((Element) child); - + Element elementChild = (Element) child; + ModCheckResults res = checkModRequirements(elementChild); if (!res.isEmpty()) { + WarpDrive.logger.info("Skipping " + base.getNodeName() + "/" + elementChild.getNodeName() + + " " + elementChild.getAttribute("group") + elementChild.getAttribute("name") + elementChild.getAttribute("block") + + " due to " + res); base.removeChild(child); - WarpDrive.logger.info("Removed child element " + child.getBaseURI() + " of element " + base.getBaseURI() + ", results: " + res); } else { - doModReqSanitation(child); - } - } } - } public static void doLogicPreprocessing(Node root) throws InvalidXmlException { - - NodeList children = root.getChildNodes(); - for (int i = 0; i < children.getLength(); i++) + for (int i = 0; i < children.getLength(); i++) { doLogicPreprocessing(children.item(i)); + } if (root.getNodeType() == Node.ELEMENT_NODE && ((Element) root).getTagName().equalsIgnoreCase("for")) { @@ -235,15 +231,18 @@ public class XmlPreprocessor { @Override public String toString() { - String s = "{"; - - for (Entry e : mods.entrySet()) - s = s + e.getKey() + ": " + e.getValue() + ", "; - - return s + "}"; + String string = (mods.size() > 1 ? "{" : ""); + boolean isFirst = true; + for (Entry entry : mods.entrySet()) { + if (isFirst) { + isFirst = false; + } else { + string += ", "; + } + string += entry.getKey() + ": " + entry.getValue(); + } + return string + (mods.size() > 1 ? "}" : ""); } - } - } diff --git a/src/main/java/cr0s/warpdrive/config/filler/FillerManager.java b/src/main/java/cr0s/warpdrive/config/filler/FillerManager.java index 44ddfaed..31362657 100644 --- a/src/main/java/cr0s/warpdrive/config/filler/FillerManager.java +++ b/src/main/java/cr0s/warpdrive/config/filler/FillerManager.java @@ -36,10 +36,6 @@ public class FillerManager { public static final String END = "end"; /**/ - public static void loadOres(String oreConfDirectory) { - loadOres(new File(oreConfDirectory)); - } - public static void loadOres(File dir) { // directory is created by caller, so it can copy default files if any @@ -58,12 +54,12 @@ public class FillerManager { try { WarpDrive.logger.info("Loading filler data file " + file.getName() + "..."); loadXmlFillerFile(file); - WarpDrive.logger.info("Loading filler data file " + file.getName() + " done"); } catch (Exception exception) { - WarpDrive.logger.error("Error loading file " + file.getName() + ": " + exception.getMessage()); + WarpDrive.logger.error("Error loading filler data file " + file.getName() + ": " + exception.getMessage()); exception.printStackTrace(); } } + WarpDrive.logger.info("Loading filler data files done"); } private static void loadXmlFillerFile(File file) throws InvalidXmlException, SAXException, IOException { @@ -73,7 +69,7 @@ public class FillerManager { ModCheckResults res = XmlPreprocessor.checkModRequirements(base.getDocumentElement()); if (!res.isEmpty()) { - WarpDrive.logger.info("Skippping filler data file " + file.getName() + " because of: " + res); + WarpDrive.logger.info("Skippping filler data file " + file.getName() + " due to " + res); return; } @@ -133,7 +129,7 @@ public class FillerManager { if (!fillerSets.containsKey(dep)) { - WarpDrive.logger.error("A fillerSet " + entry.getKey() + " has a dependency that doesnt exist!"); + WarpDrive.logger.error("Skipping FillerSet " + entry.getKey() + " due to missing dependency " + dep); fillerSets.remove(entry.getKey().getName()); toRemove.add(entry.getKey()); @@ -155,14 +151,4 @@ public class FillerManager { public static FillerSet getFillerSet(String name) { return fillerSets.get(name); } - - /* TODO dead code? - public static class BlockComparator implements Comparator { - - @Override - public int compare(Block arg0, Block arg1) { - return arg0.getUnlocalizedName().compareTo(arg1.getUnlocalizedName()); - } - } - /**/ } diff --git a/src/main/java/cr0s/warpdrive/config/filler/FillerSet.java b/src/main/java/cr0s/warpdrive/config/filler/FillerSet.java index 4ba2dafe..2a53d701 100644 --- a/src/main/java/cr0s/warpdrive/config/filler/FillerSet.java +++ b/src/main/java/cr0s/warpdrive/config/filler/FillerSet.java @@ -18,18 +18,13 @@ import net.minecraft.init.Blocks; * * If FillerSet(blocks[]) is called, that is not necessary. * - * */ public class FillerSet implements XmlRepresentable, Comparable { private MetaBlock[] weightedFillerBlocks; private FillerFactory factory; - private String name; + protected String name; - - /** - * @return the name - */ public String getName() { return name; } @@ -60,24 +55,24 @@ public class FillerSet implements XmlRepresentable, Comparable { // Check there is a block name if (!filler.hasAttribute("block")) { - throw new InvalidXmlException("Filler " + filler.getBaseURI() + " is missing a block tag!"); + throw new InvalidXmlException("Filler " + filler + " is missing a block tag!"); } String blockName = filler.getAttribute("block"); Block block = Block.getBlockFromName(blockName); if (block == null) { - WarpDrive.logger.warn("Filler " + filler.getBaseURI() + " refers to missing block " + blockName + ": ignoring that entry..."); + WarpDrive.logger.warn("Skipping missing block " + blockName); continue; } // Get metadata attribute, defaults to 0 - int metadata = 0; - String metaString = filler.getAttribute("metadata"); - if (!metaString.isEmpty()) { + int intMetadata = 0; + String stringMetadata = filler.getAttribute("metadata"); + if (!stringMetadata.isEmpty()) { try { - metadata = Integer.parseInt(metaString); + intMetadata = Integer.parseInt(stringMetadata); } catch (NumberFormatException exception) { - throw new InvalidXmlException("Filler " + filler.getBaseURI() + " metadata attribute is NaN!"); + throw new InvalidXmlException("Invalid metadata for block " + blockName); } } @@ -95,10 +90,10 @@ public class FillerSet implements XmlRepresentable, Comparable { try { weight = Integer.parseInt(stringWeight); - factory.addWeightedBlock(block, metadata, weight); + factory.addWeightedBlock(block, intMetadata, weight); } catch (NumberFormatException exception) { - throw new InvalidXmlException("Filler " + filler.getBaseURI() + " weight is NaN!"); + throw new InvalidXmlException("Invalid weight for block " + blockName); } catch (IllegalArgumentException exception) { throw new InvalidXmlException(exception.getMessage()); } @@ -110,21 +105,21 @@ public class FillerSet implements XmlRepresentable, Comparable { hasWeightOrRatio = true; try { - factory.addRatioBlock(block, metadata, stringRatio); + factory.addRatioBlock(block, intMetadata, stringRatio); - } catch (IllegalArgumentException ex) { - throw new InvalidXmlException(ex.getMessage()); + } catch (IllegalArgumentException exception) { + throw new InvalidXmlException(exception.getMessage()); } } if (!hasWeightOrRatio) { - throw new InvalidXmlException("Filler " + filler.getBaseURI() + " is missing a weight or a ratio!"); + throw new InvalidXmlException("No ratio nor weight defined for block " + blockName + " " + stringMetadata); } } } @Override - public void saveToXmlElement(Element e, Document d) throws InvalidXmlException { + public void saveToXmlElement(Element element, Document document) throws InvalidXmlException { throw new InvalidXmlException("Not supported"); } @@ -134,7 +129,7 @@ public class FillerSet implements XmlRepresentable, Comparable { * Clears the memory used for construction */ public void finishContruction() { - WarpDrive.logger.info("Finishing construction of FillerSet " + name); + WarpDrive.logger.info("Finishing construction of " + name); weightedFillerBlocks = factory.constructWeightedMetaBlockList(); //For some reason some entries are null, so replace them with air @@ -148,8 +143,8 @@ public class FillerSet implements XmlRepresentable, Comparable { } @Override - public int compareTo(Object obj) { - return name.compareTo(((FillerSet) obj).name); + public int compareTo(Object object) { + return name.compareTo(((FillerSet) object).name); } @Override diff --git a/src/main/java/cr0s/warpdrive/config/structures/Orb.java b/src/main/java/cr0s/warpdrive/config/structures/Orb.java index 085fd871..460d1500 100644 --- a/src/main/java/cr0s/warpdrive/config/structures/Orb.java +++ b/src/main/java/cr0s/warpdrive/config/structures/Orb.java @@ -19,7 +19,7 @@ import cr0s.warpdrive.world.EntitySphereGen; public abstract class Orb extends DeployableStructure implements XmlRepresentable { private OrbShell[] shellRelative; - private ArrayList shells; + // private ArrayList shells; private String name; /** @@ -55,23 +55,22 @@ public abstract class Orb extends DeployableStructure implements XmlRepresentabl } @Override - public void loadFromXmlElement(Element e) throws InvalidXmlException { + public void loadFromXmlElement(Element element) throws InvalidXmlException { - this.name = e.getAttribute("name"); + name = element.getAttribute("name"); ArrayList newShells = new ArrayList(); int totalThickness = 0; - NodeList shells = e.getElementsByTagName("shell"); + NodeList shells = element.getElementsByTagName("shell"); for (int i = 0; i < shells.getLength(); i++) { - Element tmp = (Element) shells.item(i); + Element elementShell = (Element) shells.item(i); OrbShell shell = new OrbShell(); - shell.loadFromXmlElement(tmp); + shell.loadFromXmlElement(elementShell); shell.finishContruction(); totalThickness += shell.thickness; newShells.add(shell); - } int index = 0; @@ -84,28 +83,27 @@ public abstract class Orb extends DeployableStructure implements XmlRepresentabl } setRadius(totalThickness - 1); - - } @Override - public void saveToXmlElement(Element e, Document d) { + public void saveToXmlElement(Element element, Document document) { + /* TODO: dead code? for (OrbShell shell : shells) { - Element tmp = d.createElement("shell"); - shell.saveToXmlElement(tmp, d); - e.appendChild(tmp); + Element tmp = document.createElement("shell"); + shell.saveToXmlElement(tmp, document); + element.appendChild(tmp); } - + /**/ } @Override - public boolean generate(World world, Random p_76484_2_, int x, int y, int z) { + public boolean generate(World world, Random random, int x, int y, int z) { EntitySphereGen entitySphereGen = new EntitySphereGen(world, x, y, z, getRadius(), this, true); world.spawnEntityInWorld(entitySphereGen); return false; } - public boolean generate(World world, Random p_76484_2_, int x, int y, int z, final int radius) { + public boolean generate(World world, Random random, int x, int y, int z, final int radius) { EntitySphereGen entitySphereGen = new EntitySphereGen(world, x, y, z, radius, this, true); world.spawnEntityInWorld(entitySphereGen); return false; @@ -140,15 +138,15 @@ public abstract class Orb extends DeployableStructure implements XmlRepresentabl } @Override - public void loadFromXmlElement(Element e) throws InvalidXmlException { + public void loadFromXmlElement(Element element) throws InvalidXmlException { - WarpDrive.logger.info("Loading shell " + e.getAttribute("name")); - name = e.getAttribute("name"); + WarpDrive.logger.info("Loading shell " + element.getAttribute("name")); + name = element.getAttribute("name"); - super.loadFromXmlElement(e); + super.loadFromXmlElement(element); - if (e.hasAttribute("fillerSets")) { - String[] imports = e.getAttribute("fillerSets").split(","); + if (element.hasAttribute("fillerSets")) { + String[] imports = element.getAttribute("fillerSets").split(","); for (String imp : imports) { FillerSet fillSet = FillerManager.getFillerSet(imp); @@ -161,7 +159,7 @@ public abstract class Orb extends DeployableStructure implements XmlRepresentabl } try { - thickness = Integer.parseInt(e.getAttribute("maxThickness")); + thickness = Integer.parseInt(element.getAttribute("maxThickness")); } catch (NumberFormatException ex) { throw new InvalidXmlException("MaxThickness is not valid!"); } diff --git a/src/main/java/cr0s/warpdrive/config/structures/StructureManager.java b/src/main/java/cr0s/warpdrive/config/structures/StructureManager.java index 71b8165d..be4f8b27 100644 --- a/src/main/java/cr0s/warpdrive/config/structures/StructureManager.java +++ b/src/main/java/cr0s/warpdrive/config/structures/StructureManager.java @@ -56,20 +56,20 @@ public class StructureManager { WarpDrive.logger.info("Finished loading structure data file " + file.getName()); - } catch (Exception e) { - WarpDrive.logger.error("Error loading file " + file.getName() + ": " + e.getMessage()); - e.printStackTrace(); + } catch (Exception exception) { + WarpDrive.logger.error("Error loading file " + file.getName() + ": " + exception.getMessage()); + exception.printStackTrace(); } } } - private static void loadXmlStructureFile(File f) throws SAXException, IOException, InvalidXmlException { - Document base = WarpDriveConfig.getXmlDocumentBuilder().parse(f); + private static void loadXmlStructureFile(File file) throws SAXException, IOException, InvalidXmlException { + Document base = WarpDriveConfig.getXmlDocumentBuilder().parse(file); ModCheckResults res = XmlPreprocessor.checkModRequirements(base.getDocumentElement()); if (!res.isEmpty()) { - WarpDrive.logger.info("Skippping structure data file " + f.getName() + " because of: " + res); + WarpDrive.logger.info("Skippping structure " + file.getName() + " due to " + res); return; } diff --git a/src/main/resources/config/structures-default.xml b/src/main/resources/config/structures-default.xml index 60b13ec3..0f0e694b 100644 --- a/src/main/resources/config/structures-default.xml +++ b/src/main/resources/config/structures-default.xml @@ -48,7 +48,7 @@ - + @@ -63,7 +63,7 @@ - +