mirror of
https://github.com/Sollace/Unicopia.git
synced 2024-11-24 13:57:59 +01:00
Fix some sizing issues with the trait tooltip renderer and render undiscovered traits as as obfuscated
This commit is contained in:
parent
48f5943a5b
commit
99effcfd8f
2 changed files with 18 additions and 7 deletions
|
@ -94,7 +94,6 @@ public class TraitDiscovery implements NbtSerialisable {
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
public void appendTooltip(ItemStack stack, @Nullable World world, List<Text> tooltip) {
|
public void appendTooltip(ItemStack stack, @Nullable World world, List<Text> tooltip) {
|
||||||
SpellTraits.getEmbeddedTraits(stack)
|
SpellTraits.getEmbeddedTraits(stack)
|
||||||
.flatMap(embedded -> SpellTraits.fromEntries(embedded.entries().stream().filter(e -> isKnown(e.getKey()))))
|
|
||||||
.orElseGet(() -> getKnownTraits(stack.getItem()))
|
.orElseGet(() -> getKnownTraits(stack.getItem()))
|
||||||
.appendTooltip(tooltip);
|
.appendTooltip(tooltip);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,8 @@ package com.minelittlepony.unicopia.client.gui;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.minelittlepony.unicopia.ability.magic.spell.trait.SpellTraits;
|
import com.minelittlepony.unicopia.ability.magic.spell.trait.*;
|
||||||
import com.minelittlepony.unicopia.ability.magic.spell.trait.Trait;
|
import com.minelittlepony.unicopia.entity.player.Pony;
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
|
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
|
@ -27,7 +27,7 @@ public class ItemTraitsTooltipRenderer implements Text, OrderedText, TooltipComp
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getHeight() {
|
public int getHeight() {
|
||||||
return getRows() * 16 + 4;
|
return getRows() * 17 + 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -36,11 +36,15 @@ public class ItemTraitsTooltipRenderer implements Text, OrderedText, TooltipComp
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getColumns() {
|
private int getColumns() {
|
||||||
return Math.max(4, (int)Math.ceil(Math.sqrt(traits.entries().size() + 1)));
|
return Math.min(traits.entries().size(), Math.max(6, (int)Math.ceil(Math.sqrt(traits.entries().size() + 1))));
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getRows() {
|
private int getRows() {
|
||||||
return Math.max(1, (int)Math.ceil((traits.entries().size() + 1) / getColumns()));
|
int columns = getColumns();
|
||||||
|
if (columns == traits.entries().size()) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return Math.max(1, (int)Math.ceil((float)(traits.entries().size() + 1) / getColumns()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -51,7 +55,7 @@ public class ItemTraitsTooltipRenderer implements Text, OrderedText, TooltipComp
|
||||||
for (var entry : traits) {
|
for (var entry : traits) {
|
||||||
renderTraitIcon(entry.getKey(), entry.getValue(), matrices,
|
renderTraitIcon(entry.getKey(), entry.getValue(), matrices,
|
||||||
x + (i % columns) * 17,
|
x + (i % columns) * 17,
|
||||||
y + (i / columns) * 16
|
y + (i / columns) * 17
|
||||||
);
|
);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
@ -78,6 +82,14 @@ public class ItemTraitsTooltipRenderer implements Text, OrderedText, TooltipComp
|
||||||
|
|
||||||
int size = 12;
|
int size = 12;
|
||||||
|
|
||||||
|
if (MinecraftClient.getInstance().player != null) {
|
||||||
|
TraitDiscovery discoveries = Pony.of(MinecraftClient.getInstance().player).getDiscoveries();
|
||||||
|
|
||||||
|
if (!discoveries.isKnown(trait)) {
|
||||||
|
trait = Trait.values()[MinecraftClient.getInstance().player.getRandom().nextInt(Trait.all().size())];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
RenderSystem.setShaderTexture(0, trait.getSprite());
|
RenderSystem.setShaderTexture(0, trait.getSprite());
|
||||||
DrawableHelper.drawTexture(matrices, xx + 2, yy + 1, 0, 0, 0, size, size, size, size);
|
DrawableHelper.drawTexture(matrices, xx + 2, yy + 1, 0, 0, 0, size, size, size, size);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue