potion display
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
package org.saturnclient.modules.mods;
|
package org.saturnclient.modules.mods;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
import org.saturnclient.modules.HudMod;
|
import org.saturnclient.modules.HudMod;
|
||||||
import org.saturnclient.modules.ModDimensions;
|
import org.saturnclient.modules.ModDimensions;
|
||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
@@ -13,15 +15,22 @@ import net.minecraft.client.texture.Sprite;
|
|||||||
import net.minecraft.client.texture.StatusEffectSpriteManager;
|
import net.minecraft.client.texture.StatusEffectSpriteManager;
|
||||||
import net.minecraft.entity.effect.StatusEffect;
|
import net.minecraft.entity.effect.StatusEffect;
|
||||||
import net.minecraft.entity.effect.StatusEffectInstance;
|
import net.minecraft.entity.effect.StatusEffectInstance;
|
||||||
|
import net.minecraft.registry.Registries;
|
||||||
import net.minecraft.registry.entry.RegistryEntry;
|
import net.minecraft.registry.entry.RegistryEntry;
|
||||||
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
|
||||||
public class PotionDisplay extends Module implements HudMod {
|
public class PotionDisplay extends Module implements HudMod {
|
||||||
public static Property<Boolean> enabled = new Property<>(false);
|
public static Property<Boolean> enabled = new Property<>(false);
|
||||||
private static ModDimensions dimensions = new ModDimensions(40, 60);
|
private static ModDimensions dimensions = new ModDimensions(60, 0);
|
||||||
|
private final StatusEffectInstance[] dummyEffects = {
|
||||||
|
new StatusEffectInstance(Registries.STATUS_EFFECT.getEntry(Identifier.ofVanilla("speed")).get(), 12000, 2),
|
||||||
|
new StatusEffectInstance(Registries.STATUS_EFFECT.getEntry(Identifier.ofVanilla("strength")).get(), 12000, 2),
|
||||||
|
new StatusEffectInstance(Registries.STATUS_EFFECT.getEntry(Identifier.ofVanilla("fire_resistance")).get(), 12000, 2),
|
||||||
|
};
|
||||||
|
|
||||||
public PotionDisplay() {
|
public PotionDisplay() {
|
||||||
super(new ModuleDetails("Potion Display", "potions")
|
super(new ModuleDetails("Potion Display", "potion")
|
||||||
.description("Displays potion effects")
|
.description("Displays potion effects")
|
||||||
.version("v0.1.0")
|
.version("v0.1.0")
|
||||||
.tags("Utility"),
|
.tags("Utility"),
|
||||||
@@ -30,20 +39,32 @@ public class PotionDisplay extends Module implements HudMod {
|
|||||||
dimensions.prop());
|
dimensions.prop());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private void renderEffects(RenderScope scope, Iterable<StatusEffectInstance> effects) {
|
||||||
public void renderHud(RenderScope scope) {
|
|
||||||
int row = 0;
|
int row = 0;
|
||||||
|
|
||||||
StatusEffectSpriteManager statusEffectSpriteManager = SaturnClient.client.getStatusEffectSpriteManager();
|
StatusEffectSpriteManager statusEffectSpriteManager = SaturnClient.client.getStatusEffectSpriteManager();
|
||||||
|
|
||||||
for (StatusEffectInstance effect : SaturnClient.client.player.getStatusEffects()) {
|
for (StatusEffectInstance effect : effects) {
|
||||||
if (effect.shouldShowIcon()) {
|
if (effect.shouldShowIcon()) {
|
||||||
RegistryEntry<StatusEffect> registryEntry = effect.getEffectType();
|
RegistryEntry<StatusEffect> registryEntry = effect.getEffectType();
|
||||||
Sprite sprite = statusEffectSpriteManager.getSprite(registryEntry);
|
Sprite sprite = statusEffectSpriteManager.getSprite(registryEntry);
|
||||||
scope.drawSpriteStretched(sprite, 0, 18 * row, 16, 16);
|
scope.drawSpriteStretched(sprite, 0, 18 * row, 16, 16);
|
||||||
scope.drawText(0.6f, getDurationAsString(effect), 19, 18 * row + 2, dimensions.font.value, -1);
|
scope.drawText(0.5f, getDurationAsString(effect), 20, 18 * row + 3, dimensions.font.value, -1);
|
||||||
|
row++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dimensions.height = 18 * row;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderHud(RenderScope scope) {
|
||||||
|
renderEffects(scope, SaturnClient.client.player.getStatusEffects());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderDummy(RenderScope scope) {
|
||||||
|
renderEffects(scope, Arrays.asList(dummyEffects));
|
||||||
}
|
}
|
||||||
|
|
||||||
// This code was from: https://github.com/magicus/statuseffecttimer/blob/master/src/main/java/se/icus/mag/statuseffecttimer/mixin/StatusEffectTimerMixin.java
|
// This code was from: https://github.com/magicus/statuseffecttimer/blob/master/src/main/java/se/icus/mag/statuseffecttimer/mixin/StatusEffectTimerMixin.java
|
||||||
@@ -66,10 +87,6 @@ public class PotionDisplay extends Module implements HudMod {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void renderDummy(RenderScope scope) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ModDimensions getDimensions() {
|
public ModDimensions getDimensions() {
|
||||||
return dimensions;
|
return dimensions;
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ import net.minecraft.world.World;
|
|||||||
public class RenderScope {
|
public class RenderScope {
|
||||||
public MatrixStack matrices;
|
public MatrixStack matrices;
|
||||||
public VertexConsumerProvider.Immediate vertexConsumers;
|
public VertexConsumerProvider.Immediate vertexConsumers;
|
||||||
private Function<Identifier, RenderLayer> renderLayers;
|
// private Function<Identifier, RenderLayer> renderLayers;
|
||||||
private ScissorStack scissorStack = new ScissorStack();
|
private ScissorStack scissorStack = new ScissorStack();
|
||||||
private int opacity = 255 << 24;
|
private int opacity = 255 << 24;
|
||||||
private final ItemRenderState itemRenderState;
|
private final ItemRenderState itemRenderState;
|
||||||
@@ -61,7 +61,7 @@ public class RenderScope {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setRenderLayer(Function<Identifier, RenderLayer> renderLayers) {
|
public void setRenderLayer(Function<Identifier, RenderLayer> renderLayers) {
|
||||||
this.renderLayers = renderLayers;
|
// this.renderLayers = renderLayers;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drawRect(int x, int y, int width, int height, int color) {
|
public void drawRect(int x, int y, int width, int height, int color) {
|
||||||
@@ -213,7 +213,7 @@ public class RenderScope {
|
|||||||
matrices.push();
|
matrices.push();
|
||||||
matrices.scale(0.25f, 0.25f, 1.0f);
|
matrices.scale(0.25f, 0.25f, 1.0f);
|
||||||
RenderSystem.setShaderTexture(0, sprite);
|
RenderSystem.setShaderTexture(0, sprite);
|
||||||
RenderLayer renderLayer = (RenderLayer)renderLayers.apply(sprite);
|
RenderLayer renderLayer = (RenderLayer)RenderLayer.getGuiTextured(sprite);
|
||||||
Matrix4f matrix4f = this.matrices.peek().getPositionMatrix();
|
Matrix4f matrix4f = this.matrices.peek().getPositionMatrix();
|
||||||
VertexConsumer vertexConsumer = this.vertexConsumers.getBuffer(renderLayer);
|
VertexConsumer vertexConsumer = this.vertexConsumers.getBuffer(renderLayer);
|
||||||
vertexConsumer.vertex(matrix4f, (float)x1, (float)y1, 0.0F).texture(u1, v1).color(color);
|
vertexConsumer.vertex(matrix4f, (float)x1, (float)y1, 0.0F).texture(u1, v1).color(color);
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
Reference in New Issue
Block a user