mirror of
https://github.com/Xiao-MoMi/Custom-Nameplates.git
synced 2025-12-19 15:09:23 +00:00
improve shaders
This commit is contained in:
@@ -421,7 +421,7 @@ public abstract class AbstractCNPlayer implements CNPlayer {
|
||||
|
||||
@Override
|
||||
public Set<Integer> getTrackedPassengerIds(CNPlayer another) {
|
||||
return Optional.ofNullable(trackers.get(another)).map(tracker -> new HashSet<>(tracker.getPassengerIDs())).orElse(new HashSet<>());
|
||||
return Optional.ofNullable(trackers.get(another)).map(Tracker::getPassengerIDs).orElse(new HashSet<>());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -209,6 +209,10 @@ public class AdventureHelper {
|
||||
return "<#FFFEFD>" + text + "</#FFFEFD>";
|
||||
}
|
||||
|
||||
public static String removeShadow(String text) {
|
||||
return "<#F0F0F0>" + text + "</#F0F0F0>";
|
||||
}
|
||||
|
||||
/**
|
||||
* Surrounds text with a MiniMessage font tag.
|
||||
*
|
||||
|
||||
@@ -19,9 +19,8 @@ package net.momirealms.customnameplates.api.network;
|
||||
|
||||
import net.momirealms.customnameplates.api.CNPlayer;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
public class Tracker {
|
||||
|
||||
@@ -29,7 +28,7 @@ public class Tracker {
|
||||
private double scale;
|
||||
private final CNPlayer tracker;
|
||||
|
||||
private final Set<Integer> passengerIDs = Collections.synchronizedSet(new HashSet<>());
|
||||
private final CopyOnWriteArrayList<Integer> passengerIDs = new CopyOnWriteArrayList<>();
|
||||
|
||||
/**
|
||||
* Constructs a new Tracker for the specified player.
|
||||
@@ -63,15 +62,15 @@ public class Tracker {
|
||||
}
|
||||
|
||||
public void addPassengerID(int passengerID) {
|
||||
passengerIDs.add(passengerID);
|
||||
this.passengerIDs.add(passengerID);
|
||||
}
|
||||
|
||||
public void removePassengerID(int passengerID) {
|
||||
passengerIDs.remove(passengerID);
|
||||
this.passengerIDs.remove((Object) passengerID);
|
||||
}
|
||||
|
||||
public Set<Integer> getPassengerIDs() {
|
||||
return passengerIDs;
|
||||
return new HashSet<>(passengerIDs);
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
|
||||
@@ -31,23 +31,25 @@ public class AdaptiveImageText<T extends AdaptiveImage> {
|
||||
private final String id;
|
||||
private final String text;
|
||||
private final T t;
|
||||
private final boolean removeShadow;
|
||||
private final boolean removeShadowOld;
|
||||
private final boolean removeShadowNew;
|
||||
private final PreParsedDynamicText preParsedDynamicText;
|
||||
private final int leftMargin;
|
||||
private final int rightMargin;
|
||||
|
||||
public AdaptiveImageText(String id, String text, T t, boolean removeShadow, int leftMargin, int rightMargin) {
|
||||
public AdaptiveImageText(String id, String text, T t, boolean removeShadowOld, boolean removeShadowNew, int rightMargin, int leftMargin) {
|
||||
this.text = text;
|
||||
this.id = id;
|
||||
this.t = t;
|
||||
this.removeShadow = removeShadow;
|
||||
this.removeShadowOld = removeShadowOld;
|
||||
this.removeShadowNew = removeShadowNew;
|
||||
this.preParsedDynamicText = new PreParsedDynamicText(text);
|
||||
this.leftMargin = leftMargin;
|
||||
this.rightMargin = rightMargin;
|
||||
}
|
||||
|
||||
public static <T extends AdaptiveImage> AdaptiveImageText<T> create(String id, final String text, final T t, final boolean removeShadow, int leftMargin, int rightMargin) {
|
||||
return new AdaptiveImageText<>(id, text, t, removeShadow, leftMargin, rightMargin);
|
||||
public static <T extends AdaptiveImage> AdaptiveImageText<T> create(String id, final String text, final T t, final boolean removeShadowOld, final boolean removeShadowNew, int leftMargin, int rightMargin) {
|
||||
return new AdaptiveImageText<>(id, text, t, removeShadowOld, removeShadowNew, rightMargin, leftMargin);
|
||||
}
|
||||
|
||||
public PreParsedDynamicText getPreParsedDynamicText() {
|
||||
@@ -71,8 +73,13 @@ public class AdaptiveImageText<T extends AdaptiveImage> {
|
||||
String suffix = t.createImageSuffix(advance, leftMargin, rightMargin);
|
||||
String prefixWithFont = AdventureHelper.surroundWithNameplatesFont(prefix);
|
||||
String suffixWithFont = AdventureHelper.surroundWithNameplatesFont(suffix);
|
||||
if (removeShadow) prefixWithFont = AdventureHelper.removeShadowTricky(prefixWithFont);
|
||||
if (removeShadow) suffixWithFont = AdventureHelper.removeShadowTricky(suffixWithFont);
|
||||
if (removeShadowOld) {
|
||||
prefixWithFont = AdventureHelper.removeShadowTricky(prefixWithFont);
|
||||
suffixWithFont = AdventureHelper.removeShadowTricky(suffixWithFont);
|
||||
} else if (removeShadowNew) {
|
||||
prefixWithFont = AdventureHelper.removeShadow(prefixWithFont);
|
||||
suffixWithFont = AdventureHelper.removeShadow(suffixWithFont);
|
||||
}
|
||||
return prefixWithFont + parsed + suffixWithFont;
|
||||
}
|
||||
|
||||
@@ -83,7 +90,8 @@ public class AdaptiveImageText<T extends AdaptiveImage> {
|
||||
float advance = CustomNameplates.getInstance().getAdvanceManager().getLineAdvance(parsed);
|
||||
String image = t.createImage(advance, leftMargin, rightMargin);
|
||||
String imageWithFont = AdventureHelper.surroundWithNameplatesFont(image);
|
||||
if (removeShadow) imageWithFont = AdventureHelper.removeShadowTricky(imageWithFont);
|
||||
if (removeShadowOld) imageWithFont = AdventureHelper.removeShadowTricky(imageWithFont);
|
||||
else if (removeShadowNew) imageWithFont = AdventureHelper.removeShadow(imageWithFont);
|
||||
return imageWithFont;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,13 +34,11 @@ public class VanillaHud {
|
||||
private final boolean reverse;
|
||||
private final PreParsedDynamicText current;
|
||||
private final PreParsedDynamicText max;
|
||||
private final boolean removeShadow;
|
||||
|
||||
public VanillaHud(Image empty, Image half, Image full, boolean reverse, String current, String max, boolean removeShadow) {
|
||||
public VanillaHud(Image empty, Image half, Image full, boolean reverse, String current, String max) {
|
||||
this.empty = String.valueOf(empty.character().character()) + OffsetFont.NEG_2.character();
|
||||
this.half = String.valueOf(half.character().character()) + OffsetFont.NEG_2.character();
|
||||
this.full = String.valueOf(full.character().character()) + OffsetFont.NEG_2.character();
|
||||
this.removeShadow = removeShadow;
|
||||
this.reverse = reverse;
|
||||
this.current = new PreParsedDynamicText(current);
|
||||
this.max = new PreParsedDynamicText(max);
|
||||
@@ -95,7 +93,6 @@ public class VanillaHud {
|
||||
.append(String.valueOf(half).repeat(half_amount))
|
||||
.append(String.valueOf(empty).repeat(empty_amount));
|
||||
}
|
||||
return removeShadow ? AdventureHelper.removeShadowTricky(AdventureHelper.surroundWithNameplatesFont(builder.toString())) :
|
||||
AdventureHelper.surroundWithNameplatesFont(builder.toString());
|
||||
return AdventureHelper.surroundWithNameplatesFont(builder.toString());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user