Package net.mtrop.doom.texture
Class Animated
java.lang.Object
net.mtrop.doom.texture.Animated
- All Implemented Interfaces:
Iterable<Animated.Entry>
,BinaryObject
,Sizable
This class represents the contents of a Boom Engine ANIMATED
lump. This lump contains extended information regarding animated
flats and textures.
- Author:
- Matthew Tropiano
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Flat entry for ANIMATED.static enum
Enumeration of Animated Entry Texture types.Nested classes/interfaces inherited from interface net.mtrop.doom.object.BinaryObject
BinaryObject.InlineScanner<BO extends BinaryObject>, BinaryObject.Reflect, BinaryObject.Scanner<BO extends BinaryObject>, BinaryObject.Shared, BinaryObject.Transformer<BO extends BinaryObject>
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addEntry
(Animated.Entry entry) Adds an entry to this Animated lump.static Animated.Entry
Creates a flat entry.get
(int i) Returns an Animated entry at a specific index.int
boolean
isEmpty()
Returns if this object contains no objects.iterator()
void
readBytes
(InputStream in) Reads from anInputStream
and sets this object's fields.removeEntry
(int i) Removes an Animated entry at a specific index.int
size()
static Animated.Entry
Creates a texture entry.static Animated.Entry
Creates a texture entry.void
writeBytes
(OutputStream out) Writes this object to anOutputStream
.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.mtrop.doom.object.BinaryObject
fromBytes, readFile, toBytes, writeFile, writeFile
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
entryList
List of entries.
-
-
Constructor Details
-
Animated
public Animated()Creates a new ANIMATED lump.
-
-
Method Details
-
flat
Creates a flat entry.- Parameters:
lastName
- the last name in the sequence.firstName
- the first name in the sequence.ticks
- the amount of ticks between each frame.- Returns:
- a new entry detailing an animated texture.
- Throws:
IllegalArgumentException
- iflastName
orfirstName
is not a valid texture name, or frame ticks is less than 1.
-
texture
Creates a texture entry.- Parameters:
lastName
- the last name in the sequence.firstName
- the first name in the sequence.ticks
- the amount of ticks between each frame.- Returns:
- a new entry detailing an animated texture.
- Throws:
IllegalArgumentException
- iflastName
orfirstName
is not a valid texture name, or frame ticks is less than 1.
-
texture
Creates a texture entry.- Parameters:
lastName
- the last name in the sequence.firstName
- the first name in the sequence.ticks
- the amount of ticks between each frame.decals
- if true, allows decals to be placed on this texture, false if not.- Returns:
- a new entry detailing an animated texture.
- Throws:
IllegalArgumentException
- iflastName
orfirstName
is not a valid texture name, or frame ticks is less than 1.
-
addEntry
Adds an entry to this Animated lump.- Parameters:
entry
- the entry to add.- See Also:
-
get
Returns an Animated 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
Removes an Animated 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.
-
readBytes
Description copied from interface:BinaryObject
Reads from anInputStream
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 interfaceBinaryObject
- Parameters:
in
- theInputStream
to read from.- Throws:
IOException
- if a read error occurs.
-
writeBytes
Description copied from interface:BinaryObject
Writes this object to anOutputStream
.- Specified by:
writeBytes
in interfaceBinaryObject
- Parameters:
out
- theOutputStream
to write to.- Throws:
IOException
- if a write error occurs.
-
iterator
- Specified by:
iterator
in interfaceIterable<Animated.Entry>
-
size
public int size() -
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 ifSizable.size()
returns 0.
-