Fixed TollTip Layout
This commit is contained in:
parent
5a30e60d31
commit
12a8b0c23a
3 changed files with 30 additions and 19 deletions
|
@ -5,6 +5,7 @@ import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.Blocks;
|
import net.minecraft.world.level.block.Blocks;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -15,8 +16,13 @@ public interface SurvivesOnBlocks extends SurvivesOnSpecialGround{
|
||||||
default String getSurvivableBlocksString(){
|
default String getSurvivableBlocksString(){
|
||||||
return getSurvivableBlocks()
|
return getSurvivableBlocks()
|
||||||
.stream()
|
.stream()
|
||||||
.filter(block -> block!= Blocks.AIR)
|
.filter(block -> block!= Blocks.AIR && block!=null)
|
||||||
.map(block ->new ItemStack(block).getHoverName().getString())
|
.map(block -> {
|
||||||
|
ItemStack stack = new ItemStack(block);
|
||||||
|
if (stack.hasCustomHoverName()) return stack.getHoverName().getString();
|
||||||
|
else return block.getName().getString();
|
||||||
|
})
|
||||||
|
.sorted(Comparator.naturalOrder())
|
||||||
.collect(Collectors.joining(", "));
|
.collect(Collectors.joining(", "));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,22 +17,18 @@ public interface SurvivesOnSpecialGround {
|
||||||
String getSurvivableBlocksString();
|
String getSurvivableBlocksString();
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
static List<String> splitLines(String input){
|
static List<String> splitLines(String input) {
|
||||||
final int MAX_LEN = 30;
|
final int MAX_LEN = 45;
|
||||||
final int MAX_LEN_SECOND = 40;
|
|
||||||
List<String> lines = Lists.newArrayList();
|
List<String> lines = Lists.newArrayList();
|
||||||
int maxLen = MAX_LEN;
|
|
||||||
|
|
||||||
while (input.length()>maxLen){
|
while (input.length()>MAX_LEN){
|
||||||
int idx = input.lastIndexOf(",", maxLen);
|
int idx = input.lastIndexOf(",", MAX_LEN);
|
||||||
if (idx>=0) {
|
if (idx>=0) {
|
||||||
lines.add( input.substring(0, idx+1).trim());
|
lines.add( input.substring(0, idx+1).trim());
|
||||||
input = input.substring(idx+1, input.length()).trim();
|
input = input.substring(idx+1).trim();
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
maxLen = MAX_LEN_SECOND;
|
|
||||||
}
|
}
|
||||||
lines.add(input.trim());
|
lines.add(input.trim());
|
||||||
|
|
||||||
|
@ -41,15 +37,17 @@ public interface SurvivesOnSpecialGround {
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
static void appendHoverText(List<Component> list, String description) {
|
static void appendHoverText(List<Component> list, String description) {
|
||||||
final int MAX_LINES = 5;
|
final int MAX_LINES = 7;
|
||||||
List<String> lines = splitLines(description);
|
List<String> lines = splitLines(description);
|
||||||
if (lines.size()>0) {
|
if (lines.size()==1) {
|
||||||
list.add(new TranslatableComponent("tooltip.bclib.place_on", lines.get(0)).withStyle(ChatFormatting.GREEN));
|
list.add(new TranslatableComponent("tooltip.bclib.place_on", lines.get(0)).withStyle(ChatFormatting.GREEN));
|
||||||
}
|
} else if (lines.size()>1) {
|
||||||
for (int i=1; i<Math.min(lines.size(),MAX_LINES); i++){
|
list.add(new TranslatableComponent("tooltip.bclib.place_on", "").withStyle(ChatFormatting.GREEN));
|
||||||
String line = lines.get(i);
|
for (int i = 0; i < Math.min(lines.size(), MAX_LINES); i++) {
|
||||||
if (i==MAX_LINES-1 && i<lines.size()-1) line +=" ...";
|
String line = lines.get(i);
|
||||||
list.add(new TextComponent(" " + line).withStyle(ChatFormatting.GREEN));
|
if (i == MAX_LINES - 1 && i < lines.size() - 1) line += " ...";
|
||||||
|
list.add(new TextComponent(" " + line).withStyle(ChatFormatting.GREEN));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,10 @@ import net.minecraft.tags.TagKey;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.Blocks;
|
import net.minecraft.world.level.block.Blocks;
|
||||||
|
import net.minecraft.world.level.block.NetherrackBlock;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -22,7 +24,12 @@ public interface SurvivesOnTags extends SurvivesOnSpecialGround{
|
||||||
.map(named->named.get())
|
.map(named->named.get())
|
||||||
.flatMap(named->named.stream())
|
.flatMap(named->named.stream())
|
||||||
.filter(block -> block != Blocks.AIR && block != null)
|
.filter(block -> block != Blocks.AIR && block != null)
|
||||||
.map(block ->new ItemStack(block.value()).getHoverName().getString())
|
.map(block -> {
|
||||||
|
ItemStack stack = new ItemStack(block.value());
|
||||||
|
if (stack.hasCustomHoverName()) return stack.getHoverName().getString();
|
||||||
|
else return block.value().getName().getString();
|
||||||
|
})
|
||||||
|
.sorted(Comparator.naturalOrder())
|
||||||
.collect(Collectors.joining(", "));
|
.collect(Collectors.joining(", "));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue