Package net.sf.gridarta.gui.map.renderer
Class AbstractIsoMapRenderer<G extends DefaultIsoGameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>>
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- net.sf.gridarta.gui.map.renderer.AbstractMapRenderer<G,A,R>
-
- net.sf.gridarta.gui.map.renderer.AbstractIsoMapRenderer<G,A,R>
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,MapRenderer
- Direct Known Subclasses:
IsoMapRenderer
,IsoPickmapRenderer
public abstract class AbstractIsoMapRenderer<G extends DefaultIsoGameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>> extends AbstractMapRenderer<G,A,R>
AMapRenderer
that renders isometric squares. It also visualizes selections and validation errors.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected @org.jetbrains.annotations.NotNull boolean[]
foundSubLayers
Boolean array fortileStretchingOffsets(java.awt.Point, boolean[])
to avoid allocating lots of arrays.protected int
maxYOffset
Maximum Y offset.protected int
minYOffset
Minimum Y offset.-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractIsoMapRenderer(int spawnPointTypeNo, @NotNull MapViewSettings mapViewSettings, @NotNull MapModel<G,A,R> mapModel, @NotNull MapGrid mapGrid, int borderOffsetX, int borderOffsetY, @NotNull MultiPositionData multiPositionData, @NotNull IsoMapSquareInfo isoMapSquareInfo, @NotNull GridMapSquarePainter gridMapSquarePainter, @NotNull GameObjectParser<G,A,R> gameObjectParser, @NotNull javax.swing.Icon unknownSquareIcon)
Creates a new instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
clearBackground(@NotNull java.awt.Graphics g)
Clears the window to background color if necessary.void
closeNotify()
Must be called when this renderer is not used anymore.void
forceRepaint()
Repaint the view because some view parameters may have changed.@NotNull java.awt.image.BufferedImage
getFullImage()
Returns an image of the entire map view.@NotNull java.awt.Rectangle
getSquareBounds(@NotNull java.awt.Point p)
Returns coordinates, length and width of map square.boolean
getSquareLocationAt(@NotNull java.awt.Point point, @NotNull java.awt.Point retPoint)
Returns the map location at the given point.protected abstract boolean
isGameObjectVisible(G gameObject)
Checks whether a game object is visible according to current editor settings.void
paintComponent(@NotNull java.awt.Graphics g)
protected void
paintGameObjectIfVisible(@NotNull java.awt.Graphics2D g, int xStart, int yStart, G gameObject)
Paints a single game object if it is visible according to current editor settings.protected void
paintIcon(@NotNull java.awt.Graphics2D g, @NotNull javax.swing.Icon icon)
Paints an icon.protected abstract void
paintSquare(@NotNull java.awt.Graphics2D g, int x, int y, @NotNull MapSquare<G,A,R> square)
Paints one square.protected int[]
tileStretchingOffsets(@NotNull java.awt.Point point, boolean[] foundSubLayers)
Calculates the tile stretching Y offset.-
Methods inherited from class net.sf.gridarta.gui.map.renderer.AbstractMapRenderer
getToolTipText, isLightVisible, printFullImage, setErroneousMapSquares, setLightVisible
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sf.gridarta.gui.map.renderer.MapRenderer
addMouseListener, addMouseMotionListener, removeMouseListener, removeMouseMotionListener, scrollRectToVisible
-
-
-
-
Field Detail
-
minYOffset
protected int minYOffset
Minimum Y offset.
-
maxYOffset
protected int maxYOffset
Maximum Y offset.
-
foundSubLayers
@NotNull protected final @org.jetbrains.annotations.NotNull boolean[] foundSubLayers
Boolean array fortileStretchingOffsets(java.awt.Point, boolean[])
to avoid allocating lots of arrays.
-
-
Constructor Detail
-
AbstractIsoMapRenderer
protected AbstractIsoMapRenderer(int spawnPointTypeNo, @NotNull @NotNull MapViewSettings mapViewSettings, @NotNull @NotNull MapModel<G,A,R> mapModel, @NotNull @NotNull MapGrid mapGrid, int borderOffsetX, int borderOffsetY, @NotNull @NotNull MultiPositionData multiPositionData, @NotNull @NotNull IsoMapSquareInfo isoMapSquareInfo, @NotNull @NotNull GridMapSquarePainter gridMapSquarePainter, @NotNull @NotNull GameObjectParser<G,A,R> gameObjectParser, @NotNull @NotNull javax.swing.Icon unknownSquareIcon)
Creates a new instance.- Parameters:
spawnPointTypeNo
- the game object type number for spawn pointsmapViewSettings
- the map view settings instance to usemapModel
- the map model to rendermapGrid
- the grid to renderborderOffsetX
- the horizontal border sizeborderOffsetY
- the vertical border sizemultiPositionData
- the multi position data to query for multi-part objectsisoMapSquareInfo
- the iso square info to usegridMapSquarePainter
- the grid square painter to usegameObjectParser
- the game object parser for creating tooltip informationunknownSquareIcon
- the icons for unknown squares
-
-
Method Detail
-
closeNotify
public void closeNotify()
Description copied from class:AbstractMapRenderer
Must be called when this renderer is not used anymore.- Specified by:
closeNotify
in classAbstractMapRenderer<G extends DefaultIsoGameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>>
-
getFullImage
@NotNull public @NotNull java.awt.image.BufferedImage getFullImage()
Description copied from interface:MapRenderer
Returns an image of the entire map view.- Returns:
- an image of the entire map view
-
paintComponent
public void paintComponent(@NotNull @NotNull java.awt.Graphics g)
- Overrides:
paintComponent
in classjavax.swing.JComponent
-
forceRepaint
public void forceRepaint()
Description copied from interface:MapRenderer
Repaint the view because some view parameters may have changed.
-
getSquareBounds
@NotNull public @NotNull java.awt.Rectangle getSquareBounds(@NotNull @NotNull java.awt.Point p)
Description copied from interface:MapRenderer
Returns coordinates, length and width of map square.- Parameters:
p
- the map coordinates- Returns:
- the boundary rectangle of square
-
clearBackground
protected abstract void clearBackground(@NotNull @NotNull java.awt.Graphics g)
Clears the window to background color if necessary.- Parameters:
g
- the graphics to use for clearing
-
paintSquare
protected abstract void paintSquare(@NotNull @NotNull java.awt.Graphics2D g, int x, int y, @NotNull @NotNull MapSquare<G,A,R> square)
Paints one square.- Parameters:
g
- the graphics context to paint tox
- the square coordinate to paint toy
- the square coordinate to paint tosquare
- the square to paint
-
isGameObjectVisible
protected abstract boolean isGameObjectVisible(@NotNull G gameObject)
Checks whether a game object is visible according to current editor settings.- Parameters:
gameObject
- the game object- Returns:
- whether the game object is visible
-
paintGameObjectIfVisible
protected void paintGameObjectIfVisible(@NotNull @NotNull java.awt.Graphics2D g, int xStart, int yStart, @NotNull G gameObject)
Paints a single game object if it is visible according to current editor settings.- Parameters:
g
- the graphics to paint toxStart
- the x offset for paintingyStart
- the y offset for paintinggameObject
- the game object to paint
-
paintIcon
protected void paintIcon(@NotNull @NotNull java.awt.Graphics2D g, @NotNull @NotNull javax.swing.Icon icon)
Paints an icon.- Parameters:
g
- the graphics to paint intoicon
- the icon to paint
-
tileStretchingOffsets
protected int[] tileStretchingOffsets(@NotNull @NotNull java.awt.Point point, boolean[] foundSubLayers)
Calculates the tile stretching Y offset.- Parameters:
point
- coordinatesfoundSubLayers
- array that will contain information about found sub-layers on the tile- Returns:
- offset
-
getSquareLocationAt
public boolean getSquareLocationAt(@NotNull @NotNull java.awt.Point point, @NotNull @NotNull java.awt.Point retPoint)
Description copied from interface:MapRenderer
Returns the map location at the given point.- Parameters:
point
- the coordinates in the renderer viewretPoint
- this point will be returned- Returns:
- whether the location is within the map bounds
-
-