package NET.worlds.scape; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; public class VisiAttribute extends Attribute { private static Object classCookie = new Object(); public VisiAttribute(int attrID) { super(attrID); } public VisiAttribute() { } @Override protected void noteAddingTo(SuperRoot owner) { WObject w = (WObject)((Sharer)owner).getOwner(); w._visibilityAttribute = this; } @Override public void detach() { WObject w = (WObject)((Sharer)this.getOwner()).getOwner(); w._visibilityAttribute = null; super.detach(); } @Override public void generateNetData(DataOutputStream s) throws IOException { s.writeBoolean(((WObject)this.getOwner().getOwner()).getVisible()); } @Override public void setFromNetData(DataInputStream ds, int len) throws IOException { ((WObject)this.getOwner().getOwner()).setVisible(ds.readBoolean()); } @Override public void saveState(Saver s) throws IOException { s.saveVersion(0, classCookie); super.saveState(s); } @Override public void restoreState(Restorer r) throws IOException, TooNewException { switch (r.restoreVersion(classCookie)) { case 0: super.restoreState(r); return; default: throw new TooNewException(); } } }