00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 package com.realtime.crossfire.jxclient.faces;
00023
00024 import javax.swing.Icon;
00025 import org.jetbrains.annotations.NotNull;
00026 import org.jetbrains.annotations.Nullable;
00027
00036 public class Face {
00037
00041 public static final int SQUARE_SIZE = 32;
00042
00046 private final int faceNum;
00047
00051 @NotNull
00052 private final String faceName;
00053
00057 private final int faceChecksum;
00058
00062 private int tileWidth = 1;
00063
00067 private int tileHeight = 1;
00068
00072 @Nullable
00073 private FaceImages faceImages = null;
00074
00081 public Face(final int faceNum, @NotNull final String faceName, final int faceChecksum) {
00082 this.faceNum = faceNum;
00083 this.faceName = faceName;
00084 this.faceChecksum = faceChecksum;
00085 }
00086
00091 @SuppressWarnings("NullableProblems")
00092 public void setFaceImages(@NotNull final FaceImages faceImages) {
00093 this.faceImages = faceImages;
00094 final Icon imageIcon = faceImages.getOriginalImageIcon();
00095 final int width = imageIcon.getIconWidth();
00096 final int height = imageIcon.getIconHeight();
00097 tileWidth = (width+SQUARE_SIZE-1)/SQUARE_SIZE;
00098 tileHeight = (height+SQUARE_SIZE-1)/SQUARE_SIZE;
00099 }
00100
00105 public int getFaceNum() {
00106 return faceNum;
00107 }
00108
00114 @Nullable
00115 public FaceImages getFaceImages() {
00116 return faceImages;
00117 }
00118
00123 @NotNull
00124 public String getFaceName() {
00125 return faceName;
00126 }
00127
00132 public int getFaceChecksum() {
00133 return faceChecksum;
00134 }
00135
00139 @NotNull
00140 @Override
00141 public String toString() {
00142 return faceName;
00143 }
00144
00149 public int getTileWidth() {
00150 return tileWidth;
00151 }
00152
00157 public int getTileHeight() {
00158 return tileHeight;
00159 }
00160
00164 @Override
00165 public int hashCode() {
00166 return faceChecksum;
00167 }
00168
00172 @Override
00173 public boolean equals(@Nullable final Object obj) {
00174 if (obj == null) {
00175 return false;
00176 }
00177 if (obj.getClass() != Face.class) {
00178 return false;
00179 }
00180 final Face face = (Face)obj;
00181 return faceNum == face.faceNum;
00182 }
00183
00184 }