20 package net.sf.gridarta.model.face;
22 import java.awt.image.ImageFilter;
23 import java.awt.image.RGBImageFilter;
24 import javax.swing.GrayFilter;
25 import javax.swing.ImageIcon;
35 import org.jetbrains.annotations.NotNull;
36 import org.jetbrains.annotations.Nullable;
57 private static final ImageFilter
GRAY_FILTER =
new GrayFilter(
false, GRAY_PERCENTAGE);
105 private static final ImageFilter
GRID_FILTER =
new RGBImageFilter() {
111 public int filterRGB(
final int x,
final int y,
final int rgb) {
117 public Object clone() {
118 return super.clone();
197 faceObjectProvidersListeners.
add(listener);
206 faceObjectProvidersListeners.
remove(listener);
213 if (normalFaceProvider != null) {
214 normalFaceProvider.
reload();
217 faceProvider.reload();
221 faceObjectProvidersListener.facesReloaded();
238 doubleFaceProvider.
setParent(normalFaceProvider);
239 doubleAlphaFaceProvider.
setParent(normalFaceProvider);
240 stretchedFaceProvider.
setParent(normalFaceProvider);
251 if (normalFaceProvider == null) {
252 throw new IllegalStateException();
255 final boolean[] undefinedArchetype =
new boolean[1];
260 undefinedArchetype[0] = archetype.isUndefinedArchetype();
265 undefinedArchetype[0] = gameObject.hasUndefinedArchetype();
281 return getFace(gameObject.getFaceObjName(), gameObject.hasUndefinedArchetype(),
ALPHA,
ALPHA, 0);
292 if (normalFaceProvider == null) {
293 throw new IllegalStateException();
332 private ImageIcon
getFace(@Nullable
final String faceName,
final boolean hasUndefinedArchetype, @NotNull
final FaceProvider singleFaceProvider, @NotNull
final FaceProvider doubleFaceProvider,
final long stretch) {
333 if (hasUndefinedArchetype) {
337 if (faceName == null) {
342 if (faceObject == null) {
353 faceProvider = singleFaceProvider;
357 final String effectiveFaceName = alternativeFaceName != null && singleFaceProvider == doubleFaceProvider ? alternativeFaceName : faceName;
final EventListenerList2< FaceObjectProvidersListener > faceObjectProvidersListeners
The FaceObjectProvidersListeners to notify about changes.
boolean isDouble()
Return whether this face is a double face.
static final FilterFaceProvider GRID
The face provider for grid faces.
final FilterFaceProvider doubleFaceProvider
The face provider for double faces.
ImageIcon getTransDouble(@NotNull final GameObject<?, ?, ?> gameObject)
Returns the transparent double face for a GameObject as an ImageIcon.
A FilterFaceProvider provides modified versions of icons provided by another FaceProvider by applying...
The data package contains classes for handling data that is organized in a tree.
An ImageFilter that produces double faces: the source image is drawn twice with a vertical shift...
T [] getListeners()
Returns an array of all the listeners.
Utility class holding the singleton AlphaImageFilter instance.
static final FilterFaceProvider GREEN
The face provider for green faces.
Common interface for FaceObject.
This interface represents a lazy loader that provides images on demand.
final FaceObjects faceObjects
The FaceObjects instance for looking up face names.
static final String SQUARE_NO_ARCH
ImageIcon getDisplayIcon(@NotNull final NamedObject namedObject)
Returns the display icon for a NamedObject.
void reload()
Reload faces.
void addFaceObjectProvidersListener(@NotNull final FaceObjectProvidersListener listener)
Adds a FaceObjectProvidersListener to be notified about changes.
ImageIcon getFace(@Nullable final String faceName, final boolean hasUndefinedArchetype, @NotNull final FaceProvider singleFaceProvider, @NotNull final FaceProvider doubleFaceProvider, final long stretch)
Returns the ImageIcon of a face with a certain face name.
FaceObjectProviders(final int doubleFaceOffset, @NotNull final FaceObjects faceObjects, @NotNull final ResourceIcons resourceIcons)
Creates a new instance.
Base package of all Gridarta classes.
static final FilterFaceProvider GRAY
The face provider for GRAY faces.
Reflects a game object (object on a map).
static final ImageFilter GRAY_FILTER
The filter to make gray-scaled images.
static final ImageFilter GREEN_FILTER
The filter to make images green.
String getAlternativeFaceName()
Returns the alternative face name for image.a.nnn faces.
E get(@NotNull String objectName)
Gets a AbstractNamedObject.
static final int RED_GREEN_BLUE_MASK
The mask for selecting the red, green, and blue bits.
static final ImageFilter GRID_FILTER
The filter using a full alpha grid instead of alpha blending.
void remove(@NotNull final T listener)
Removes a listener.
static final int GREEN_MASK
The mask for selecting the green bits.
static final ImageFilter BLUE_FILTER
The filter to make images blue.
final ResourceIcons resourceIcons
The ResourceIcons for creating icons.
GameObjects are the objects based on Archetypes found on maps.
final FilterFaceProvider stretchedFaceProvider
The face provider for stretched floor faces.
void setNormal(@NotNull final FaceProvider normalFaceProvider)
Sets the normal FaceProvider.
ImageIcon getImageIconForFacename(@NotNull String faceName, long stretch)
Get an image from this FaceProvider.
void add(@NotNull final T listener)
Adds a listener.
static final String SQUARE_UNKNOWN
FaceProvider normalFaceProvider
The face provider for normal faces.
static final ImageFilter RED_FILTER
The filter to make images red.
ImageIcon getTrans(@NotNull final GameObject<?, ?, ?> gameObject)
Returns the transparent face for a GameObject as an ImageIcon.
static final String SQUARE_NO_FACE
FaceObjects is a container for FaceObjects.
void removeFaceObjectProvidersListener(@NotNull final FaceObjectProvidersListener listener)
Removes a FaceObjectProvidersListener to be notified about changes.
static final ImageFilter ALPHA_FILTER
The singleton AlphaImageFilter instance for creating transparent images.
void setParent(@Nullable final FaceProvider parent)
Sets a new provider as parent.
static final FilterFaceProvider RED
The face provider for red faces.
static final int GRAY_PERCENTAGE
The gray level for gray-scaled images; 100=darkest gray, 0=lightest gray.
Type-safe version of EventListenerList.
Interface for listeners interested in FaceObjectProviders related events.
Provider for faces of GameObjects and Archetypes.
static final int RED_MASK
The mask for selecting the red bits.
Creates ImageIcon instances from resources.
ImageIcon getImageIconForFacename(@NotNull final String faceObjName)
Returns the ImageIcon for a given face object name.
Class to filter images by simply applying a boolean OR operation.
ImageIcon getResourceIcon(@NotNull final String iconName)
Returns the image icon for the given icon name.
An ImageFilter that produces stretched faces.
void reloadAll()
Reloads all providers provided by this FaceObjects.
ImageIcon getDouble(@NotNull final GameObject<?, ?, ?> gameObject)
Returns the double face for a GameObject as an ImageIcon.
final FilterFaceProvider doubleAlphaFaceProvider
The face provider for transparent double faces.
static final FilterFaceProvider BLUE
The face provider for blue faces.
static final int BLUE_MASK
The mask for selecting the blue bits.
ImageIcon getStretched(@NotNull final GameObject<?, ?, ?> gameObject, final long stretch)
Returns the stretched face for a GameObject as an ImageIcon.
Interface for MapArchObjects.
static final FilterFaceProvider ALPHA
The face provider for alpha faces.