/* ** 2011 April 5 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. */ package info.ata4.bsplib.struct; import info.ata4.util.EnumConverter; import info.ata4.io.DataReader; import info.ata4.io.DataWriter; import java.io.IOException; import java.util.Set; /** * Brush data structure. * * @author Nico Bergemann <barracuda415 at yahoo.de> */ public class DBrush implements DStruct { public int fstside; public int numside; public Set<BrushFlag> contents; public boolean isSolid() { return contents.contains(BrushFlag.CONTENTS_SOLID); } public boolean isDetail() { return contents.contains(BrushFlag.CONTENTS_DETAIL); } public boolean isOpaque() { return contents.contains(BrushFlag.CONTENTS_OPAQUE); } public boolean isGrate() { return contents.contains(BrushFlag.CONTENTS_GRATE); } public boolean isLadder() { return contents.contains(BrushFlag.CONTENTS_LADDER); } public boolean isAreaportal() { return contents.contains(BrushFlag.CONTENTS_AREAPORTAL); } public boolean isPlayerClip() { return contents.contains(BrushFlag.CONTENTS_PLAYERCLIP); } public boolean isNpcClip() { return contents.contains(BrushFlag.CONTENTS_MONSTERCLIP); } public boolean isBlockLos() { return contents.contains(BrushFlag.CONTENTS_BLOCKLOS); } public boolean isTranslucent() { return contents.contains(BrushFlag.CONTENTS_TRANSLUCENT); } public boolean isWindow() { return contents.contains(BrushFlag.CONTENTS_WINDOW); } @Override public int getSize() { return 12; } @Override public void read(DataReader in) throws IOException { fstside = in.readInt(); numside = in.readInt(); contents = EnumConverter.fromInteger(BrushFlag.class, in.readInt()); } @Override public void write(DataWriter out) throws IOException { out.writeInt(fstside); out.writeInt(numside); out.writeInt(EnumConverter.toInteger(contents)); } }