diff --git a/common b/common
index 174c952..bdab658 160000
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit 174c95240c95eaaba662e34086864d35c7cf5e21
+Subproject commit bdab6586d459844b8661446604b79aabbc6e590b
diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/entity/EntityModuleFabric.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/entity/EntityModuleFabric.java
index 7119cd6..c0ad9d5 100644
--- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/entity/EntityModuleFabric.java
+++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/entity/EntityModuleFabric.java
@@ -1,16 +1,15 @@
package org.saturnclient.impl.modules.entity;
+import org.saturnclient.common.feature.EntityFeature;
+
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.util.hit.EntityHitResult;
import net.minecraft.util.hit.HitResult;
import net.minecraft.entity.LivingEntity;
-import org.saturnclient.common.module.EntityModule;
-
-
/**
- * Fabric implementation of {@link EntityModule}.
+ * Fabric implementation of {@link EntityFeature}.
*
* Crosshair targeting is resolved via {@link MinecraftClient#crosshairTarget}.
* Entity state for nametag rendering is supplied at render time by
@@ -18,7 +17,7 @@ import org.saturnclient.common.module.EntityModule;
* writes into the render state; {@link NametagsMixin} then constructs
* a {@link RenderStateEntityState} from the already-extracted snapshot.
*/
-public class EntityModuleFabric implements EntityModule {
+public class EntityModuleFabric implements EntityFeature {
private final MinecraftClient mc;
diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/entity/HealthRenderState.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/entity/HealthRenderState.java
index 0fc2ddd..020bbf7 100644
--- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/entity/HealthRenderState.java
+++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/entity/HealthRenderState.java
@@ -1,9 +1,10 @@
package org.saturnclient.impl.modules.entity;
-import org.saturnclient.common.module.EntityModule;
+import org.saturnclient.common.feature.EntityFeature;
/**
- * Injected interface on {@link net.minecraft.client.render.entity.state.LivingEntityRenderState}.
+ * Injected interface on
+ * {@link net.minecraft.client.render.entity.state.LivingEntityRenderState}.
*
* Carries the entity's health snapshot and classification into the render
* pipeline so that {@link NametagsMixin} can read them without touching
@@ -12,9 +13,12 @@ import org.saturnclient.common.module.EntityModule;
public interface HealthRenderState {
float saturn$getHealth();
- float saturn$getMaxHealth();
- void saturn$setHealth(float health, float maxHealth);
- EntityModule.EntityType saturn$getEntityType();
- void saturn$setEntityType(EntityModule.EntityType type);
+ float saturn$getMaxHealth();
+
+ void saturn$setHealth(float health, float maxHealth);
+
+ EntityFeature.EntityType saturn$getEntityType();
+
+ void saturn$setEntityType(EntityFeature.EntityType type);
}
diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/entity/CameraMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/entity/CameraMixin.java
index 6608e2a..32a606f 100644
--- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/entity/CameraMixin.java
+++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/entity/CameraMixin.java
@@ -1,7 +1,7 @@
package org.saturnclient.impl.modules.mixins.entity;
-import org.saturnclient.feature.features.FreelookFeature;
import org.saturnclient.impl.modules.entity.CameraOverriddenEntity;
+import org.saturnclient.mod.mods.FreelookMod;
import org.saturnclient.saturnclient.SaturnClient;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
@@ -26,7 +26,7 @@ public abstract class CameraMixin {
@Inject(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/Camera;setRotation(FF)V", ordinal = 1, shift = At.Shift.AFTER))
public void lockRotation(BlockView focusedBlock, Entity cameraEntity, boolean isThirdPerson, boolean isFrontFacing,
float tickDelta, CallbackInfo ci) {
- if (FreelookFeature.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) {
+ if (FreelookMod.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) {
CameraOverriddenEntity cameraOverriddenEntity = (CameraOverriddenEntity) cameraEntity;
if (firstTime && SaturnClient.client.player != null) {
@@ -38,7 +38,7 @@ public abstract class CameraMixin {
cameraOverriddenEntity.freelook$getCameraPitch());
}
- if (!FreelookFeature.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) {
+ if (!FreelookMod.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) {
firstTime = true;
}
}
diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/entity/EntityMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/entity/EntityMixin.java
index fb16306..5c66787 100644
--- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/entity/EntityMixin.java
+++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/entity/EntityMixin.java
@@ -1,7 +1,7 @@
package org.saturnclient.impl.modules.mixins.entity;
-import org.saturnclient.feature.features.FreelookFeature;
import org.saturnclient.impl.modules.entity.CameraOverriddenEntity;
+import org.saturnclient.mod.mods.FreelookMod;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
@@ -24,7 +24,7 @@ public class EntityMixin implements CameraOverriddenEntity {
public void changeCameraLookDirection(double xDelta, double yDelta, CallbackInfo ci) {
// noinspection ConstantValue// IntelliJ is incorrect here, this code block is
// reachable
- if (FreelookFeature.isFreeLooking && (Object) this instanceof ClientPlayerEntity) {
+ if (FreelookMod.isFreeLooking && (Object) this instanceof ClientPlayerEntity) {
double pitchDelta = (yDelta * 0.15);
double yawDelta = (xDelta * 0.15);
diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/misc/NametagsMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/misc/NametagsMixin.java
index a31e348..d2115e5 100644
--- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/misc/NametagsMixin.java
+++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/misc/NametagsMixin.java
@@ -7,10 +7,10 @@ import net.minecraft.client.render.entity.state.LivingEntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
-import org.saturnclient.feature.features.NametagsFeature;
import org.saturnclient.impl.modules.entity.EntityModuleFabric;
import org.saturnclient.impl.modules.entity.HealthRenderState;
import org.saturnclient.impl.modules.mixins.render.LivingEntityRenderStateMixin;
+import org.saturnclient.mod.mods.NametagsMod;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
@@ -20,7 +20,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
/**
* Intercepts nametag rendering and replaces the displayed text with
- * the string produced by {@link NametagsFeature#getNametagString}.
+ * the string produced by {@link NametagsMod#getNametagString}.
*
* Key changes from the original:
*
@@ -30,7 +30,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
* which wraps the {@link HealthRenderState} already injected into
* the render state by {@link LivingEntityRenderStateMixin}.
*
The feature import changes from {@code Nametags} to
- * {@link NametagsFeature}; the two static methods
+ * {@link NametagsMod}; the two static methods
* ({@code shouldReplaceName} / {@code getNametagString}) are
* unchanged in signature.
* The entity's display name is extracted from the render state's
@@ -64,7 +64,7 @@ public abstract class NametagsMixin {
if (saturn$rendering.get())
return;
- if (!NametagsFeature.shouldReplaceName())
+ if (!NametagsMod.shouldReplaceName())
return;
// Only living entities carry health data
@@ -80,7 +80,7 @@ public abstract class NametagsMixin {
customName, hrs);
// Ask the feature for the replacement string
- String replacement = NametagsFeature.getNametagString(entityState);
+ String replacement = NametagsMod.getNametagString(entityState);
if (replacement == null)
return; // feature decided not to replace this entity
diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/BackgroundRendererMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/BackgroundRendererMixin.java
index 563175b..5c16d21 100644
--- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/BackgroundRendererMixin.java
+++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/BackgroundRendererMixin.java
@@ -2,7 +2,7 @@ package org.saturnclient.impl.modules.mixins.render;
import net.minecraft.client.render.BackgroundRenderer;
-import org.saturnclient.feature.features.NoFogFeature;
+import org.saturnclient.mod.mods.NoFogMod;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
@@ -12,7 +12,7 @@ public class BackgroundRendererMixin {
// fog
@ModifyVariable(method = "applyFog", at = @At("HEAD"), ordinal = 0, argsOnly = true)
private static float modifyFogStart(float viewDistance) {
- if (NoFogFeature.isActive()) {
+ if (NoFogMod.isActive()) {
return viewDistance * 2.0f;
}
diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/GameRendererMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/GameRendererMixin.java
index 320093c..149dffa 100644
--- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/GameRendererMixin.java
+++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/GameRendererMixin.java
@@ -2,21 +2,21 @@ package org.saturnclient.impl.modules.mixins.render;
import net.minecraft.client.render.GameRenderer;
-import org.saturnclient.feature.features.ZoomFeature;
+import org.saturnclient.mod.mods.ZoomMod;
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.CallbackInfoReturnable;
/**
- * Overrides the game's field-of-view when {@link ZoomFeature} is active.
+ * Overrides the game's field-of-view when {@link ZoomMod} is active.
*
* The old code checked both {@code Zoom.isZooming} and
* {@code Zoom.shouldZoom()} separately. The refactored
- * {@link ZoomFeature#shouldZoom()} already ORs both conditions
+ * {@link ZoomMod#shouldZoom()} already ORs both conditions
* ({@code enabled.value && isZooming}), so only one check is needed.
*
- * No {@link org.saturnclient.common.module.ModuleProvider} is required
+ * No {@link org.saturnclient.common.module.ModProvider} is required
* here because zooming is a pure render-time override with no per-tick
* engine queries.
*/
@@ -29,8 +29,8 @@ public class GameRendererMixin {
*/
@Inject(method = "getFov", at = @At("RETURN"), cancellable = true)
private void onGetFov(CallbackInfoReturnable cir) {
- if (ZoomFeature.shouldZoom()) {
- float zoomedFov = cir.getReturnValue() / ZoomFeature.getZoomLevel();
+ if (ZoomMod.shouldZoom()) {
+ float zoomedFov = cir.getReturnValue() / ZoomMod.getZoomLevel();
cir.setReturnValue(zoomedFov);
}
}
diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LightmapTextureManagerMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LightmapTextureManagerMixin.java
index 3fb0037..c862a27 100644
--- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LightmapTextureManagerMixin.java
+++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LightmapTextureManagerMixin.java
@@ -5,30 +5,30 @@ package org.saturnclient.impl.modules.mixins.render;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.client.render.LightmapTextureManager;
-import org.saturnclient.feature.features.FullbrightFeature;
+import org.saturnclient.mod.mods.FullbrightMod;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
/**
* Overrides the lightmap's gamma computation when
- * {@link FullbrightFeature} is active, replacing the vanilla
+ * {@link FullbrightMod} is active, replacing the vanilla
* brightness with a user-configured value.
*
- * The old import was {@code org.saturnclient.feature.features.Fullbright};
- * it is now {@link FullbrightFeature}. The injection target and
+ * The old import was {@code org.saturnclient.Mod.Mods.Fullbright};
+ * it is now {@link FullbrightMod}. The injection target and
* strategy are unchanged.
*/
@Mixin(LightmapTextureManager.class)
public class LightmapTextureManagerMixin {
/**
- * If fullbright is active, substitute the feature's brightness
+ * If fullbright is active, substitute the Mod's brightness
* value for whatever vanilla calculated.
*/
@ModifyExpressionValue(method = "update", at = @At(value = "INVOKE", target = "Ljava/lang/Math;max(FF)F", ordinal = 0))
private float modifyGamma(float original) {
- if (FullbrightFeature.shouldOverrideBrightness()) {
- return FullbrightFeature.getBrightnessValue();
+ if (FullbrightMod.shouldOverrideBrightness()) {
+ return FullbrightMod.getBrightnessValue();
}
return original;
}
diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRenderStateMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRenderStateMixin.java
index 8107001..1c3176a 100644
--- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRenderStateMixin.java
+++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRenderStateMixin.java
@@ -2,7 +2,7 @@ package org.saturnclient.impl.modules.mixins.render;
import net.minecraft.client.render.entity.state.LivingEntityRenderState;
-import org.saturnclient.common.module.EntityModule;
+import org.saturnclient.common.feature.EntityFeature;
import org.saturnclient.impl.modules.entity.HealthRenderState;
import org.saturnclient.impl.modules.mixins.misc.NametagsMixin;
import org.spongepowered.asm.mixin.Mixin;
@@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.Unique;
* storage into every living entity's render-state snapshot.
*
* Previously imported {@code NametagsInterface.EntityType}; the enum
- * now lives in {@link EntityModule.EntityType} which is the single
+ * now lives in {@link EntityFeature.EntityType} which is the single
* canonical definition shared by the mixin layer and the feature layer.
*
* The stored values are written by
@@ -30,7 +30,7 @@ public class LivingEntityRenderStateMixin implements HealthRenderState {
@Unique
private float saturn$maxHealth = 1f;
@Unique
- private EntityModule.EntityType saturn$entityType = EntityModule.EntityType.OTHER;
+ private EntityFeature.EntityType saturn$entityType = EntityFeature.EntityType.OTHER;
@Override
public float saturn$getHealth() {
@@ -49,12 +49,12 @@ public class LivingEntityRenderStateMixin implements HealthRenderState {
}
@Override
- public EntityModule.EntityType saturn$getEntityType() {
+ public EntityFeature.EntityType saturn$getEntityType() {
return saturn$entityType;
}
@Override
- public void saturn$setEntityType(EntityModule.EntityType type) {
+ public void saturn$setEntityType(EntityFeature.EntityType type) {
saturn$entityType = type;
}
}
diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRendererMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRendererMixin.java
index ae59303..fa69588 100644
--- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRendererMixin.java
+++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRendererMixin.java
@@ -7,7 +7,7 @@ import net.minecraft.entity.mob.HostileEntity;
import net.minecraft.entity.passive.PassiveEntity;
import net.minecraft.entity.player.PlayerEntity;
-import org.saturnclient.common.module.EntityModule;
+import org.saturnclient.common.feature.EntityFeature;
import org.saturnclient.impl.modules.entity.HealthRenderState;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -20,7 +20,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
* them without touching the live entity again.
*
* Previously imported {@code NametagsInterface.EntityType}; now uses
- * {@link EntityModule.EntityType} — the canonical enum shared across
+ * {@link EntityFeature.EntityType} — the canonical enum shared across
* the whole module system.
*
* The injection target and strategy are unchanged from the original.
@@ -36,15 +36,15 @@ public abstract class LivingEntityRendererMixin
*/
-public class ModuleProviderFabric implements ModuleProvider {
+public class ModuleProviderFabric implements FeatureProvider {
- private final PlayerModule player;
- private final WorldModule world;
- private final EntityModule entity;
- private final RenderModule render;
- private final NetworkModule network;
+ private final PlayerFeature player;
+ private final WorldFeature world;
+ private final EntityFeature entity;
+ private final RenderFeature render;
+ private final NetworkFeature network;
public ModuleProviderFabric(MinecraftClient mc) {
this.player = new PlayerModuleFabric(mc);
@@ -42,27 +42,27 @@ public class ModuleProviderFabric implements ModuleProvider {
}
@Override
- public PlayerModule player() {
+ public PlayerFeature player() {
return player;
}
@Override
- public WorldModule world() {
+ public WorldFeature world() {
return world;
}
@Override
- public EntityModule entity() {
+ public EntityFeature entity() {
return entity;
}
@Override
- public RenderModule render() {
+ public RenderFeature render() {
return render;
}
@Override
- public NetworkModule network() {
+ public NetworkFeature network() {
return network;
}
}
diff --git a/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/SaturnClient.java
index 3ea50b8..d8e8cbc 100644
--- a/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/SaturnClient.java
+++ b/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/SaturnClient.java
@@ -8,7 +8,6 @@ import net.minecraft.client.MinecraftClient;
import org.saturnclient.client.ServiceClient;
import org.saturnclient.cosmetics.Emotes;
import org.saturnclient.cosmetics.Hats;
-import org.saturnclient.feature.FeatureManager;
import org.saturnclient.cosmetics.Cloaks;
import org.saturnclient.common.provider.Providers;
import org.saturnclient.impl.provider.GLFWProviderImpl;
@@ -17,6 +16,7 @@ import org.saturnclient.impl.provider.RefConstructorImpl;
import org.saturnclient.impl.provider.SaturnProviderImpl;
import org.saturnclient.impl.ui.EntityDrawerImpl;
import org.saturnclient.impl.ui.SaturnScreenFabric;
+import org.saturnclient.mod.ModManager;
import org.saturnclient.saturnclient.event.KeyInputHandler;
import org.saturnclient.config.Config;
import org.saturnclient.config.ConfigManager;
@@ -45,7 +45,7 @@ public class SaturnClient implements ModInitializer {
SkinPreview.DRAWER = new EntityDrawerImpl();
Config.init();
- FeatureManager.init();
+ ModManager.init();
client.execute(() -> {
SaturnScreenFabric.preload(client);
@@ -54,7 +54,7 @@ public class SaturnClient implements ModInitializer {
ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> ConfigManager.save());
ClientTickEvents.END_CLIENT_TICK.register(client -> {
- for (org.saturnclient.feature.Feature m : FeatureManager.ENABLED_MODS) {
+ for (org.saturnclient.mod.Mod m : ModManager.ENABLED_MODS) {
m.tick();
}
});
diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/entity/EntityModuleFabric.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/entity/EntityModuleFabric.java
index 7119cd6..c0ad9d5 100644
--- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/entity/EntityModuleFabric.java
+++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/entity/EntityModuleFabric.java
@@ -1,16 +1,15 @@
package org.saturnclient.impl.modules.entity;
+import org.saturnclient.common.feature.EntityFeature;
+
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.util.hit.EntityHitResult;
import net.minecraft.util.hit.HitResult;
import net.minecraft.entity.LivingEntity;
-import org.saturnclient.common.module.EntityModule;
-
-
/**
- * Fabric implementation of {@link EntityModule}.
+ * Fabric implementation of {@link EntityFeature}.
*
* Crosshair targeting is resolved via {@link MinecraftClient#crosshairTarget}.
* Entity state for nametag rendering is supplied at render time by
@@ -18,7 +17,7 @@ import org.saturnclient.common.module.EntityModule;
* writes into the render state; {@link NametagsMixin} then constructs
* a {@link RenderStateEntityState} from the already-extracted snapshot.
*/
-public class EntityModuleFabric implements EntityModule {
+public class EntityModuleFabric implements EntityFeature {
private final MinecraftClient mc;
diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/entity/HealthRenderState.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/entity/HealthRenderState.java
index 0fc2ddd..020bbf7 100644
--- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/entity/HealthRenderState.java
+++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/entity/HealthRenderState.java
@@ -1,9 +1,10 @@
package org.saturnclient.impl.modules.entity;
-import org.saturnclient.common.module.EntityModule;
+import org.saturnclient.common.feature.EntityFeature;
/**
- * Injected interface on {@link net.minecraft.client.render.entity.state.LivingEntityRenderState}.
+ * Injected interface on
+ * {@link net.minecraft.client.render.entity.state.LivingEntityRenderState}.
*
* Carries the entity's health snapshot and classification into the render
* pipeline so that {@link NametagsMixin} can read them without touching
@@ -12,9 +13,12 @@ import org.saturnclient.common.module.EntityModule;
public interface HealthRenderState {
float saturn$getHealth();
- float saturn$getMaxHealth();
- void saturn$setHealth(float health, float maxHealth);
- EntityModule.EntityType saturn$getEntityType();
- void saturn$setEntityType(EntityModule.EntityType type);
+ float saturn$getMaxHealth();
+
+ void saturn$setHealth(float health, float maxHealth);
+
+ EntityFeature.EntityType saturn$getEntityType();
+
+ void saturn$setEntityType(EntityFeature.EntityType type);
}
diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/entity/CameraMixin.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/entity/CameraMixin.java
index 6608e2a..32a606f 100644
--- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/entity/CameraMixin.java
+++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/entity/CameraMixin.java
@@ -1,7 +1,7 @@
package org.saturnclient.impl.modules.mixins.entity;
-import org.saturnclient.feature.features.FreelookFeature;
import org.saturnclient.impl.modules.entity.CameraOverriddenEntity;
+import org.saturnclient.mod.mods.FreelookMod;
import org.saturnclient.saturnclient.SaturnClient;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
@@ -26,7 +26,7 @@ public abstract class CameraMixin {
@Inject(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/Camera;setRotation(FF)V", ordinal = 1, shift = At.Shift.AFTER))
public void lockRotation(BlockView focusedBlock, Entity cameraEntity, boolean isThirdPerson, boolean isFrontFacing,
float tickDelta, CallbackInfo ci) {
- if (FreelookFeature.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) {
+ if (FreelookMod.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) {
CameraOverriddenEntity cameraOverriddenEntity = (CameraOverriddenEntity) cameraEntity;
if (firstTime && SaturnClient.client.player != null) {
@@ -38,7 +38,7 @@ public abstract class CameraMixin {
cameraOverriddenEntity.freelook$getCameraPitch());
}
- if (!FreelookFeature.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) {
+ if (!FreelookMod.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) {
firstTime = true;
}
}
diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/entity/EntityMixin.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/entity/EntityMixin.java
index fb16306..5c66787 100644
--- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/entity/EntityMixin.java
+++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/entity/EntityMixin.java
@@ -1,7 +1,7 @@
package org.saturnclient.impl.modules.mixins.entity;
-import org.saturnclient.feature.features.FreelookFeature;
import org.saturnclient.impl.modules.entity.CameraOverriddenEntity;
+import org.saturnclient.mod.mods.FreelookMod;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
@@ -24,7 +24,7 @@ public class EntityMixin implements CameraOverriddenEntity {
public void changeCameraLookDirection(double xDelta, double yDelta, CallbackInfo ci) {
// noinspection ConstantValue// IntelliJ is incorrect here, this code block is
// reachable
- if (FreelookFeature.isFreeLooking && (Object) this instanceof ClientPlayerEntity) {
+ if (FreelookMod.isFreeLooking && (Object) this instanceof ClientPlayerEntity) {
double pitchDelta = (yDelta * 0.15);
double yawDelta = (xDelta * 0.15);
diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/misc/NametagsMixin.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/misc/NametagsMixin.java
index a31e348..d2115e5 100644
--- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/misc/NametagsMixin.java
+++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/misc/NametagsMixin.java
@@ -7,10 +7,10 @@ import net.minecraft.client.render.entity.state.LivingEntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
-import org.saturnclient.feature.features.NametagsFeature;
import org.saturnclient.impl.modules.entity.EntityModuleFabric;
import org.saturnclient.impl.modules.entity.HealthRenderState;
import org.saturnclient.impl.modules.mixins.render.LivingEntityRenderStateMixin;
+import org.saturnclient.mod.mods.NametagsMod;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
@@ -20,7 +20,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
/**
* Intercepts nametag rendering and replaces the displayed text with
- * the string produced by {@link NametagsFeature#getNametagString}.
+ * the string produced by {@link NametagsMod#getNametagString}.
*
* Key changes from the original:
*
@@ -30,7 +30,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
* which wraps the {@link HealthRenderState} already injected into
* the render state by {@link LivingEntityRenderStateMixin}.
* The feature import changes from {@code Nametags} to
- * {@link NametagsFeature}; the two static methods
+ * {@link NametagsMod}; the two static methods
* ({@code shouldReplaceName} / {@code getNametagString}) are
* unchanged in signature.
* The entity's display name is extracted from the render state's
@@ -64,7 +64,7 @@ public abstract class NametagsMixin {
if (saturn$rendering.get())
return;
- if (!NametagsFeature.shouldReplaceName())
+ if (!NametagsMod.shouldReplaceName())
return;
// Only living entities carry health data
@@ -80,7 +80,7 @@ public abstract class NametagsMixin {
customName, hrs);
// Ask the feature for the replacement string
- String replacement = NametagsFeature.getNametagString(entityState);
+ String replacement = NametagsMod.getNametagString(entityState);
if (replacement == null)
return; // feature decided not to replace this entity
diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/BackgroundRendererMixin.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/BackgroundRendererMixin.java
index 563175b..5c16d21 100644
--- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/BackgroundRendererMixin.java
+++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/BackgroundRendererMixin.java
@@ -2,7 +2,7 @@ package org.saturnclient.impl.modules.mixins.render;
import net.minecraft.client.render.BackgroundRenderer;
-import org.saturnclient.feature.features.NoFogFeature;
+import org.saturnclient.mod.mods.NoFogMod;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
@@ -12,7 +12,7 @@ public class BackgroundRendererMixin {
// fog
@ModifyVariable(method = "applyFog", at = @At("HEAD"), ordinal = 0, argsOnly = true)
private static float modifyFogStart(float viewDistance) {
- if (NoFogFeature.isActive()) {
+ if (NoFogMod.isActive()) {
return viewDistance * 2.0f;
}
diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/GameRendererMixin.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/GameRendererMixin.java
index 320093c..149dffa 100644
--- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/GameRendererMixin.java
+++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/GameRendererMixin.java
@@ -2,21 +2,21 @@ package org.saturnclient.impl.modules.mixins.render;
import net.minecraft.client.render.GameRenderer;
-import org.saturnclient.feature.features.ZoomFeature;
+import org.saturnclient.mod.mods.ZoomMod;
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.CallbackInfoReturnable;
/**
- * Overrides the game's field-of-view when {@link ZoomFeature} is active.
+ * Overrides the game's field-of-view when {@link ZoomMod} is active.
*
* The old code checked both {@code Zoom.isZooming} and
* {@code Zoom.shouldZoom()} separately. The refactored
- * {@link ZoomFeature#shouldZoom()} already ORs both conditions
+ * {@link ZoomMod#shouldZoom()} already ORs both conditions
* ({@code enabled.value && isZooming}), so only one check is needed.
*
- * No {@link org.saturnclient.common.module.ModuleProvider} is required
+ * No {@link org.saturnclient.common.module.ModProvider} is required
* here because zooming is a pure render-time override with no per-tick
* engine queries.
*/
@@ -29,8 +29,8 @@ public class GameRendererMixin {
*/
@Inject(method = "getFov", at = @At("RETURN"), cancellable = true)
private void onGetFov(CallbackInfoReturnable cir) {
- if (ZoomFeature.shouldZoom()) {
- float zoomedFov = cir.getReturnValue() / ZoomFeature.getZoomLevel();
+ if (ZoomMod.shouldZoom()) {
+ float zoomedFov = cir.getReturnValue() / ZoomMod.getZoomLevel();
cir.setReturnValue(zoomedFov);
}
}
diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LightmapTextureManagerMixin.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LightmapTextureManagerMixin.java
index 3fb0037..30aae6f 100644
--- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LightmapTextureManagerMixin.java
+++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LightmapTextureManagerMixin.java
@@ -5,17 +5,17 @@ package org.saturnclient.impl.modules.mixins.render;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.client.render.LightmapTextureManager;
-import org.saturnclient.feature.features.FullbrightFeature;
+import org.saturnclient.mod.mods.FullbrightMod;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
/**
* Overrides the lightmap's gamma computation when
- * {@link FullbrightFeature} is active, replacing the vanilla
+ * {@link FullbrightMod} is active, replacing the vanilla
* brightness with a user-configured value.
*
* The old import was {@code org.saturnclient.feature.features.Fullbright};
- * it is now {@link FullbrightFeature}. The injection target and
+ * it is now {@link FullbrightMod}. The injection target and
* strategy are unchanged.
*/
@Mixin(LightmapTextureManager.class)
@@ -27,8 +27,8 @@ public class LightmapTextureManagerMixin {
*/
@ModifyExpressionValue(method = "update", at = @At(value = "INVOKE", target = "Ljava/lang/Math;max(FF)F", ordinal = 0))
private float modifyGamma(float original) {
- if (FullbrightFeature.shouldOverrideBrightness()) {
- return FullbrightFeature.getBrightnessValue();
+ if (FullbrightMod.shouldOverrideBrightness()) {
+ return FullbrightMod.getBrightnessValue();
}
return original;
}
diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRenderStateMixin.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRenderStateMixin.java
index 8107001..1c3176a 100644
--- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRenderStateMixin.java
+++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRenderStateMixin.java
@@ -2,7 +2,7 @@ package org.saturnclient.impl.modules.mixins.render;
import net.minecraft.client.render.entity.state.LivingEntityRenderState;
-import org.saturnclient.common.module.EntityModule;
+import org.saturnclient.common.feature.EntityFeature;
import org.saturnclient.impl.modules.entity.HealthRenderState;
import org.saturnclient.impl.modules.mixins.misc.NametagsMixin;
import org.spongepowered.asm.mixin.Mixin;
@@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.Unique;
* storage into every living entity's render-state snapshot.
*
* Previously imported {@code NametagsInterface.EntityType}; the enum
- * now lives in {@link EntityModule.EntityType} which is the single
+ * now lives in {@link EntityFeature.EntityType} which is the single
* canonical definition shared by the mixin layer and the feature layer.
*
* The stored values are written by
@@ -30,7 +30,7 @@ public class LivingEntityRenderStateMixin implements HealthRenderState {
@Unique
private float saturn$maxHealth = 1f;
@Unique
- private EntityModule.EntityType saturn$entityType = EntityModule.EntityType.OTHER;
+ private EntityFeature.EntityType saturn$entityType = EntityFeature.EntityType.OTHER;
@Override
public float saturn$getHealth() {
@@ -49,12 +49,12 @@ public class LivingEntityRenderStateMixin implements HealthRenderState {
}
@Override
- public EntityModule.EntityType saturn$getEntityType() {
+ public EntityFeature.EntityType saturn$getEntityType() {
return saturn$entityType;
}
@Override
- public void saturn$setEntityType(EntityModule.EntityType type) {
+ public void saturn$setEntityType(EntityFeature.EntityType type) {
saturn$entityType = type;
}
}
diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRendererMixin.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRendererMixin.java
index ae59303..fa69588 100644
--- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRendererMixin.java
+++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRendererMixin.java
@@ -7,7 +7,7 @@ import net.minecraft.entity.mob.HostileEntity;
import net.minecraft.entity.passive.PassiveEntity;
import net.minecraft.entity.player.PlayerEntity;
-import org.saturnclient.common.module.EntityModule;
+import org.saturnclient.common.feature.EntityFeature;
import org.saturnclient.impl.modules.entity.HealthRenderState;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -20,7 +20,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
* them without touching the live entity again.
*
* Previously imported {@code NametagsInterface.EntityType}; now uses
- * {@link EntityModule.EntityType} — the canonical enum shared across
+ * {@link EntityFeature.EntityType} — the canonical enum shared across
* the whole module system.
*
* The injection target and strategy are unchanged from the original.
@@ -36,15 +36,15 @@ public abstract class LivingEntityRendererMixin
*/
-public class ModuleProviderFabric implements ModuleProvider {
+public class ModuleProviderFabric implements FeatureProvider {
- private final PlayerModule player;
- private final WorldModule world;
- private final EntityModule entity;
- private final RenderModule render;
- private final NetworkModule network;
+ private final PlayerFeature player;
+ private final WorldFeature world;
+ private final EntityFeature entity;
+ private final RenderFeature render;
+ private final NetworkFeature network;
public ModuleProviderFabric(MinecraftClient mc) {
this.player = new PlayerModuleFabric(mc);
@@ -42,27 +42,27 @@ public class ModuleProviderFabric implements ModuleProvider {
}
@Override
- public PlayerModule player() {
+ public PlayerFeature player() {
return player;
}
@Override
- public WorldModule world() {
+ public WorldFeature world() {
return world;
}
@Override
- public EntityModule entity() {
+ public EntityFeature entity() {
return entity;
}
@Override
- public RenderModule render() {
+ public RenderFeature render() {
return render;
}
@Override
- public NetworkModule network() {
+ public NetworkFeature network() {
return network;
}
}
diff --git a/versions/1.21.5/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/versions/1.21.5/src/main/java/org/saturnclient/saturnclient/SaturnClient.java
index 3ea50b8..d8e8cbc 100644
--- a/versions/1.21.5/src/main/java/org/saturnclient/saturnclient/SaturnClient.java
+++ b/versions/1.21.5/src/main/java/org/saturnclient/saturnclient/SaturnClient.java
@@ -8,7 +8,6 @@ import net.minecraft.client.MinecraftClient;
import org.saturnclient.client.ServiceClient;
import org.saturnclient.cosmetics.Emotes;
import org.saturnclient.cosmetics.Hats;
-import org.saturnclient.feature.FeatureManager;
import org.saturnclient.cosmetics.Cloaks;
import org.saturnclient.common.provider.Providers;
import org.saturnclient.impl.provider.GLFWProviderImpl;
@@ -17,6 +16,7 @@ import org.saturnclient.impl.provider.RefConstructorImpl;
import org.saturnclient.impl.provider.SaturnProviderImpl;
import org.saturnclient.impl.ui.EntityDrawerImpl;
import org.saturnclient.impl.ui.SaturnScreenFabric;
+import org.saturnclient.mod.ModManager;
import org.saturnclient.saturnclient.event.KeyInputHandler;
import org.saturnclient.config.Config;
import org.saturnclient.config.ConfigManager;
@@ -45,7 +45,7 @@ public class SaturnClient implements ModInitializer {
SkinPreview.DRAWER = new EntityDrawerImpl();
Config.init();
- FeatureManager.init();
+ ModManager.init();
client.execute(() -> {
SaturnScreenFabric.preload(client);
@@ -54,7 +54,7 @@ public class SaturnClient implements ModInitializer {
ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> ConfigManager.save());
ClientTickEvents.END_CLIENT_TICK.register(client -> {
- for (org.saturnclient.feature.Feature m : FeatureManager.ENABLED_MODS) {
+ for (org.saturnclient.mod.Mod m : ModManager.ENABLED_MODS) {
m.tick();
}
});