Gridarta Editor
MapArchObject.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2015 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.model.maparchobject;
21 
23 import org.jetbrains.annotations.NotNull;
24 import org.jetbrains.annotations.Nullable;
25 
39 public class MapArchObject extends AbstractMapArchObject<MapArchObject> {
40 
44  private static final long serialVersionUID = 1L;
45 
50  private final StringBuilder loreText = new StringBuilder();
51 
56  private boolean unique;
57 
62  private boolean template;
63 
68  private boolean noSmooth;
69 
74  private int temperature;
75 
80  private int pressure;
81 
86  private int humidity;
87 
92  private int windSpeed;
93 
98  private int windDirection;
99 
104  private int sky;
105 
110  @NotNull
111  private String shopItems;
112 
117  @NotNull
118  private String shopRace;
119 
124  private double shopGreed;
125 
130  private int shopMin;
131 
136  private int shopMax;
137 
142  @NotNull
143  private String region;
144 
149  @NotNull
150  private String backgroundMusic;
151 
156  private int firstLoad;
157 
162  @NotNull
163  private String resetGroup;
164 
168  public MapArchObject() {
169  region = "";
170  backgroundMusic = "";
171  shopRace = "";
172  shopItems = "";
173  resetGroup = "";
174  }
175 
180  private MapArchObject(@NotNull final MapArchObject mapArchObject) {
181  super(mapArchObject);
182  loreText.append(mapArchObject.loreText);
183  unique = mapArchObject.unique;
184  template = mapArchObject.template;
185  noSmooth = mapArchObject.noSmooth;
186  temperature = mapArchObject.temperature;
187  pressure = mapArchObject.pressure;
188  humidity = mapArchObject.humidity;
189  windSpeed = mapArchObject.windSpeed;
190  windDirection = mapArchObject.windDirection;
191  sky = mapArchObject.sky;
192  shopItems = mapArchObject.shopItems;
193  shopRace = mapArchObject.shopRace;
194  shopGreed = mapArchObject.shopGreed;
195  shopMin = mapArchObject.shopMin;
196  shopMax = mapArchObject.shopMax;
197  region = mapArchObject.region;
198  backgroundMusic = mapArchObject.backgroundMusic;
199  firstLoad = mapArchObject.firstLoad;
200  resetGroup = mapArchObject.resetGroup;
201  }
202 
203  @Override
204  public void setState(@NotNull final MapArchObject mapArchObject) {
205  super.setState(mapArchObject);
206  setLore(mapArchObject.loreText.toString());
207  setUnique(mapArchObject.unique);
208  setTemplate(mapArchObject.template);
209  setNoSmooth(mapArchObject.noSmooth);
210  setTemperature(mapArchObject.temperature);
211  setPressure(mapArchObject.pressure);
212  setHumidity(mapArchObject.humidity);
213  setWindSpeed(mapArchObject.windSpeed);
214  setWindDirection(mapArchObject.windDirection);
215  setSky(mapArchObject.sky);
216  setShopItems(mapArchObject.shopItems);
217  setShopRace(mapArchObject.shopRace);
218  setShopGreed(mapArchObject.shopGreed);
219  setShopMin(mapArchObject.shopMin);
220  setShopMax(mapArchObject.shopMax);
221  setRegion(mapArchObject.region);
222  setBackgroundMusic(mapArchObject.backgroundMusic);
223  setFirstLoad(mapArchObject.firstLoad);
224  setResetGroup(mapArchObject.resetGroup);
225  }
226 
231  public boolean isUnique() {
232  return unique;
233  }
234 
239  public void setUnique(final boolean unique) {
240  if (this.unique == unique) {
241  return;
242  }
243 
244  this.unique = unique;
245  setModified();
246  }
247 
252  public boolean isTemplate() {
253  return template;
254  }
255 
260  public void setTemplate(final boolean template) {
261  if (this.template == template) {
262  return;
263  }
264 
265  this.template = template;
266  setModified();
267  }
268 
273  public boolean isNoSmooth() {
274  return noSmooth;
275  }
276 
281  public void setNoSmooth(final boolean noSmooth) {
282  if (this.noSmooth == noSmooth) {
283  return;
284  }
285 
286  this.noSmooth = noSmooth;
287  setModified();
288  }
289 
294  @NotNull
295  public String getRegion() {
296  return region;
297  }
298 
303  public void setRegion(@NotNull final String region) {
304  final String trimmedRegion = region.trim();
305  if (this.region.equals(trimmedRegion)) {
306  return;
307  }
308 
309  this.region = trimmedRegion;
310  setModified();
311  }
312 
317  @NotNull
318  public String getBackgroundMusic() {
319  return backgroundMusic;
320  }
321 
326  public void setBackgroundMusic(@NotNull final String backgroundMusic) {
327  final String trimmedBackgroundMusic = backgroundMusic.trim();
328  if (this.backgroundMusic.equals(trimmedBackgroundMusic)) {
329  return;
330  }
331 
332  this.backgroundMusic = trimmedBackgroundMusic;
333  setModified();
334  }
335 
340  @NotNull
341  public String getShopItems() {
342  return shopItems;
343  }
344 
349  public void setShopItems(@NotNull final String shopItems) {
350  final String trimmedShopItems = shopItems.trim();
351  if (this.shopItems.equals(trimmedShopItems)) {
352  return;
353  }
354 
355  this.shopItems = trimmedShopItems;
356  setModified();
357  }
358 
363  @NotNull
364  public String getShopRace() {
365  return shopRace;
366  }
367 
372  public void setShopRace(@NotNull final String shopRace) {
373  final String trimmedShopRace = shopRace.trim();
374  if (this.shopRace.equals(trimmedShopRace)) {
375  return;
376  }
377 
378  this.shopRace = shopRace;
379  setModified();
380  }
381 
386  public int getShopMin() {
387  return shopMin;
388  }
389 
394  public void setShopMin(final int shopMin) {
395  if (this.shopMin == shopMin) {
396  return;
397  }
398 
399  this.shopMin = shopMin;
400  setModified();
401  }
402 
407  public int getShopMax() {
408  return shopMax;
409  }
410 
415  public void setShopMax(final int shopMax) {
416  if (this.shopMax == shopMax) {
417  return;
418  }
419 
420  this.shopMax = shopMax;
421  setModified();
422  }
423 
428  public double getShopGreed() {
429  return shopGreed;
430  }
431 
436  public void setShopGreed(final double shopGreed) {
437  // FloatingPointEquality is okay here - no delta needed.
438  //noinspection FloatingPointEquality
439  if (this.shopGreed == shopGreed) {
440  return;
441  }
442 
443  this.shopGreed = shopGreed;
444  setModified();
445  }
446 
451  public int getTemperature() {
452  return temperature;
453  }
454 
459  public void setTemperature(final int temperature) {
460  if (this.temperature == temperature) {
461  return;
462  }
463 
464  this.temperature = temperature;
465  setModified();
466  }
467 
472  public int getPressure() {
473  return pressure;
474  }
475 
480  public void setPressure(final int pressure) {
481  if (this.pressure == pressure) {
482  return;
483  }
484 
485  this.pressure = pressure;
486  setModified();
487  }
488 
493  public int getHumidity() {
494  return humidity;
495  }
496 
501  public void setHumidity(final int humidity) {
502  if (this.humidity == humidity) {
503  return;
504  }
505 
506  this.humidity = humidity;
507  setModified();
508  }
509 
514  public int getWindSpeed() {
515  return windSpeed;
516  }
517 
522  public void setWindSpeed(final int windSpeed) {
523  if (this.windSpeed == windSpeed) {
524  return;
525  }
526 
527  this.windSpeed = windSpeed;
528  setModified();
529  }
530 
535  public int getWindDirection() {
536  return windDirection;
537  }
538 
543  public void setWindDirection(final int windDirection) {
544  if (this.windDirection == windDirection) {
545  return;
546  }
547 
548  this.windDirection = windDirection;
549  setModified();
550  }
551 
556  public int getSky() {
557  return sky;
558  }
559 
564  public void setSky(final int sky) {
565  if (this.sky == sky) {
566  return;
567  }
568 
569  this.sky = sky;
570  setModified();
571  }
572 
577  public void addLore(@NotNull final String text) {
578  if (text.isEmpty()) {
579  return;
580  }
581 
582  loreText.append(text);
583  setModified();
584  }
585 
590  public void setLore(@NotNull final String text) {
591  if (loreText.toString().equals(text)) {
592  return;
593  }
594 
595  loreText.delete(0, loreText.length());
596  loreText.append(text);
597  setModified();
598  }
599 
604  @NotNull
605  public String getLore() {
606  return loreText.toString();
607  }
608 
609  @Override
610  public void setDifficulty(final int difficulty) {
611  super.setDifficulty(Math.max(difficulty, 0));
612  }
613 
618  public int getFirstLoad() {
619  return firstLoad;
620  }
621 
626  public void setFirstLoad(final int firstLoad) {
627  if (this.firstLoad == firstLoad) {
628  return;
629  }
630 
631  this.firstLoad = firstLoad;
632  setModified();
633  }
634 
639  @NotNull
640  public String getResetGroup() {
641  return resetGroup;
642  }
643 
648  public void setResetGroup(@NotNull final String resetGroup) {
649  if (this.resetGroup.equals(resetGroup)) {
650  return;
651  }
652 
653  this.resetGroup = resetGroup;
654  setModified();
655  }
656 
657  @SuppressWarnings("FloatingPointEquality")
658  @Override
659  public boolean equals(@Nullable final Object obj) {
660  if (obj == this) {
661  return true;
662  }
663  if (obj == null || obj.getClass() != getClass()) {
664  return false;
665  }
666  final MapArchObject mapArchObject = (MapArchObject) obj;
667  return super.equals(obj) && mapArchObject.loreText.toString().equals(loreText.toString()) && mapArchObject.unique == unique && mapArchObject.template == template && mapArchObject.noSmooth == noSmooth && mapArchObject.temperature == temperature && mapArchObject.pressure == pressure && mapArchObject.humidity == humidity && mapArchObject.windSpeed == windSpeed && mapArchObject.windDirection == windDirection && mapArchObject.sky == sky && mapArchObject.shopItems.equals(shopItems) && mapArchObject.shopRace.equals(shopRace) && mapArchObject.shopGreed == shopGreed && mapArchObject.shopMin == shopMin && mapArchObject.shopMax == shopMax && mapArchObject.region.equals(region) && mapArchObject.backgroundMusic.equals(backgroundMusic) && mapArchObject.firstLoad == firstLoad && mapArchObject.resetGroup.equals(resetGroup);
668  }
669 
670  @Override
671  public int hashCode() {
672  return super.hashCode() + loreText.hashCode() + (unique ? 1 : 0) + (template ? 2 : 0) + (noSmooth ? 8 : 0) + temperature + pressure + humidity + windSpeed + windDirection + sky + shopItems.hashCode() + shopRace.hashCode() + (int) shopGreed + shopMin + shopMax + region.hashCode() + backgroundMusic.hashCode() + firstLoad + resetGroup.hashCode();
673  }
674 
675  @NotNull
676  @Override
678  return new MapArchObject(this);
679  }
680 
681 }
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getTemperature
int getTemperature()
Definition: MapArchObject.java:451
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.shopMin
int shopMin
Definition: MapArchObject.java:130
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.region
String region
Definition: MapArchObject.java:143
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.hashCode
int hashCode()
Definition: MapArchObject.java:671
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.template
boolean template
Definition: MapArchObject.java:62
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getResetGroup
String getResetGroup()
Definition: MapArchObject.java:640
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getShopItems
String getShopItems()
Definition: MapArchObject.java:341
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setSky
void setSky(final int sky)
Definition: MapArchObject.java:564
net.sf.gridarta
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.temperature
int temperature
Definition: MapArchObject.java:74
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setWindDirection
void setWindDirection(final int windDirection)
Definition: MapArchObject.java:543
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.unique
boolean unique
Definition: MapArchObject.java:56
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getShopMax
int getShopMax()
Definition: MapArchObject.java:407
net.sf
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.loreText
final StringBuilder loreText
Definition: MapArchObject.java:50
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getSky
int getSky()
Definition: MapArchObject.java:556
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setWindSpeed
void setWindSpeed(final int windSpeed)
Definition: MapArchObject.java:522
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setNoSmooth
void setNoSmooth(final boolean noSmooth)
Definition: MapArchObject.java:281
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getRegion
String getRegion()
Definition: MapArchObject.java:295
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.MapArchObject
MapArchObject(@NotNull final MapArchObject mapArchObject)
Definition: MapArchObject.java:180
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setTemperature
void setTemperature(final int temperature)
Definition: MapArchObject.java:459
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.windDirection
int windDirection
Definition: MapArchObject.java:98
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.noSmooth
boolean noSmooth
Definition: MapArchObject.java:68
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getHumidity
int getHumidity()
Definition: MapArchObject.java:493
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.isTemplate
boolean isTemplate()
Definition: MapArchObject.java:252
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.equals
boolean equals(@Nullable final Object obj)
Definition: MapArchObject.java:659
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setPressure
void setPressure(final int pressure)
Definition: MapArchObject.java:480
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.serialVersionUID
static final long serialVersionUID
Definition: MapArchObject.java:44
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getWindSpeed
int getWindSpeed()
Definition: MapArchObject.java:514
net.sf.gridarta.model.maparchobject.AbstractMapArchObject.difficulty
int difficulty
Definition: AbstractMapArchObject.java:126
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.isNoSmooth
boolean isNoSmooth()
Definition: MapArchObject.java:273
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.resetGroup
String resetGroup
Definition: MapArchObject.java:163
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.createClone
MapArchObject createClone()
Definition: MapArchObject.java:677
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setBackgroundMusic
void setBackgroundMusic(@NotNull final String backgroundMusic)
Definition: MapArchObject.java:326
net
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.backgroundMusic
String backgroundMusic
Definition: MapArchObject.java:150
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject
Definition: MapArchObject.java:39
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.shopMax
int shopMax
Definition: MapArchObject.java:136
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setShopMin
void setShopMin(final int shopMin)
Definition: MapArchObject.java:394
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.sky
int sky
Definition: MapArchObject.java:104
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setState
void setState(@NotNull final MapArchObject mapArchObject)
Definition: MapArchObject.java:204
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getBackgroundMusic
String getBackgroundMusic()
Definition: MapArchObject.java:318
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.MapArchObject
MapArchObject()
Definition: MapArchObject.java:168
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setHumidity
void setHumidity(final int humidity)
Definition: MapArchObject.java:501
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setLore
void setLore(@NotNull final String text)
Definition: MapArchObject.java:590
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getLore
String getLore()
Definition: MapArchObject.java:605
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setShopMax
void setShopMax(final int shopMax)
Definition: MapArchObject.java:415
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setShopGreed
void setShopGreed(final double shopGreed)
Definition: MapArchObject.java:436
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.windSpeed
int windSpeed
Definition: MapArchObject.java:92
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setFirstLoad
void setFirstLoad(final int firstLoad)
Definition: MapArchObject.java:626
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setShopItems
void setShopItems(@NotNull final String shopItems)
Definition: MapArchObject.java:349
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getWindDirection
int getWindDirection()
Definition: MapArchObject.java:535
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getShopRace
String getShopRace()
Definition: MapArchObject.java:364
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setDifficulty
void setDifficulty(final int difficulty)
Definition: MapArchObject.java:610
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.firstLoad
int firstLoad
Definition: MapArchObject.java:156
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.shopRace
String shopRace
Definition: MapArchObject.java:118
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setUnique
void setUnique(final boolean unique)
Definition: MapArchObject.java:239
net.sf.gridarta.model
net.sf.gridarta.model.maparchobject.AbstractMapArchObject.setModified
void setModified()
Definition: AbstractMapArchObject.java:491
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.pressure
int pressure
Definition: MapArchObject.java:80
net.sf.gridarta.model.maparchobject.AbstractMapArchObject
Definition: AbstractMapArchObject.java:46
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.humidity
int humidity
Definition: MapArchObject.java:86
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.addLore
void addLore(@NotNull final String text)
Definition: MapArchObject.java:577
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.shopItems
String shopItems
Definition: MapArchObject.java:111
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setResetGroup
void setResetGroup(@NotNull final String resetGroup)
Definition: MapArchObject.java:648
net.sf.gridarta.model.maparchobject
Definition: AbstractMapArchObject.java:20
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setShopRace
void setShopRace(@NotNull final String shopRace)
Definition: MapArchObject.java:372
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getShopMin
int getShopMin()
Definition: MapArchObject.java:386
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setTemplate
void setTemplate(final boolean template)
Definition: MapArchObject.java:260
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getFirstLoad
int getFirstLoad()
Definition: MapArchObject.java:618
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.isUnique
boolean isUnique()
Definition: MapArchObject.java:231
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getPressure
int getPressure()
Definition: MapArchObject.java:472
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.setRegion
void setRegion(@NotNull final String region)
Definition: MapArchObject.java:303
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.shopGreed
double shopGreed
Definition: MapArchObject.java:124
net.sf.gridarta.var.crossfire.model.maparchobject.MapArchObject.getShopGreed
double getShopGreed()
Definition: MapArchObject.java:428