public abstract class GenericMapView<M extends GenericMapModel>
extends com.sengent.jadvanced.panel.ClearPanel
implements java.util.Observer, com.mindgene.d20.common.map.SpaceMap
Modifier and Type | Class and Description |
---|---|
static class |
GenericMapView.Tranlucency |
javax.swing.JPanel.AccessibleJPanel
javax.swing.JComponent.AccessibleJComponent
java.awt.Container.AccessibleAWTContainer
Modifier and Type | Field and Description |
---|---|
protected java.awt.Point |
_centerView
The center pixel of this GUI panel
|
protected com.mindgene.d20.common.util.ImageProvider |
_imgProvider |
protected com.mindgene.d20.common.init.GenericInitModel |
_init |
protected M |
_map |
protected java.awt.Dimension |
_sizeView
The size of this GUI panel in pixels
|
protected GenericMapViewState |
_state |
static boolean |
invertRotation |
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Constructor and Description |
---|
GenericMapView(com.mindgene.d20.common.AbstractApp<?> app,
com.mindgene.d20.common.init.GenericInitModel init,
GenericMapConsoleView consoleView,
boolean paintMaskBelowCreatures) |
Modifier and Type | Method and Description |
---|---|
com.mindgene.d20.common.AbstractApp<?> |
accessApp() |
GenericMapConsoleView |
accessConsoleView() |
java.util.ArrayList<AbstractCreatureInPlay> |
accessCreatures() |
com.mindgene.d20.common.decision.DecisionQueueVC |
accessDecisionQueue() |
com.mindgene.d20.common.map.instrument.MapInstrument_Default |
accessInstrument() |
java.util.List<PublicItemInPlay> |
accessItemsNearCreature(AbstractCreatureInPlay creature)
Determines the list of ITMs close enough for the CTR to pick up.
|
M |
accessMap() |
java.util.ArrayList<AbstractCreatureInPlay> |
accessSelectedCreatures() |
GenericMapViewState |
accessState() |
void |
applyFootprintBounds(java.awt.Rectangle footprint,
java.awt.Rectangle target) |
void |
assignGridVisible(boolean visible) |
void |
assignMap(M map,
GenericMapViewState state) |
void |
assignMobLocation(GenericMapObject mob,
java.awt.Point location)
Assigns the location to the creature making sure it stays on the map.
|
protected void |
buildContent() |
static java.awt.geom.Area |
buildNegativeAreaInMapSpace(java.awt.Dimension mapSize,
java.util.List<com.mindgene.d20.common.geometry.Polygon> polys) |
void |
clearFloat() |
void |
computeShadows() |
void |
demandFoWPolygon(com.mindgene.d20.common.geometry.Polygon poly) |
void |
demandMapMarker(MapMarker demandedMarker) |
void |
discardMap() |
void |
forcePaint() |
java.awt.geom.Rectangle2D |
getCellBounds(double cellX,
double cellY) |
java.awt.Rectangle |
getCellBounds(int cellX,
int cellY) |
java.awt.Rectangle |
getCellBounds(java.awt.Point cell) |
java.awt.geom.Rectangle2D |
getCellBounds(java.awt.geom.Point2D cell) |
java.awt.Point |
getCellCoord(java.awt.Point pixelLocation)
Gets the location of the cell at the pixel coordinates.
|
java.awt.Point |
getCellCoord(java.awt.Point pixelLocation,
boolean allowOffMap) |
java.awt.Point |
getCellCoordIncludingOutOfBounds(java.awt.Point pixelLocation)
Gets the map location for the given pixel location.
|
java.awt.Point |
getCellLocation(java.awt.Point cell)
Gets the pixel location of the center of given cell.
|
java.awt.Point |
getCenterView()
Gets the GUI's panel center based on a resize event.
|
java.awt.Point |
getCreatureCoordClosestToLocation(AbstractCreatureInPlay creature,
java.awt.Point location)
Determines which point in the creature's footprint is closest to location.
|
java.awt.Rectangle |
getFootprintBounds(java.awt.Rectangle footprint)
Computes the pixel rectangle the given footprint would occupy.
|
int |
getGridScale() |
double |
getSegmentation() |
java.lang.String |
getUnityFloorURL() |
java.awt.Point |
getVertex(int vX,
int vY)
Gets the pixel location of the vertex.
|
java.awt.Point |
getVertexCoord(java.awt.Point pixelLocation) |
java.awt.Point |
getVertexCoord(java.awt.Point pixelLocation,
boolean allowOutOfBounds)
Gets the vertex of the grid at the pixel coordinates.
|
static void |
goTranslucent(java.awt.Graphics2D g2,
float alpha) |
boolean |
hasMap() |
boolean |
isCellOnMap(double x,
double y) |
boolean |
isCellOnMap(int x,
int y) |
protected abstract boolean |
isCreatureVisible(AbstractCreatureInPlay creature) |
protected abstract boolean |
isItemVisible(PublicItemInPlay creature) |
void |
makeBufferDirty_WallsOnly() |
void |
makeBufferDirty() |
java.awt.Image |
makeColorTransparent(java.awt.Image im,
java.awt.Color color,
float alpha) |
java.awt.geom.Point2D.Double |
mapFromPixelToWorld(double x,
double y) |
java.awt.geom.Point2D.Double |
mapFromViewToWorld(double x,
double y,
boolean allowOutOfBounds)
Resolve the world view coordinates based on the mouse click.
|
java.awt.geom.Point2D.Double |
mapFromViewToWorld(java.awt.event.MouseEvent me,
boolean allowOutOfBounds)
Resolve the world view coordinates based on the mouse click.
|
java.awt.geom.Point2D.Double |
mapFromViewToWorld(java.awt.Point p,
boolean allowOutOfBounds) |
java.awt.geom.Point2D.Double |
mapFromWorldToPixel(double x,
double y)
Pixel-space is the space on the map and is a co-dependent of the
view-space.
|
static java.awt.geom.Point2D.Double |
mapFromWorldToPixel(double x,
double y,
float pixPerCell) |
java.awt.geom.Point2D.Double |
mapFromWorldToView(java.awt.geom.Point2D.Double pointOnMap)
Map from world-space to mouse-space.
|
static java.awt.Shape |
normalize(com.mindgene.d20.common.geometry.Polygon polygon) |
protected void |
paintASI(java.awt.Graphics2D g2) |
protected void |
paintCeilingOverlap(java.awt.Graphics2D g2,
java.awt.Dimension mapSize,
java.util.List<com.mindgene.d20.common.geometry.Polygon> polys,
java.awt.Color fill) |
protected void |
paintCell(java.awt.Graphics2D g2,
java.awt.Rectangle cellBounds,
short[][] floor,
int x,
int y)
Paints a cell.
|
protected void |
paintComponent(java.awt.Graphics g) |
protected void |
paintCreatures(java.awt.Graphics2D g2) |
protected void |
paintEasyFOW(java.awt.Graphics2D g2,
java.awt.Color fill) |
protected void |
paintGrid(java.awt.Graphics2D g2) |
protected void |
paintHexGrid(java.awt.Graphics2D g2) |
protected void |
paintItems(java.awt.Graphics2D g2) |
protected void |
paintMapBorder(java.awt.Graphics2D g2,
java.awt.Dimension sizeMap) |
protected boolean |
paintMapBoundary() |
protected abstract void |
paintMask(java.awt.Graphics2D g2,
java.awt.Dimension sizeMap) |
protected void |
paintURLFloor(java.awt.Graphics2D g2,
java.awt.Dimension sizeMap)
Paint URL Floor
|
protected void |
paintWalls(java.awt.Graphics2D g2) |
protected void |
paintWeatherURLFloor(java.awt.Graphics2D g2,
java.awt.Dimension sizeMap) |
com.mindgene.d20.common.util.ImageProvider |
peekImageProvider() |
static java.util.List<com.mindgene.d20.common.geometry.Polygon> |
peekRelevantToFoW(java.util.List<com.mindgene.d20.common.geometry.Polygon> polygons)
These will be subtracted from the total shape
|
com.mindgene.d20.common.geometry.ShadowRepair |
peekRepair()
A shared repair object ONLY to be used by the Swing thread.
|
com.mindgene.d20.common.geometry.ShadowCaster |
peekShadows() |
void |
processASI(java.awt.Graphics2D g2,
com.mindgene.d20.common.map.scaling.AutoScalingImage asi) |
void |
rebuildCellsVisible() |
void |
recognizeResize(java.awt.Point offset) |
void |
redrawBuffers(boolean redraw) |
void |
refresh() |
void |
refreshInstrumentDropBar() |
void |
repaint_Instrument() |
void |
repaintFloor() |
java.awt.Shape |
resolveCreatureFootprintForTakingItems(AbstractCreatureInPlay creature) |
java.awt.Point |
resolveLocation_Cell(java.awt.event.MouseEvent me,
boolean allowOutOfBounds) |
float |
resolveMapLengthInCellsToPixelLength(float length) |
java.awt.geom.Point2D.Float |
resolveMapLocationFromPixelLocation(java.awt.Point pixelLocation) |
java.awt.Point |
resolvePixelLocationFromMapLocation(java.awt.geom.Point2D.Float mapLocation) |
void |
scheduleAnimation(com.mindgene.d20.common.map.animation.MapAnimation_Abstract animation,
int durationInMillis) |
void |
select(java.awt.Point pixelLocation,
int action) |
void |
select(java.awt.Rectangle cellsEffected,
int action) |
void |
setBlankness(javax.swing.JComponent blankness) |
void |
setSegmentation(double segments) |
protected boolean |
shouldDrawASI(com.mindgene.d20.common.map.scaling.AutoScalingImage asi) |
abstract boolean |
showDamage() |
abstract boolean |
showDamageNumeric() |
abstract boolean |
showHPZero() |
abstract boolean |
showStatus() |
void |
update(java.util.Observable o,
java.lang.Object arg) |
void |
zoomIn() |
void |
zoomOut() |
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
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, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, 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
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
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, 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, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public static volatile boolean invertRotation
protected M extends GenericMapModel _map
protected GenericMapViewState _state
protected final com.mindgene.d20.common.util.ImageProvider _imgProvider
protected com.mindgene.d20.common.init.GenericInitModel _init
protected java.awt.Dimension _sizeView
protected java.awt.Point _centerView
public GenericMapView(com.mindgene.d20.common.AbstractApp<?> app, com.mindgene.d20.common.init.GenericInitModel init, GenericMapConsoleView consoleView, boolean paintMaskBelowCreatures)
public java.lang.String getUnityFloorURL()
public final com.mindgene.d20.common.geometry.ShadowRepair peekRepair()
public com.mindgene.d20.common.util.ImageProvider peekImageProvider()
protected final void buildContent()
public void clearFloat()
public void assignGridVisible(boolean visible)
public int getGridScale()
public void zoomIn()
public void zoomOut()
public void makeBufferDirty()
public void makeBufferDirty_WallsOnly()
public void forcePaint()
public void assignMap(M map, GenericMapViewState state)
public void discardMap()
public boolean hasMap()
public com.mindgene.d20.common.AbstractApp<?> accessApp()
public M accessMap()
public GenericMapConsoleView accessConsoleView()
public java.util.ArrayList<AbstractCreatureInPlay> accessCreatures()
public java.util.ArrayList<AbstractCreatureInPlay> accessSelectedCreatures()
public GenericMapViewState accessState()
public java.util.List<PublicItemInPlay> accessItemsNearCreature(AbstractCreatureInPlay creature)
creature
- AbstractCreatureInPlaypublic java.awt.Shape resolveCreatureFootprintForTakingItems(AbstractCreatureInPlay creature)
public void scheduleAnimation(com.mindgene.d20.common.map.animation.MapAnimation_Abstract animation, int durationInMillis)
public void repaint_Instrument()
public final com.mindgene.d20.common.map.instrument.MapInstrument_Default accessInstrument()
public void refresh()
public void refreshInstrumentDropBar()
public void setSegmentation(double segments)
public void setBlankness(javax.swing.JComponent blankness)
protected final void paintComponent(java.awt.Graphics g)
paintComponent
in class javax.swing.JComponent
public java.awt.Image makeColorTransparent(java.awt.Image im, java.awt.Color color, float alpha)
protected abstract void paintMask(java.awt.Graphics2D g2, java.awt.Dimension sizeMap)
public void redrawBuffers(boolean redraw)
protected void paintHexGrid(java.awt.Graphics2D g2)
protected void paintGrid(java.awt.Graphics2D g2)
protected void paintASI(java.awt.Graphics2D g2)
protected boolean shouldDrawASI(com.mindgene.d20.common.map.scaling.AutoScalingImage asi)
public void processASI(java.awt.Graphics2D g2, com.mindgene.d20.common.map.scaling.AutoScalingImage asi)
protected boolean paintMapBoundary()
protected void paintMapBorder(java.awt.Graphics2D g2, java.awt.Dimension sizeMap)
protected void paintWeatherURLFloor(java.awt.Graphics2D g2, java.awt.Dimension sizeMap)
protected void paintURLFloor(java.awt.Graphics2D g2, java.awt.Dimension sizeMap)
protected void paintCell(java.awt.Graphics2D g2, java.awt.Rectangle cellBounds, short[][] floor, int x, int y)
g2
- protected void paintWalls(java.awt.Graphics2D g2)
protected void paintItems(java.awt.Graphics2D g2)
public abstract boolean showDamage()
public abstract boolean showDamageNumeric()
public abstract boolean showStatus()
public abstract boolean showHPZero()
protected void paintCreatures(java.awt.Graphics2D g2)
protected abstract boolean isCreatureVisible(AbstractCreatureInPlay creature)
protected abstract boolean isItemVisible(PublicItemInPlay creature)
public final java.awt.Rectangle getCellBounds(java.awt.Point cell)
public final java.awt.geom.Rectangle2D getCellBounds(java.awt.geom.Point2D cell)
public java.awt.Point resolvePixelLocationFromMapLocation(java.awt.geom.Point2D.Float mapLocation)
public java.awt.geom.Point2D.Float resolveMapLocationFromPixelLocation(java.awt.Point pixelLocation)
public float resolveMapLengthInCellsToPixelLength(float length)
public final java.awt.geom.Point2D.Double mapFromViewToWorld(java.awt.event.MouseEvent me, boolean allowOutOfBounds)
me
- allowOutOfBounds
- public final java.awt.geom.Point2D.Double mapFromViewToWorld(java.awt.Point p, boolean allowOutOfBounds)
public final java.awt.geom.Point2D.Double mapFromViewToWorld(double x, double y, boolean allowOutOfBounds)
x
- y
- allowOutOfBounds
- public final java.awt.geom.Point2D.Double mapFromWorldToPixel(double x, double y)
mapFromWorldToPixel
in interface com.mindgene.d20.common.map.SpaceMap
x
- y
- public static java.awt.geom.Point2D.Double mapFromWorldToPixel(double x, double y, float pixPerCell)
public final java.awt.geom.Point2D.Double mapFromPixelToWorld(double x, double y)
public final java.awt.geom.Point2D.Double mapFromWorldToView(java.awt.geom.Point2D.Double pointOnMap)
mapFromWorldToView
in interface com.mindgene.d20.common.map.SpaceMap
pointOnMap
- public final double getSegmentation()
public final java.awt.Rectangle getCellBounds(int cellX, int cellY)
public final java.awt.geom.Rectangle2D getCellBounds(double cellX, double cellY)
public final java.awt.Point getCellLocation(java.awt.Point cell)
cell
- public final java.awt.Point getCenterView()
public final java.awt.Point getVertex(int vX, int vY)
vX
- vY
- public final java.awt.Rectangle getFootprintBounds(java.awt.Rectangle footprint)
footprint
- the x, y, w, and h of the footprint.public final void applyFootprintBounds(java.awt.Rectangle footprint, java.awt.Rectangle target)
public final java.awt.Point getVertexCoord(java.awt.Point pixelLocation)
public final java.awt.Point getVertexCoord(java.awt.Point pixelLocation, boolean allowOutOfBounds)
pixelLocation
- null
if the location is off the mappublic final java.awt.Point getCellCoord(java.awt.Point pixelLocation)
pixelLocation
- null
if the location is off the map.public final java.awt.Point getCellCoord(java.awt.Point pixelLocation, boolean allowOffMap)
public final boolean isCellOnMap(int x, int y)
public final boolean isCellOnMap(double x, double y)
public java.awt.Point getCellCoordIncludingOutOfBounds(java.awt.Point pixelLocation)
pixelLocation
- public void update(java.util.Observable o, java.lang.Object arg)
update
in interface java.util.Observer
public final void rebuildCellsVisible()
public void select(java.awt.Rectangle cellsEffected, int action)
public void select(java.awt.Point pixelLocation, int action)
public void assignMobLocation(GenericMapObject mob, java.awt.Point location)
creature
- AbstractCreatureInPlaylocation
- Pointpublic final com.mindgene.d20.common.decision.DecisionQueueVC accessDecisionQueue()
public java.awt.Point getCreatureCoordClosestToLocation(AbstractCreatureInPlay creature, java.awt.Point location)
creature
- AbstractCreatureInPlaylocation
- Pointpublic final java.awt.Point resolveLocation_Cell(java.awt.event.MouseEvent me, boolean allowOutOfBounds)
public void demandMapMarker(MapMarker demandedMarker)
public void demandFoWPolygon(com.mindgene.d20.common.geometry.Polygon poly)
public static void goTranslucent(java.awt.Graphics2D g2, float alpha)
public static java.awt.Shape normalize(com.mindgene.d20.common.geometry.Polygon polygon)
protected final void paintCeilingOverlap(java.awt.Graphics2D g2, java.awt.Dimension mapSize, java.util.List<com.mindgene.d20.common.geometry.Polygon> polys, java.awt.Color fill)
public static java.util.List<com.mindgene.d20.common.geometry.Polygon> peekRelevantToFoW(java.util.List<com.mindgene.d20.common.geometry.Polygon> polygons)
public static java.awt.geom.Area buildNegativeAreaInMapSpace(java.awt.Dimension mapSize, java.util.List<com.mindgene.d20.common.geometry.Polygon> polys)
protected void paintEasyFOW(java.awt.Graphics2D g2, java.awt.Color fill)
public void recognizeResize(java.awt.Point offset)
public final void computeShadows()
public final com.mindgene.d20.common.geometry.ShadowCaster peekShadows()
public void repaintFloor()