20 package net.sf.gridarta.var.crossfire.gui.map.renderer;
22 import java.awt.Color;
23 import java.awt.Dimension;
24 import java.awt.Graphics;
25 import java.awt.Point;
26 import java.awt.Rectangle;
27 import java.awt.image.BufferedImage;
28 import java.util.Collection;
29 import java.util.HashSet;
49 import org.jetbrains.annotations.NotNull;
50 import org.jetbrains.annotations.Nullable;
118 private final Rectangle
tmpRec =
new Rectangle();
128 public void gridVisibleChanged(
final boolean gridVisible) {
133 public void lightVisibleChanged(
final boolean lightVisible) {
138 public void smoothingChanged(
final boolean smoothing) {
143 public void tileStretchingChanged(
final boolean tileStretching) {
148 public void doubleFacesChanged(
final boolean doubleFaces) {
153 public void alphaTypeChanged(
final int alphaType) {
158 public void editTypeChanged(
final int editType) {
163 public void autojoinChanged(
final boolean autojoin) {
176 public void mapSizeChanged(@NotNull
final Size2D newSize) {
182 final Collection<MapSquare<GameObject, MapArchObject, Archetype>> toRepaint =
new HashSet<>();
184 getSquaresToRepaint(mapSquare, toRepaint);
192 public void mapObjectsChanged(@NotNull
final Set<GameObject> gameObjects, @NotNull
final Set<GameObject> transientGameObjects) {
193 final Collection<MapSquare<GameObject, MapArchObject, Archetype>> toRepaint =
new HashSet<>();
194 addMapSquares(gameObjects, toRepaint);
195 addMapSquares(transientGameObjects, toRepaint);
209 if (!gameObject.isInContainer()) {
212 if (square !=
null) {
213 getSquaresToRepaint(square, toRepaint);
229 final Point point =
new Point();
230 for (
int dx = -1; dx <= 1; dx++) {
231 for (
int dy = -1; dy <= 1; dy++) {
232 mapSquare.getMapLocation(point, dx, dy);
234 toRepaint.add(
mapModel.getMapSquare(point));
239 toRepaint.add(mapSquare);
249 public void mapFileChanged(@Nullable
final MapFile oldMapFile) {
254 public void modifiedChanged() {
267 public void mapGridChanged(@NotNull
final MapGridEvent e) {
274 public void mapGridResized(@NotNull
final MapGridEvent e) {
295 mapSize = this.mapModel.getMapArchObject().getMapSize();
300 setToolTipText(
"dummy");
334 final BufferedImage bufImage =
new BufferedImage(viewWidth, viewHeight, BufferedImage.TYPE_INT_ARGB);
335 final Graphics graphics = bufImage.getGraphics();
337 graphics.setColor(Color.white);
338 graphics.fillRect(0, 0, viewWidth, viewHeight);
381 final Point pos = square.getMapLocation();
394 protected void paintComponent(@NotNull
final Graphics graphics,
final boolean isSnapshot,
final boolean checkClip) {
395 graphics.setColor(getBackground());
396 graphics.fillRect(0, 0, getWidth(), getHeight());
410 protected void paintSquareGrid(@NotNull
final Graphics graphics, @NotNull
final Point point) {
434 private void paintMap(@NotNull
final Graphics graphics,
final boolean checkClip) {
473 final int mapWidth = tmpMapSize.
getWidth();
474 final int mapHeight = tmpMapSize.
getHeight();
475 for (
int x = 0; x <= mapWidth; x++) {
478 for (
int y = 0; y <= mapHeight; y++) {
488 if (x < 0 || y < 0) {
497 retPoint.setLocation(xm, ym);
525 setPreferredSize(forcedSize);
526 setMinimumSize(forcedSize);
535 protected abstract void updateSquare(@NotNull Point point);
541 protected abstract void updateSquares(@NotNull Rectangle rectangle);