// ============================================================ // <T>存储数据信息到配置节点中。</T> // // @param xconfig 配置信息 // ============================================================ @Override public void saveConfig(FXmlNode xconfig) { super.saveConfig(xconfig); // 处理所有节点 if (hasRenderable()) { FXmlNode xrenderables = xconfig.createNode("RenderableCollection"); for (FResRenderable renderable : _renderables) { renderable.saveConfig(xrenderables.createNode("Renderable")); } } }
// ============================================================ // <T>从配置节点中合并数据信息。</T> // // @param xconfig 配置信息 // ============================================================ @Override public void mergeConfig(FXmlNode xconfig) { super.mergeConfig(xconfig); // 处理所有节点 FXmlNode xrenderables = xconfig.findNode("RenderableCollection"); if (xrenderables != null) { for (FXmlNode xrenderable : xrenderables) { String guid = xrenderable.get("guid"); FResRenderable renderable = findRenderableByGuid(guid); renderable.mergeConfig(xrenderable); } } }
// ============================================================ // <T>从配置节点中加载数据信息。</T> // // @param xconfig 配置信息 // ============================================================ @Override public void loadConfig(FXmlNode xconfig) { super.loadConfig(xconfig); // 处理所有节点 FXmlNode xrenderables = xconfig.findNode("RenderableCollection"); if (xrenderables != null) { for (FXmlNode xrenderable : xrenderables) { FResRenderable renderable = (FResRenderable) createChild(xrenderable); renderable.loadConfig(xrenderable); pushRenderable(renderable); } } }
// ============================================================ // <T>序列化数据到输出流。</T> // // @param output 输出流 // ============================================================ @Override public void serialize(IDataOutput output) { super.serialize(output); // 输出渲染集合 if (hasRenderable()) { int count = _renderables.count(); output.writeUint16(count); for (FResRenderable renderable : _renderables) { renderable.serialize(output); } } else { output.writeUint16(0); } }