9
0
mirror of https://github.com/Xiao-MoMi/Custom-Nameplates.git synced 2025-12-26 02:19:28 +00:00
Files
Custom-Nameplates/src/main/java/net/momirealms/customnameplates/objects/BackGround.java
Xiao-MoMi dfcaa8de09 2.0-PRE-1
2022-09-06 22:25:47 +08:00

142 lines
4.3 KiB
Java

/*
* Copyright (C) <2022> <XiaoMoMi>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package net.momirealms.customnameplates.objects;
import net.momirealms.customnameplates.font.FontNegative;
import net.momirealms.customnameplates.resource.ResourceManager;
import java.util.HashMap;
public record BackGround(String key, String start, String offset_1,
String offset_2, String offset_4, String offset_8,
String offset_16, String offset_32, String offset_64,
String offset_128, String end, int offset_y, int offset_x, int size) {
public String getBackGround(int n) {
n += offset_x;
String offset = FontNegative.getShortestNegChars(n);
StringBuilder stringBuilder = new StringBuilder();
HashMap<String, Character> chars = ResourceManager.BACKGROUNDS.get(key);
stringBuilder.append(chars.get(start));
if (n > 128) {
stringBuilder.append(FontNegative.NEG_1.getCharacter());
stringBuilder.append(chars.get(offset_128));
n -= 128;
if (n > 128) {
stringBuilder.append(FontNegative.NEG_1.getCharacter());
stringBuilder.append(chars.get(offset_128));
n -= 128;
if (n > 128) {
stringBuilder.append(FontNegative.NEG_1.getCharacter());
stringBuilder.append(chars.get(offset_128));
n -= 128;
}
}
}
if (n - 64 > 0) {
stringBuilder.append(FontNegative.NEG_1.getCharacter());
stringBuilder.append(chars.get(offset_64));
n -= 64;
}
if (n - 32 > 0) {
stringBuilder.append(FontNegative.NEG_1.getCharacter());
stringBuilder.append(chars.get(offset_32));
n -= 32;
}
if (n - 16 > 0) {
stringBuilder.append(FontNegative.NEG_1.getCharacter());
stringBuilder.append(chars.get(offset_16));
n -= 16;
}
if (n - 8 > 0) {
stringBuilder.append(FontNegative.NEG_1.getCharacter());
stringBuilder.append(chars.get(offset_8));
n -= 8;
}
if (n - 4 > 0) {
stringBuilder.append(FontNegative.NEG_1.getCharacter());
stringBuilder.append(chars.get(offset_4));
n -= 4;
}
if (n - 2 > 0) {
stringBuilder.append(FontNegative.NEG_1.getCharacter());
stringBuilder.append(chars.get(offset_2));
n -= 2;
}
if (n - 1 > 0) {
stringBuilder.append(FontNegative.NEG_1.getCharacter());
stringBuilder.append(chars.get(offset_1));
}
stringBuilder.append(FontNegative.NEG_1.getCharacter());
stringBuilder.append(chars.get(end)).append(offset);
return stringBuilder.toString();
}
public String getStart() {
return start;
}
public String getEnd() {
return end;
}
public int getOffset_y() {
return offset_y;
}
public String getOffset_1() {
return offset_1;
}
public String getOffset_2() {
return offset_2;
}
public String getOffset_4() {
return offset_4;
}
public String getOffset_8() {
return offset_8;
}
public String getOffset_16() {
return offset_16;
}
public String getOffset_32() {
return offset_32;
}
public String getOffset_64() {
return offset_64;
}
public String getOffset_128() {
return offset_128;
}
public String getKey() {
return key;
}
public int getSize() {
return size;
}
}