java.lang.Objectcom.realtime.crossfire.jxclient.mapupdater.CfMapUpdater
public class CfMapUpdater
Utility class to update a CfMap model from protocol commands.
ClientSocket reading
commands received from the Crossfire server, and FileCacheFaceQueue reading faces from
the (file) cache. Synchronization is by sync and applies to the
whole map model map.
| Field Summary | |
|---|---|
private Animations |
animations
The defined animations. |
private CrossfireUpdateMapListener |
crossfireUpdateMapListener
The listener to detect map model changes. |
private FacesManager |
facesManager
The FacesManager to track for updated faces. |
private FacesManagerListener |
facesManagerListener
The listener to detect updated faces. |
private GuiStateListener |
guiStateListener
The GuiStateListener for detecting established or dropped
connections. |
private int |
height
The height of the visible map area. |
private CfMap |
map
The current CfMap instance. |
private java.util.Collection<MapListener> |
mapListeners
The listeners to notify about changed map squares. |
private java.util.Collection<MapScrollListener> |
mapScrollListeners
The listeners to notify about scrolled maps. |
private java.util.Collection<MapSizeListener> |
mapSizeListeners
The MapSizeListeners to be notified. |
private java.util.Collection<NewmapListener> |
newmapListeners
The listeners to notify about cleared maps. |
private java.util.Collection<Location> |
outOfViewMultiFaces
All multi-tiled faces with heads outside the visible map area. |
private java.lang.Object |
sync
The object used for synchronization. |
private CfMapAnimations |
visibleAnimations
The animations in the visible map area. |
private int |
width
The width of the visible map area. |
| Constructor Summary | |
|---|---|
CfMapUpdater(CrossfireServerConnection crossfireServerConnection,
FacesManager facesManager,
GuiStateManager guiStateManager)
Creates a new instance. |
|
CfMapUpdater(FacesManager facesManager)
Creates a new instance. |
|
| Method Summary | |
|---|---|
void |
addCrossfireMapListener(MapListener listener)
Adds a listener to notify about changed map squares. |
void |
addCrossfireMapScrollListener(MapScrollListener listener)
Adds a listener to notify about scrolled maps. |
void |
addCrossfireNewmapListener(NewmapListener listener)
Adds a listener to notify about cleared maps. |
void |
addMapSizeListener(MapSizeListener listener)
Adds a listener to be notified about map size changes. |
private Face |
getFace(int faceNum)
Returns the Face instance by face ID. |
int |
getHeight()
Returns the height of the visible map area. |
CfMap |
getMap()
Returns the current map instance. |
CfMapAnimations |
getMapAnimations()
Returns the CfMapAnimations instance. |
int |
getWidth()
Returns the width of the visible map area. |
void |
processMagicMap(int x,
int y,
int color)
Finishes processing of a set of map square changes. |
private void |
processMapAnimation(int x,
int y,
int layer,
Animation animation,
int type)
Updates a map square by changing an animation. |
private void |
processMapAnimationSpeed(int x,
int y,
int layer,
int animationSpeed)
Updates a map square by changing the animation speed. |
void |
processMapBegin()
Starts processing of a set of map square changes. |
void |
processMapClear(int x,
int y)
Updates a map square by clearing it. |
private void |
processMapDarkness(int x,
int y,
int darkness)
Updates a map square by changing the darkness value. |
void |
processMapEnd(boolean alwaysProcess)
Finishes processing of a set of map square changes. |
void |
processMapFace(Location location,
int faceNum,
boolean clearAnimation)
Updates a map square by changing a face. |
void |
processMapScroll(int dx,
int dy)
Processes a map scroll command. |
void |
processNewMap(int width,
int height)
Processes a newmap command. |
void |
removeCrossfireMapListener(MapListener listener)
Removes a listener to notify about changed map squares. |
void |
removeCrossfireMapScrollListener(MapScrollListener listener)
Removes a listener to notify about scrolled maps. |
void |
removeCrossfireNewmapListener(NewmapListener listener)
Removes a listener to notify about cleared maps. |
void |
removeMapSizeListener(MapSizeListener listener)
Removes a listener to be notified about map size changes. |
private void |
reset()
Resets the animation state. |
private void |
updateFace(int faceNum)
Processes an updated face image. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
@NotNull private final Animations animations
@NotNull private final CrossfireUpdateMapListener crossfireUpdateMapListener
@NotNull private final FacesManager facesManager
FacesManager to track for updated faces.
@NotNull private final FacesManagerListener facesManagerListener
@NotNull private final GuiStateListener guiStateListener
GuiStateListener for detecting established or dropped
connections.
private int height
@NotNull private CfMap map
CfMap instance.
@NotNull private final java.util.Collection<MapListener> mapListeners
@NotNull private final java.util.Collection<MapScrollListener> mapScrollListeners
@NotNull private final java.util.Collection<MapSizeListener> mapSizeListeners
MapSizeListeners to be notified.
@NotNull private final java.util.Collection<NewmapListener> newmapListeners
@NotNull private final java.util.Collection<Location> outOfViewMultiFaces
@NotNull private final java.lang.Object sync
@NotNull private final CfMapAnimations visibleAnimations
private int width
| Constructor Detail |
|---|
public CfMapUpdater(@NotNull
CrossfireServerConnection crossfireServerConnection,
@NotNull
FacesManager facesManager,
@NotNull
GuiStateManager guiStateManager)
crossfireServerConnection - the connection to monitorfacesManager - the faces manager to track for updated facesguiStateManager - the gui state manager to watch
public CfMapUpdater(@NotNull
FacesManager facesManager)
facesManager - the faces manager to track for updated faces| Method Detail |
|---|
public void addCrossfireMapListener(@NotNull
MapListener listener)
listener - the listener to add
public void addCrossfireMapScrollListener(@NotNull
MapScrollListener listener)
listener - the listener to add
public void addCrossfireNewmapListener(@NotNull
NewmapListener listener)
listener - the listener to add
public void addMapSizeListener(@NotNull
MapSizeListener listener)
listener - the listener to add@Nullable private Face getFace(int faceNum)
Face instance by face ID.
faceNum - the face ID
null if
faceNum==0public int getHeight()
@NotNull public CfMap getMap()
@NotNull public CfMapAnimations getMapAnimations()
CfMapAnimations instance.
public int getWidth()
public void processMagicMap(int x,
int y,
int color)
x - the x-coordinate of the squarey - the y-coordinate of the squarecolor - the magic map color to set
private void processMapAnimation(int x,
int y,
int layer,
@NotNull
Animation animation,
int type)
x - the x-coordinate of the squarey - the y-coordinate of the squarelayer - the layer to updateanimation - the animation to settype - the animation type
private void processMapAnimationSpeed(int x,
int y,
int layer,
int animationSpeed)
x - the x-coordinate of the squarey - the y-coordinate of the squarelayer - the layer to updateanimationSpeed - the animation speed to setpublic void processMapBegin()
public void processMapClear(int x,
int y)
x - the x-coordinate of the squarey - the y-coordinate of the square
private void processMapDarkness(int x,
int y,
int darkness)
x - the x-coordinate of the squarey - the y-coordinate of the squaredarkness - the darkness value to setpublic void processMapEnd(boolean alwaysProcess)
alwaysProcess - if set, notify listeners even if no changes are
present
public void processMapFace(@NotNull
Location location,
int faceNum,
boolean clearAnimation)
location - the location to updatefaceNum - the face to set. 0 clears the squareclearAnimation - whether an animation should be cleared
public void processMapScroll(int dx,
int dy)
dx - the distance to scroll in x-direction in squaresdy - the distance to scroll in y-direction in squares
public void processNewMap(int width,
int height)
width - the width of the visible map areaheight - the height of the visible map area
public void removeCrossfireMapListener(@NotNull
MapListener listener)
listener - the listener to remove
public void removeCrossfireMapScrollListener(@NotNull
MapScrollListener listener)
listener - the listener to remove
public void removeCrossfireNewmapListener(@NotNull
NewmapListener listener)
listener - the listener to remove
public void removeMapSizeListener(@NotNull
MapSizeListener listener)
listener - the listener to removeprivate void reset()
private void updateFace(int faceNum)
faceNum - the face that has changed