📄 bg.java
字号:
package staticdata;
/**
* <p>Title: Reader.java</p>
* <p>Description: read and convert xml file</p>
* <p>Copyright: Gameloft 2004</p>
* <p>Company: Gameloft Shanghai</p>
* @author Yi Wen Hu
* @version 1.0
*/
import org.w3c.dom.*;
import java.util.Vector;
import java.io.*;
public class Bg {
private int m_id;
private int m_modelid;
private int m_floorid;
private int m_skyboxid;
private String m_Name;
private int m_Audience;
private int m_Furniture;
private String m_GrabTexture;
public static final String XML_BG_ID = "ID";
public static final String XML_BG_MODEL = "Model";
public static final String XML_BG_NAME = "Name";
public static final String XML_BG_FLOORMODEL = "FloorModel";
public static final String XML_BG_LIGHTS = "Lights";
public static final String XML_BG_AUDIENCE="Audience";
public static final String XML_BG_FURNITURE="Furniture";
public static final String XML_BG_GRABTEX="GrabTex";
class LightItem
{
public LightItem() {};
short x, y, z;
short size;
};
LightItem [][] m_Light;
String []m_lighttex;
public Bg(Element e) {
m_id = Integer.valueOf(e.getAttribute(XML_BG_ID)).intValue();
m_modelid = Integer.valueOf(e.getAttribute(XML_BG_MODEL)).intValue();
m_floorid = Integer.valueOf(e.getAttribute(XML_BG_FLOORMODEL)).intValue();
m_skyboxid = Integer.valueOf(e.getAttribute("skybox")).intValue();
m_Name = e.getAttribute(XML_BG_NAME);
m_Audience=Integer.valueOf(e.getAttribute(XML_BG_AUDIENCE)).intValue();
m_Furniture=Integer.valueOf(e.getAttribute(XML_BG_FURNITURE)).intValue();
m_GrabTexture=e.getAttribute(XML_BG_GRABTEX);
//read lights
NodeList lights, items;
Element lt, lt1;
lights = e.getElementsByTagName(XML_BG_LIGHTS);
m_Light = new LightItem[lights.getLength()][];
m_lighttex = new String[lights.getLength()];
for (int i=0; i<lights.getLength(); i++)
{
lt = (Element)lights.item(i);
m_lighttex[i] = lt.getAttribute("TexFile");
int count;
items = lt.getElementsByTagName("Light");
count = items.getLength();
m_Light[i] = new LightItem[count];
for (int j=0; j<count; j++)
{
lt1 = (Element)items.item(j);
m_Light[i][j] = new LightItem();
m_Light[i][j].x = (short)Integer.valueOf(lt1.getAttribute("x")).intValue();
m_Light[i][j].y = (short)Integer.valueOf(lt1.getAttribute("y")).intValue();
m_Light[i][j].z = (short)Integer.valueOf(lt1.getAttribute("z")).intValue();
m_Light[i][j].size = (short)Integer.valueOf(lt1.getAttribute("size")).intValue();
}
}
}
public void save(FileOutputStream fos) {
byte[] data;
try {
//output name
Reader.WriteString(m_Name, fos);
Reader.WriteString(m_GrabTexture,fos);
// MODELS
fos.write((byte)m_modelid);
fos.write((byte)m_floorid);
fos.write((byte)m_skyboxid);
fos.write((byte)m_Audience);
fos.write((byte)m_Furniture);
//light type count
fos.write((byte)m_lighttex.length);
int count = 0;
for (int i=0; i<m_lighttex.length; i++)
{
count += m_Light[i].length;
}
//light count
fos.write((byte)count);
//light texture name
for (int i=0; i<m_lighttex.length; i++)
{
//light tex name
Reader.WriteString(m_lighttex[i], fos);
fos.write((byte)m_Light[i].length);
//per light data
for (int j = 0; j < m_Light[i].length; j++) {
Reader.WriteShort(m_Light[i][j].x, fos);
Reader.WriteShort(m_Light[i][j].y, fos);
Reader.WriteShort(m_Light[i][j].z, fos);
Reader.WriteShort(m_Light[i][j].size, fos);
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
public void test() {
System.out.print("BG:");
System.out.print("m_id=" + m_id);
System.out.print(",m_modelid=" + m_modelid);
System.out.println(",m_floorid=" + m_floorid);
System.out.println(",lighttypecount=" + m_lighttex.length);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -