From: Hendrik B. <nh...@us...> - 2012-12-30 10:09:37
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/server/core/config In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv3331/src/games/stendhal/server/core/config Modified Files: CreaturesXMLLoader.java XMLUtil.java ZonesXMLLoader.java Log Message: added support for conditions for creatures Index: ZonesXMLLoader.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/server/core/config/ZonesXMLLoader.java,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** ZonesXMLLoader.java 15 Dec 2012 10:28:57 -0000 1.38 --- ZonesXMLLoader.java 30 Dec 2012 10:09:33 -0000 1.39 *************** *** 378,382 **** final String tag = child.getTagName(); ! if (!XMLUtil.checkCondition(child)) { continue; } --- 378,382 ---- final String tag = child.getTagName(); ! if (!XMLUtil.checkCondition(child.getAttribute("condition"))) { continue; } Index: CreaturesXMLLoader.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/server/core/config/CreaturesXMLLoader.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** CreaturesXMLLoader.java 10 Jul 2012 20:38:21 -0000 1.15 --- CreaturesXMLLoader.java 30 Dec 2012 10:09:33 -0000 1.16 *************** *** 81,89 **** private List<DefaultCreature> list; ! private String corpseName; ! private int corpseWidth; ! private int corpseHeight; --- 81,89 ---- private List<DefaultCreature> list; ! private String corpseName; ! private int corpseWidth; ! private int corpseHeight; *************** *** 97,106 **** private boolean attributes; ! private boolean abilities; /** Susceptibilities of a creature */ private EnumMap<Nature, Double> susceptibilities; ! /** Type of the damage caused by the creature */ private Nature damageType; --- 97,106 ---- private boolean attributes; ! private boolean abilities; /** Susceptibilities of a creature */ private EnumMap<Nature, Double> susceptibilities; ! /** Type of the damage caused by the creature */ private Nature damageType; *************** *** 108,111 **** --- 108,113 ---- private Nature rangedDamageType; + private String condition; + CreaturesXMLLoader() { // hide constructor, use the CreatureGroupsXMLLoader instead *************** *** 157,160 **** --- 159,163 ---- if (qName.equals("creature")) { name = attrs.getValue("name"); + condition = attrs.getValue("condition"); drops = false; ai = false; *************** *** 200,205 **** corpseName = attrs.getValue("name"); String value = attrs.getValue("width"); ! ! // Default to 1 for width and height to save the fingers // of the people writing the creatures if (value != null) { --- 203,208 ---- corpseName = attrs.getValue("name"); String value = attrs.getValue("width"); ! ! // Default to 1 for width and height to save the fingers // of the people writing the creatures if (value != null) { *************** *** 310,330 **** public void endElement(final String namespaceURI, final String sName, final String qName) { if (qName.equals("creature")) { if (!tileid.contains(":")) { ! logger.error("Corrupt XML file: Bad tileid for creature(" ! + name + ")"); return; } ! final DefaultCreature creature = new DefaultCreature(clazz, subclass, ! name, tileid); creature.setRPStats(hp, atk, def, speed); creature.setLevel(level, xp); creature.setSize(sizeWidth, sizeHeight); creature.setEquipedItems(equipsItems); ! creature.setCorpse(corpseName, corpseWidth, corpseHeight); corpseName = null; corpseWidth = corpseHeight = 1; ! creature.setDropItems(dropsItems); creature.setAIProfiles(aiProfiles); --- 313,336 ---- public void endElement(final String namespaceURI, final String sName, final String qName) { if (qName.equals("creature")) { + + if (!XMLUtil.checkCondition(condition)) { + return; + } + if (!tileid.contains(":")) { ! logger.error("Corrupt XML file: Bad tileid for creature(" + name + ")"); return; } ! final DefaultCreature creature = new DefaultCreature(clazz, subclass, name, tileid); creature.setRPStats(hp, atk, def, speed); creature.setLevel(level, xp); creature.setSize(sizeWidth, sizeHeight); creature.setEquipedItems(equipsItems); ! creature.setCorpse(corpseName, corpseWidth, corpseHeight); corpseName = null; corpseWidth = corpseHeight = 1; ! creature.setDropItems(dropsItems); creature.setAIProfiles(aiProfiles); Index: XMLUtil.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/server/core/config/XMLUtil.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** XMLUtil.java 14 Dec 2012 23:49:35 -0000 1.5 --- XMLUtil.java 30 Dec 2012 10:09:33 -0000 1.6 *************** *** 35,42 **** /** * Get all the direct children elements of an element. ! * * @param parent * The parent element. ! * * @return A list of Element's. */ --- 35,42 ---- /** * Get all the direct children elements of an element. ! * * @param parent * The parent element. ! * * @return A list of Element's. */ *************** *** 60,69 **** * Get all the direct children elements of an element that have a specific * tag name. ! * * @param parent * The parent element. * @param name * The tag name to match. ! * * @return A list of Element's. */ --- 60,69 ---- * Get all the direct children elements of an element that have a specific * tag name. ! * * @param parent * The parent element. * @param name * The tag name to match. ! * * @return A list of Element's. */ *************** *** 91,98 **** /** * Get the direct text content of an element. ! * * @param element * The element. ! * * @return The contained text. */ --- 91,98 ---- /** * Get the direct text content of an element. ! * * @param element * The element. ! * * @return The contained text. */ *************** *** 107,111 **** /** * Get the text content of an element. ! * * @param element * The element. --- 107,111 ---- /** * Get the text content of an element. ! * * @param element * The element. *************** *** 139,148 **** /** * Parse an XML document. ! * * @param in * The input stream. ! * * @return A Document. ! * * @throws SAXException * If there is a parsing error. --- 139,148 ---- /** * Parse an XML document. ! * * @param in * The input stream. ! * * @return A Document. ! * * @throws SAXException * If there is a parsing error. *************** *** 159,168 **** /** * Parse an XML document. ! * * @param is * The input source. ! * * @return A Document. ! * * @throws SAXException * If there is a parsing error. --- 159,168 ---- /** * Parse an XML document. ! * * @param is * The input source. ! * * @return A Document. ! * * @throws SAXException * If there is a parsing error. *************** *** 188,206 **** * checks if a condition is true * ! * @param element element to check the condition on * @return result of the evaluation of the condition */ ! public static boolean checkCondition(Element element) { ! String condition = element.getAttribute("condition"); if ((condition == null) || condition.trim().equals("")) { return true; } ! condition = condition.trim(); ! if (condition.charAt(0) == '!') { ! return System.getProperty(condition.substring(1)) == null; } ! return System.getProperty(condition) != null; } } --- 188,205 ---- * checks if a condition is true * ! * @param condition value of the condition attribute * @return result of the evaluation of the condition */ ! public static boolean checkCondition(String condition) { if ((condition == null) || condition.trim().equals("")) { return true; } ! String value = condition.trim(); ! if (value.charAt(0) == '!') { ! return System.getProperty(value.substring(1)) == null; } ! return System.getProperty(value) != null; } } |