⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dominputcapsule.java

📁 java 3d game jme 工程开发源代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                ret.setTexture(t, i);            }        } catch (Exception e) {            Logger.getLogger(DOMInputCapsule.class.getName()).log(Level.SEVERE, null, e);        }        currentElem = el;        return ret;    }        private Savable[] readRenderStateList(Element fromElement, Savable[] defVal) {        Savable[] ret = defVal;        try {            Renderer r = DisplaySystem.getDisplaySystem().getRenderer();            int size = RenderState.StateType.values().length;            Savable[] tmp = new Savable[size];            currentElem = findFirstChildElement(fromElement);            while (currentElem != null) {                Element el = currentElem;                RenderState rs = null;                if (el.getNodeName().equals("com.jme.scene.state.TextureState")) {                    rs = readTextureStateFromCurrent();                } else {                    rs = (RenderState) (readSavableFromCurrentElem(null));                }                if (rs != null) {                    tmp[rs.getStateType().ordinal()] = rs;                }                currentElem = findNextSiblingElement(el);                ret = tmp;            }        } catch (Exception e) {            Logger.getLogger(DOMInputCapsule.class.getName()).log(Level.SEVERE, null, e);        }        return ret;    }    public Savable[] readSavableArray(String name, Savable[] defVal) throws IOException {        Savable[] ret = defVal;        try {            Element tmpEl = findChildElement(currentElem, name);            if (tmpEl == null) {                return defVal;            }            if (name.equals("renderStateList")) {                ret = readRenderStateList(tmpEl, defVal);            } else {                int size = Integer.parseInt(tmpEl.getAttribute("size"));                Savable[] tmp = new Savable[size];                currentElem = findFirstChildElement(tmpEl);                for (int i = 0; i < size; i++) {                    tmp[i] = (readSavableFromCurrentElem(null));                    if (i == size - 1) {                        break;                    }                    currentElem = findNextSiblingElement(currentElem);                }                ret = tmp;            }            currentElem = (Element) tmpEl.getParentNode();        } catch (Exception e) {            IOException ex = new IOException();            ex.initCause(e);            throw ex;        }        return ret;    }    public Savable[][] readSavableArray2D(String name, Savable[][] defVal) throws IOException {        Savable[][] ret = defVal;        try {            Element tmpEl = findChildElement(currentElem, name);            if (tmpEl == null) {                return defVal;            }            int size_outer = Integer.parseInt(tmpEl.getAttribute("size_outer"));            int size_inner = Integer.parseInt(tmpEl.getAttribute("size_outer"));                        Savable[][] tmp = new Savable[size_outer][size_inner];            currentElem = findFirstChildElement(tmpEl);            for (int i = 0; i < size_outer; i++) {                for (int j = 0; j < size_inner; j++) {                    tmp[i][j] = (readSavableFromCurrentElem(null));                    if (i == size_outer - 1 && j == size_inner - 1) {                        break;                    }                    currentElem = findNextSiblingElement(currentElem);                }            }            ret = tmp;            currentElem = (Element) tmpEl.getParentNode();        } catch (Exception e) {            IOException ex = new IOException();            ex.initCause(e);            throw ex;        }        return ret;    }    public ArrayList<Savable> readSavableArrayList(String name, ArrayList defVal) throws IOException {        ArrayList<Savable> ret = defVal;        try {            Element tmpEl = findChildElement(currentElem, name);            if (tmpEl == null) {                return defVal;            }            String s = tmpEl.getAttribute("size");            int size = Integer.parseInt(s);            ArrayList<Savable> tmp = new ArrayList<Savable>();            currentElem = findFirstChildElement(tmpEl);            for (int i = 0; i < size; i++) {                tmp.add(readSavableFromCurrentElem(null));                if (i == size - 1) {                    break;                }                currentElem = findNextSiblingElement(currentElem);            }            ret = tmp;            currentElem = (Element) tmpEl.getParentNode();        } catch (Exception e) {            IOException ex = new IOException();            ex.initCause(e);            throw ex;        }        return ret;    }    public ArrayList[] readSavableArrayListArray(String name, ArrayList[] defVal) throws IOException {        ArrayList[] ret = defVal;        try {            Element tmpEl = findChildElement(currentElem, name);            if (tmpEl == null) {                return defVal;            }            currentElem = tmpEl;                        int size = Integer.parseInt(tmpEl.getAttribute("size"));            ArrayList[] tmp = new ArrayList[size];            for (int i = 0; i < size; i++) {                StringBuilder buf = new StringBuilder("SavableArrayList_");                buf.append(i);                ArrayList al = readSavableArrayList(buf.toString(), null);                tmp[i] = al;                if (i == size - 1) {                    break;                }            }            ret = tmp;            currentElem = (Element) tmpEl.getParentNode();        } catch (Exception e) {            IOException ex = new IOException();            ex.initCause(e);            throw ex;        }        return ret;    }    public ArrayList[][] readSavableArrayListArray2D(String name, ArrayList[][] defVal) throws IOException {        ArrayList[][] ret = defVal;        try {            Element tmpEl = findChildElement(currentElem, name);            if (tmpEl == null) {                return defVal;            }            currentElem = tmpEl;            int size = Integer.parseInt(tmpEl.getAttribute("size"));                        ArrayList[][] tmp = new ArrayList[size][];            for (int i = 0; i < size; i++) {                ArrayList[] arr = readSavableArrayListArray("SavableArrayListArray_" + i, null);                tmp[i] = arr;            }            ret = tmp;            currentElem = (Element) tmpEl.getParentNode();        } catch (Exception e) {            IOException ex = new IOException();            ex.initCause(e);            throw ex;        }        return ret;    }    public ArrayList readFloatBufferArrayList(String name, ArrayList<FloatBuffer> defVal) throws IOException {        ArrayList<FloatBuffer> ret = defVal;        try {            Element tmpEl = findChildElement(currentElem, name);            if (tmpEl == null) {                return defVal;            }            int size = Integer.parseInt(tmpEl.getAttribute("size"));            ArrayList<FloatBuffer> tmp = new ArrayList<FloatBuffer>(size);            currentElem = findFirstChildElement(tmpEl);            for (int i = 0; i < size; i++) {                tmp.add(readFloatBuffer(null, null));                if (i == size - 1) {                    break;                }                currentElem = findNextSiblingElement(currentElem);            }            ret = tmp;            currentElem = (Element) tmpEl.getParentNode();        } catch (Exception e) {            IOException ex = new IOException();            ex.initCause(e);            throw ex;        }        return ret;    }    public Map<? extends Savable, ? extends Savable> readSavableMap(String name, Map<? extends Savable, ? extends Savable> defVal) throws IOException {    	Map<Savable, Savable> ret;    	Element tempEl;    	    	if (name != null) {    		tempEl = findChildElement(currentElem, name);        } else {        	tempEl = currentElem;        }    	ret = new HashMap<Savable, Savable>();    	    	NodeList nodes = tempEl.getChildNodes();        for (int i = 0; i < nodes.getLength(); i++) {    		Node n = nodes.item(i);            if (n instanceof Element && n.getNodeName().equals("MapEntry")) {                Element elem = (Element) n;    			currentElem = elem;    			Savable key = readSavable(XMLExporter.ELEMENT_KEY, null);    			    			Savable val = readSavable(XMLExporter.ELEMENT_VALUE, null);    			ret.put(key, val);    			    		}    	}    	currentElem = (Element) tempEl.getParentNode();        return ret;    }    public Map<String, ? extends Savable> readStringSavableMap(String name, Map<String, ? extends Savable> defVal) throws IOException {    	Map<String, Savable> ret = null;    	Element tempEl;    	    	if (name != null) {    		tempEl = findChildElement(currentElem, name);        } else {        	tempEl = currentElem;        }        if (tempEl != null) {	    	ret = new HashMap<String, Savable>();	    		    	NodeList nodes = tempEl.getChildNodes();		    for (int i = 0; i < nodes.getLength(); i++) {				Node n = nodes.item(i);				if (n instanceof Element && n.getNodeName().equals("MapEntry")) {					Element elem = (Element) n;					currentElem = elem;					String key = currentElem.getAttribute("key");					Savable val = readSavable("Savable", null);					ret.put(key, val);				}			}        } else {	    	return defVal;	    }    	currentElem = (Element) tempEl.getParentNode();        return ret;    }    /**     * reads from currentElem if name is null     */    public FloatBuffer readFloatBuffer(String name, FloatBuffer defVal) throws IOException {        FloatBuffer ret = defVal;        try {            Element tmpEl;            if (name != null) {                tmpEl = findChildElement(currentElem, name);            } else {                tmpEl = currentElem;            }            if (tmpEl == null) {                return defVal;            }            int size = Integer.parseInt(tmpEl.getAttribute("size"));            FloatBuffer tmp = BufferUtils.createFloatBuffer(size);            String[] strings = tmpEl.getAttribute("data").split("\\s+");            for (String s : strings) {                tmp.put(Float.parseFloat(s));            }            tmp.flip();            ret = tmp;        } catch (Exception e) {            IOException ex = new IOException();            ex.initCause(e);            throw ex;        }        return ret;    }    public IntBuffer readIntBuffer(String name, IntBuffer defVal) throws IOException {        IntBuffer ret = defVal;        try {            Element tmpEl = findChildElement(currentElem, name);            if (tmpEl == null) {                return defVal;            }            int size = Integer.parseInt(tmpEl.getAttribute("size"));            IntBuffer tmp = BufferUtils.createIntBuffer(size);            String[] strings = tmpEl.getAttribute("data").split("\\s+");            for (String s : strings) {                tmp.put(Integer.parseInt(s));            }            tmp.flip();            ret = tmp;        } catch (Exception e) {            IOException ex = new IOException();            ex.initCause(e);            throw ex;        }        return ret;    }    public ByteBuffer readByteBuffer(String name, ByteBuffer defVal) throws IOException {    	ByteBuffer ret = defVal;        try {            Element tmpEl = findChildElement(currentElem, name);            if (tmpEl == null) {                return defVal;            }            int size = Integer.parseInt(tmpEl.getAttribute("size"));            ByteBuffer tmp = BufferUtils.createByteBuffer(size);            String[] strings = tmpEl.getAttribute("data").split("\\s+");            for (String s : strings) {                tmp.put(Byte.valueOf(s));            }            tmp.flip();            ret = tmp;        } catch (Exception e) {            IOException ex = new IOException();            ex.initCause(e);            throw ex;        }        return ret;    }    public ShortBuffer readShortBuffer(String name, ShortBuffer defVal) throws IOException {    	ShortBuffer ret = defVal;        try {            Element tmpEl = findChildElement(currentElem, name);            if (tmpEl == null) {                return defVal;            }            int size = Integer.parseInt(tmpEl.getAttribute("size"));            ShortBuffer tmp = BufferUtils.createShortBuffer(size);            String[] strings = tmpEl.getAttribute("data").split("\\s+");            for (String s : strings) {                tmp.put(Short.valueOf(s));            }            tmp.flip();            ret = tmp;        } catch (Exception e) {            IOException ex = new IOException();            ex.initCause(e);            throw ex;        }        return ret;    }	public ArrayList<ByteBuffer> readByteBufferArrayList(String name, ArrayList<ByteBuffer> defVal) throws IOException {		ArrayList<ByteBuffer> ret = defVal;        try {            Element tmpEl = findChildElement(currentElem, name);            if (tmpEl == null) {                return defVal;            }            int size = Integer.parseInt(tmpEl.getAttribute("size"));            ArrayList<ByteBuffer> tmp = new ArrayList<ByteBuffer>(size);            currentElem = findFirstChildElement(tmpEl);            for (int i = 0; i < size; i++) {                tmp.add(readByteBuffer(null, null));                if (i == size - 1) {                    break;                }                currentElem = findNextSiblingElement(currentElem);            }            ret = tmp;            currentElem = (Element) tmpEl.getParentNode();        } catch (Exception e) {            IOException ex = new IOException();            ex.initCause(e);            throw ex;        }        return ret;	}	public <T extends Enum<T>> T readEnum(String name, Class<T> enumType,			T defVal) throws IOException {        T ret = defVal;        try {            String eVal = currentElem.getAttribute(name);            if (eVal != null && eVal.length() > 0) {                ret = Enum.valueOf(enumType, eVal);            }        } catch (Exception e) {            IOException ex = new IOException();            ex.initCause(e);            throw ex;        }        return ret;       	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -