totem particle mod

This commit is contained in:
2025-04-03 01:33:14 +02:00
parent ddd57b80ee
commit 8557c10354
5 changed files with 98 additions and 8 deletions
@@ -0,0 +1,37 @@
package org.saturnclient.saturnclient.mixin;
import net.minecraft.client.particle.AnimatedParticle;
import net.minecraft.client.particle.SpriteProvider;
import net.minecraft.client.particle.TotemParticle;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.util.math.ColorHelper;
import org.saturnclient.saturnmods.mods.Particles;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(TotemParticle.class)
public class TotemParticleMixin extends AnimatedParticle {
protected TotemParticleMixin(ClientWorld world, double x, double y, double z, SpriteProvider spriteProvider,
float upwardsAcceleration) {
super(world, x, y, z, spriteProvider, upwardsAcceleration);
}
@Inject(at = @At("TAIL"), method = "<init>")
private void colorChanger(ClientWorld world, double x, double y, double z, double velocityX, double velocityY,
double velocityZ, SpriteProvider spriteProvider, CallbackInfo ci) {
if (Particles.enabled.value && Particles.totem_enabled.value) {
if (this.random.nextInt(2) == 0) {
this.setColor(ColorHelper.getRedFloat(Particles.totem_1.value),
ColorHelper.getGreenFloat(Particles.totem_1.value),
ColorHelper.getBlueFloat(Particles.totem_1.value));
} else {
this.setColor(ColorHelper.getRedFloat(Particles.totem_2.value),
ColorHelper.getGreenFloat(Particles.totem_2.value),
ColorHelper.getBlueFloat(Particles.totem_2.value));
}
}
}
}
@@ -14,6 +14,7 @@ public class ModManager {
new Coordinates(), new Coordinates(),
new ArmorDisplay(), new ArmorDisplay(),
new FpsDisplay(), new FpsDisplay(),
new Particles()
}; };
public static void init() { public static void init() {
@@ -21,10 +22,8 @@ public class ModManager {
MinecraftClient client = MinecraftClient.getInstance(); MinecraftClient client = MinecraftClient.getInstance();
TextRenderer textRenderer = client.textRenderer; TextRenderer textRenderer = client.textRenderer;
if ( if (textRenderer != null &&
textRenderer != null && !(client.currentScreen instanceof HudEditor)) {
!(client.currentScreen instanceof HudEditor)
) {
SaturnClient.textRenderer = textRenderer; SaturnClient.textRenderer = textRenderer;
for (SaturnMod m : MODS) { for (SaturnMod m : MODS) {
@@ -0,0 +1,53 @@
package org.saturnclient.saturnmods.mods;
import net.minecraft.util.Identifier;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.saturnclient.config.ConfigManager;
import org.saturnclient.saturnclient.config.Property;
import org.saturnclient.saturnmods.SaturnMod;
import org.saturnclient.ui.Textures;
public class Particles implements SaturnMod {
public static ConfigManager config = new ConfigManager("Particles");
public static Property<Boolean> enabled = config.property(
"Enabled",
new Property<>(false));
public static Property<Boolean> totem_enabled = config.property(
"Change totem color",
new Property<>(false));
public static Property<Integer> totem_1 = config.property(
"Totem particle color 1",
new Property<>(SaturnClient.COLOR.value, Property.PropertyType.HEX));
public static Property<Integer> totem_2 = config.property(
"Totem particle color 2",
new Property<>(SaturnClient.COLOR.value, Property.PropertyType.HEX));
@Override
public boolean isEnabled() {
return enabled.value;
}
@Override
public void setEnabled(boolean e) {
enabled.value = e;
}
@Override
public String getName() {
return "Particles";
}
@Override
public Identifier getIconTexture() {
return Textures.getModIcon("particles");
}
@Override
public ConfigManager getConfig() {
return config;
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

+2 -1
View File
@@ -9,7 +9,8 @@
"NameTagMixin", "NameTagMixin",
"PlayerEntityRendererMixin", "PlayerEntityRendererMixin",
"WhoAmI", "WhoAmI",
"SaturnReload" "SaturnReload",
"TotemParticleMixin"
], ],
"injectors": { "injectors": {
"defaultRequire": 1 "defaultRequire": 1