Gridarta Editor
FlatPickmapRenderer.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2023 The Gridarta Developers.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 package net.sf.gridarta.var.crossfire.gui.map.renderer;
21 
22 import java.awt.Dimension;
23 import java.awt.Graphics;
24 import java.awt.Point;
25 import java.awt.Rectangle;
26 import javax.swing.ImageIcon;
39 import org.jetbrains.annotations.NotNull;
40 
46 
50  private static final long serialVersionUID = 1L;
51 
63  setBackground(CommonConstants.BG_COLOR);
64  init();
65  }
66 
67  @Override
68  protected void updateSquare(@NotNull final Point point) {
69  // nothing to do
70  }
71 
72  @Override
73  protected void updateSquares(@NotNull final Rectangle rectangle) {
74  // nothing to do
75  }
76 
77  @Override
78  protected void updateAll() {
79  // nothing to do
80  }
81 
82  @Override
83  public void paintComponent(@NotNull final Graphics g) {
84  paintComponent(g, false, true);
85  }
86 
87  @Override
88  protected void resizeBackBuffer(@NotNull final Dimension size) {
89  }
90 
91  @Override
92  protected void paintSquare(@NotNull final Graphics g, final int x, final int y, @NotNull final MapSquare<GameObject, MapArchObject, Archetype> square) {
93  g.setColor(getBackground());
95  if (square.isEmpty()) {
96  return;
97  }
98 
99  for (final BaseObject<?, ?, ?, ?> node : square) {
100  final ImageIcon img = node.getNormalImage();
101  final int xx;
102  final int yy;
103  if (!node.isMulti() || (img.getIconWidth() == IGUIConstants.SQUARE_WIDTH && img.getIconHeight() == IGUIConstants.SQUARE_HEIGHT)) {
104  xx = 0;
105  yy = 0;
106  } else {
107  // this is an oversized image, so it must be shifted
108  xx = IGUIConstants.SQUARE_WIDTH * (node.getArchetype().getMultiX() - node.getMinX());
109  yy = IGUIConstants.SQUARE_HEIGHT * (node.getArchetype().getMultiY() - node.getMinY());
110  }
111  g.drawImage(img.getImage(), x, y, x + IGUIConstants.SQUARE_WIDTH, y + IGUIConstants.SQUARE_HEIGHT, xx, yy, xx + IGUIConstants.SQUARE_WIDTH, yy + IGUIConstants.SQUARE_HEIGHT, this);
112  }
113  }
114 
115 }
net.sf.gridarta.var.crossfire.gui.map.renderer.FlatPickmapRenderer.updateAll
void updateAll()
Callback function that is called when any square may have changed.
Definition: FlatPickmapRenderer.java:78
net.sf.gridarta.var.crossfire.gui.map.renderer.FlatPickmapRenderer.updateSquares
void updateSquares(@NotNull final Rectangle rectangle)
Callback function that is called when multiple squares may have changed.
Definition: FlatPickmapRenderer.java:73
net.sf.gridarta.model.mapmodel.MapModel
A MapModel reflects the data of a map.
Definition: MapModel.java:75
net.sf.gridarta.var.crossfire.gui.map.renderer.FlatPickmapRenderer.paintSquare
void paintSquare(@NotNull final Graphics g, final int x, final int y, @NotNull final MapSquare< GameObject, MapArchObject, Archetype > square)
Paints one square.
Definition: FlatPickmapRenderer.java:92
net.sf.gridarta.var.crossfire.model.archetype
Definition: Archetype.java:20
net.sf.gridarta
Base package of all Gridarta classes.
net.sf.gridarta.model.mapmodel.MapSquare
A single Map Square.
Definition: MapSquare.java:45
net.sf.gridarta.model.mapviewsettings
Definition: AbstractMapViewSettings.java:20
net.sf
net.sf.gridarta.model.mapmodel
Definition: AboveFloorInsertionMode.java:20
net.sf.gridarta.utils.CommonConstants
Class with constants used in Gridarta and derivates.
Definition: CommonConstants.java:28
net.sf.gridarta.gui.map.renderer
Definition: AbstractIsoMapRenderer.java:20
net.sf.gridarta.model.mapviewsettings.MapViewSettings
Container for settings that affect the rendering of maps.
Definition: MapViewSettings.java:30
net.sf.gridarta.var
net.sf.gridarta.var.crossfire.gui.map.renderer.AbstractFlatMapRenderer.gridMapSquarePainter
final GridMapSquarePainter gridMapSquarePainter
The GridMapSquarePainter to use.
Definition: AbstractFlatMapRenderer.java:85
net.sf.gridarta.var.crossfire.gui.map.renderer.AbstractFlatMapRenderer
This is the default renderer of a map.
Definition: AbstractFlatMapRenderer.java:59
net.sf.gridarta.gui.map.renderer.GridMapSquarePainter
Paints overlays for map grids.
Definition: GridMapSquarePainter.java:34
net.sf.gridarta.gui
Graphical User Interface of Gridarta.
net.sf.gridarta.gui.map.renderer.AbstractMapRenderer.gameObjectParser
final GameObjectParser< G, A, R > gameObjectParser
The GameObjectParser for creating tooltip information or.
Definition: AbstractMapRenderer.java:75
net.sf.gridarta.var.crossfire.IGUIConstants
Defines common UI constants used in different dialogs and all used icon files.
Definition: IGUIConstants.java:30
net
net.sf.gridarta.var.crossfire.model.archetype.Archetype
Implements Crossfire archetypes.
Definition: Archetype.java:30
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject
MapArchObject contains the specific meta data about a map that is stored in the map-arch,...
Definition: MapArchObject.java:39
net.sf.gridarta.var.crossfire.gui.map.renderer.AbstractFlatMapRenderer.mapGrid
final MapGrid mapGrid
The MapGrid to render.
Definition: AbstractFlatMapRenderer.java:98
net.sf.gridarta.utils.CommonConstants.BG_COLOR
static final Color BG_COLOR
Background Color (for the Panels).
Definition: CommonConstants.java:38
net.sf.gridarta.var.crossfire
Main package of Gridarta4Crossfire, contains all classes specific to the Crossfire version of the Gri...
net.sf.gridarta.var.crossfire.gui.map.renderer.AbstractFlatMapRenderer.mapModel
final MapModel< GameObject, MapArchObject, Archetype > mapModel
The MapModel to render.
Definition: AbstractFlatMapRenderer.java:79
net.sf.gridarta.var.crossfire.gui.map.renderer.AbstractFlatMapRenderer.mapViewSettings
final MapViewSettings mapViewSettings
The MapViewSettings instance to use.
Definition: AbstractFlatMapRenderer.java:111
net.sf.gridarta.var.crossfire.model
net.sf.gridarta.var.crossfire.IGUIConstants.SQUARE_WIDTH
int SQUARE_WIDTH
The width of a square in pixels.
Definition: IGUIConstants.java:35
net.sf.gridarta.var.crossfire.gui.map.renderer.FlatPickmapRenderer.serialVersionUID
static final long serialVersionUID
Serial Version UID.
Definition: FlatPickmapRenderer.java:50
net.sf.gridarta.model.baseobject.BaseObject
Definition: BaseObject.java:34
net.sf.gridarta.model.io
Reading and writing of maps, handling of paths.
Definition: AbstractAnimationObjectsReader.java:20
net.sf.gridarta.model.mapgrid.MapGrid
2D-Grid containing flags for selection, pre-selection, cursor, warnings and errors.
Definition: MapGrid.java:46
net.sf.gridarta.model.mapgrid
Definition: MapGrid.java:20
net.sf.gridarta.model
net.sf.gridarta.model.baseobject
Definition: AbstractBaseObject.java:20
net.sf.gridarta.var.crossfire.model.maparchobject
Definition: DefaultMapArchObjectFactory.java:20
net.sf.gridarta.gui.map
Base classes for rendering maps.
Definition: AbstractPerMapDialogManager.java:20
net.sf.gridarta.var.crossfire.model.gameobject
Handles the Crossfire variants of GameObjects and Archetypes.
Definition: DefaultGameObjectFactory.java:20
net.sf.gridarta.var.crossfire.gui.map.renderer.FlatPickmapRenderer.paintComponent
void paintComponent(@NotNull final Graphics g)
@noinspection AbstractMethodOverridesConcreteMethod
Definition: FlatPickmapRenderer.java:83
net.sf.gridarta.var.crossfire.model.gameobject.GameObject
Handles the Crossfire GameObjects.
Definition: GameObject.java:41
net.sf.gridarta.var.crossfire.gui.map.renderer.AbstractFlatMapRenderer.init
void init()
Finishes initialization of this instance.
Definition: AbstractFlatMapRenderer.java:308
net.sf.gridarta.model.io.GameObjectParser
Interface for classes that read or write GameObject instances.
Definition: GameObjectParser.java:37
net.sf.gridarta.var.crossfire.gui.map.renderer.FlatPickmapRenderer.FlatPickmapRenderer
FlatPickmapRenderer(@NotNull final MapViewSettings mapViewSettings, @NotNull final MapModel< GameObject, MapArchObject, Archetype > mapModel, @NotNull final MapGrid mapGrid, @NotNull final GridMapSquarePainter gridMapSquarePainter, @NotNull final GameObjectParser< GameObject, MapArchObject, Archetype > gameObjectParser)
Creates a new instance.
Definition: FlatPickmapRenderer.java:61
net.sf.gridarta.var.crossfire.gui.map.renderer.FlatPickmapRenderer.resizeBackBuffer
void resizeBackBuffer(@NotNull final Dimension size)
Resizes the backing buffer to the new grid size.
Definition: FlatPickmapRenderer.java:88
net.sf.gridarta.utils
Definition: ActionBuilderUtils.java:20
net.sf.gridarta.var.crossfire.IGUIConstants.SQUARE_HEIGHT
int SQUARE_HEIGHT
The height of a square in pixels.
Definition: IGUIConstants.java:40
net.sf.gridarta.var.crossfire.gui.map.renderer.FlatPickmapRenderer.updateSquare
void updateSquare(@NotNull final Point point)
Callback function that is called when a square may have changed.
Definition: FlatPickmapRenderer.java:68
net.sf.gridarta.var.crossfire.gui.map.renderer.FlatPickmapRenderer
A AbstractFlatMapRenderer to render map files.
Definition: FlatPickmapRenderer.java:45