Class Switches

java.lang.Object
net.mtrop.doom.texture.Switches
All Implemented Interfaces:
Iterable<Switches.Entry>, BinaryObject, Sizable

public class Switches extends Object implements BinaryObject, Iterable<Switches.Entry>, Sizable
This class represents the contents of a Boom Engine SWITCHES lump. This lump contains extended information regarding textures used for in-game switches.
Author:
Matthew Tropiano
  • Field Details

  • Constructor Details

    • Switches

      public Switches()
      Creates a new SWITCHES lump.
  • Method Details

    • get

      public Switches.Entry get(int i)
      Returns a switch entry at a specific index.
      Parameters:
      i - the index of the entry to return.
      Returns:
      the corresponding entry, or null if no corresponding entry for that index.
      Throws:
      IndexOutOfBoundsException - if the index is out of range (less than 0 or greater than or equal to getFlatCount()).
    • removeEntry

      public Switches.Entry removeEntry(int i)
      Removes a switch entry at a specific index.
      Parameters:
      i - the index of the entry to remove.
      Returns:
      the corresponding removed entry, or null if no corresponding entry for that index.
      Throws:
      IndexOutOfBoundsException - if the index is out of range (less than 0 or greater than or equal to getSwitchCount()).
    • getEntryCount

      public int getEntryCount()
      Returns:
      the amount of switch entries in this lump.
    • addEntry

      public void addEntry(String offName, String onName, Switches.Game game)
      Adds a switch entry to this lump. The names must be 8 characters or less.
      Parameters:
      offName - the "off" name for the switch.
      onName - the "on" name for the switch.
      game - the game type that this switch works with.
      Throws:
      IllegalArgumentException - if any of the texture names are invalid or game is null.
    • readBytes

      public void readBytes(InputStream in) throws IOException
      Description copied from interface: BinaryObject
      Reads from an InputStream and sets this object's fields. Only reads the amount of bytes that it takes to read a single instance of the object. Note that not every object may have a consistent length!
      Specified by:
      readBytes in interface BinaryObject
      Parameters:
      in - the InputStream to read from.
      Throws:
      IOException - if a read error occurs.
    • writeBytes

      public void writeBytes(OutputStream out) throws IOException
      Description copied from interface: BinaryObject
      Writes this object to an OutputStream.
      Specified by:
      writeBytes in interface BinaryObject
      Parameters:
      out - the OutputStream to write to.
      Throws:
      IOException - if a write error occurs.
    • iterator

      public Iterator<Switches.Entry> iterator()
      Specified by:
      iterator in interface Iterable<Switches.Entry>
    • size

      public int size()
      Specified by:
      size in interface Sizable
      Returns:
      the amount of individual objects that this object contains.
    • isEmpty

      public boolean isEmpty()
      Description copied from interface: Sizable
      Returns if this object contains no objects. The general policy of this method is that this returns true if and only if Sizable.size() returns 0.
      Specified by:
      isEmpty in interface Sizable
      Returns:
      true if so, false otherwise.