package mods.eln.misc; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; public class LRDUMask { public int mask; public LRDUMask() { mask = 0; } public LRDUMask(int mask) { this.mask = mask; } public static final LRDUMask[] array = {new LRDUMask(1), new LRDUMask(2), new LRDUMask(4), new LRDUMask(8)}; public boolean left() { return (mask & 1) != 0; } public boolean right() { return (mask & 2) != 0; } public boolean down() { return (mask & 4) != 0; } public boolean up() { return (mask & 8) != 0; } public void set(int mask) { this.mask = mask; } public void set(LRDU lrdu, boolean value) { if (value) { this.mask |= (1 << lrdu.dir); } else { this.mask &= ~(1 << lrdu.dir); } } public boolean get(LRDU lrdu) { return (mask & (1 << lrdu.dir)) != 0; } public void serialize(DataOutputStream stream) { try { stream.writeByte(mask); } catch (IOException e) { e.printStackTrace(); } } public void deserialize(DataInputStream stream) { try { set(stream.readByte()); } catch (IOException e) { e.printStackTrace(); set(0); } } }