From 7849e2e04c0ffd2fb2494909f33108e1cede117f Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Tue, 24 Mar 2026 12:05:02 +0100 Subject: [PATCH 1/4] Refactored feature / module system #55 --- common | 2 +- .../modules/entity/EntityModuleFabric.java | 9 +++--- .../modules/entity/HealthRenderState.java | 16 +++++++---- .../modules/mixins/entity/CameraMixin.java | 6 ++-- .../modules/mixins/entity/EntityMixin.java | 4 +-- .../modules/mixins/misc/NametagsMixin.java | 10 +++---- .../render/BackgroundRendererMixin.java | 4 +-- .../mixins/render/GameRendererMixin.java | 12 ++++---- .../render/LightmapTextureManagerMixin.java | 14 +++++----- .../render/LivingEntityRenderStateMixin.java | 10 +++---- .../render/LivingEntityRendererMixin.java | 14 +++++----- .../modules/mixins/render/RenderMixin.java | 22 +++++++-------- .../impl/modules/mixins/world/TpsMixin.java | 12 ++++---- .../modules/network/NetworkModuleFabric.java | 8 +++--- .../modules/player/PlayerModuleFabric.java | 8 +++--- .../modules/render/RenderModuleFabric.java | 10 +++---- .../impl/modules/world/WorldModuleFabric.java | 10 +++---- .../impl/provider/ModuleProviderFabric.java | 28 +++++++++---------- .../saturnclient/SaturnClient.java | 6 ++-- .../modules/entity/EntityModuleFabric.java | 9 +++--- .../modules/entity/HealthRenderState.java | 16 +++++++---- .../modules/mixins/entity/CameraMixin.java | 6 ++-- .../modules/mixins/entity/EntityMixin.java | 4 +-- .../modules/mixins/misc/NametagsMixin.java | 10 +++---- .../render/BackgroundRendererMixin.java | 4 +-- .../mixins/render/GameRendererMixin.java | 12 ++++---- .../render/LightmapTextureManagerMixin.java | 10 +++---- .../render/LivingEntityRenderStateMixin.java | 10 +++---- .../render/LivingEntityRendererMixin.java | 14 +++++----- .../modules/mixins/render/RenderMixin.java | 20 ++++++------- .../impl/modules/mixins/world/TpsMixin.java | 12 ++++---- .../modules/network/NetworkModuleFabric.java | 8 +++--- .../modules/player/PlayerModuleFabric.java | 8 +++--- .../modules/render/RenderModuleFabric.java | 10 +++---- .../impl/modules/world/WorldModuleFabric.java | 10 +++---- .../impl/provider/ModuleProviderFabric.java | 28 +++++++++---------- .../saturnclient/SaturnClient.java | 6 ++-- 37 files changed, 204 insertions(+), 198 deletions(-) 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(); } }); From 8836cc851bd7ccd562b323042531c25258ceb176 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Tue, 24 Mar 2026 13:01:38 +0100 Subject: [PATCH 2/4] Refactor feature / module system for 1.21.4 #55 --- common | 2 +- .../entity/CameraOverriddenEntity.java | 2 +- .../entity/EntityFeatureImpl.java} | 6 ++--- .../entity/HealthRenderState.java | 2 +- .../mixins/entity/CameraMixin.java | 4 ++-- .../mixins/entity/EntityMixin.java | 4 ++-- .../mixins/misc/NametagsMixin.java | 12 +++++----- .../render/BackgroundRendererMixin.java | 2 +- .../mixins/render/GameRendererMixin.java | 2 +- .../render/LightmapTextureManagerMixin.java | 2 +- .../render/LivingEntityRenderStateMixin.java | 6 ++--- .../render/LivingEntityRendererMixin.java | 4 ++-- .../mixins/render/RenderMixin.java | 2 +- .../mixins/world/TpsMixin.java | 2 +- .../network/NetworkFeatureImpl.java} | 6 ++--- .../player/PlayerFeatureImpl.java} | 6 ++--- .../render/RenderFeatureImpl.java} | 6 ++--- .../world/WorldFeatureImpl.java} | 6 ++--- ...Fabric.java => FeatureProviderFabric.java} | 24 +++++++++---------- .../saturnclient/SaturnClient.java | 4 ++-- .../saturnclient/SaturnClient.java | 2 +- 21 files changed, 53 insertions(+), 53 deletions(-) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules => features}/entity/CameraOverriddenEntity.java (81%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules/entity/EntityModuleFabric.java => features/entity/EntityFeatureImpl.java} (93%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules => features}/entity/HealthRenderState.java (92%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules => features}/mixins/entity/CameraMixin.java (93%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules => features}/mixins/entity/EntityMixin.java (93%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules => features}/mixins/misc/NametagsMixin.java (89%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules => features}/mixins/render/BackgroundRendererMixin.java (91%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules => features}/mixins/render/GameRendererMixin.java (96%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules => features}/mixins/render/LightmapTextureManagerMixin.java (95%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules => features}/mixins/render/LivingEntityRenderStateMixin.java (90%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules => features}/mixins/render/LivingEntityRendererMixin.java (94%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules => features}/mixins/render/RenderMixin.java (98%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules => features}/mixins/world/TpsMixin.java (95%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules/network/NetworkModuleFabric.java => features/network/NetworkFeatureImpl.java} (84%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules/player/PlayerModuleFabric.java => features/player/PlayerFeatureImpl.java} (97%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules/render/RenderModuleFabric.java => features/render/RenderFeatureImpl.java} (91%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/{modules/world/WorldModuleFabric.java => features/world/WorldFeatureImpl.java} (84%) rename versions/1.21.4/src/main/java/org/saturnclient/impl/provider/{ModuleProviderFabric.java => FeatureProviderFabric.java} (66%) diff --git a/common b/common index bdab658..dceff0e 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit bdab6586d459844b8661446604b79aabbc6e590b +Subproject commit dceff0e675faa08aa66b5897ad964532c4118dfc diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/entity/CameraOverriddenEntity.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/entity/CameraOverriddenEntity.java similarity index 81% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/entity/CameraOverriddenEntity.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/entity/CameraOverriddenEntity.java index 10a1cba..310b69d 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/entity/CameraOverriddenEntity.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/entity/CameraOverriddenEntity.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.entity; +package org.saturnclient.impl.features.entity; public interface CameraOverriddenEntity { float freelook$getCameraPitch(); 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/features/entity/EntityFeatureImpl.java similarity index 93% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/entity/EntityModuleFabric.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/entity/EntityFeatureImpl.java index c0ad9d5..901542e 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/features/entity/EntityFeatureImpl.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.entity; +package org.saturnclient.impl.features.entity; import org.saturnclient.common.feature.EntityFeature; @@ -17,11 +17,11 @@ import net.minecraft.entity.LivingEntity; * writes into the render state; {@link NametagsMixin} then constructs * a {@link RenderStateEntityState} from the already-extracted snapshot. */ -public class EntityModuleFabric implements EntityFeature { +public class EntityFeatureImpl implements EntityFeature { private final MinecraftClient mc; - public EntityModuleFabric(MinecraftClient mc) { + public EntityFeatureImpl(MinecraftClient mc) { this.mc = 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/features/entity/HealthRenderState.java similarity index 92% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/entity/HealthRenderState.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/entity/HealthRenderState.java index 020bbf7..7c62f81 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/features/entity/HealthRenderState.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.entity; +package org.saturnclient.impl.features.entity; import org.saturnclient.common.feature.EntityFeature; 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/features/mixins/entity/CameraMixin.java similarity index 93% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/entity/CameraMixin.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java index 32a606f..834286b 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/features/mixins/entity/CameraMixin.java @@ -1,6 +1,6 @@ -package org.saturnclient.impl.modules.mixins.entity; +package org.saturnclient.impl.features.mixins.entity; -import org.saturnclient.impl.modules.entity.CameraOverriddenEntity; +import org.saturnclient.impl.features.entity.CameraOverriddenEntity; import org.saturnclient.mod.mods.FreelookMod; import org.saturnclient.saturnclient.SaturnClient; import org.spongepowered.asm.mixin.Mixin; 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/features/mixins/entity/EntityMixin.java similarity index 93% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/entity/EntityMixin.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java index 5c66787..0dff4b0 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/features/mixins/entity/EntityMixin.java @@ -1,6 +1,6 @@ -package org.saturnclient.impl.modules.mixins.entity; +package org.saturnclient.impl.features.mixins.entity; -import org.saturnclient.impl.modules.entity.CameraOverriddenEntity; +import org.saturnclient.impl.features.entity.CameraOverriddenEntity; import org.saturnclient.mod.mods.FreelookMod; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; 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/features/mixins/misc/NametagsMixin.java similarity index 89% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/misc/NametagsMixin.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/misc/NametagsMixin.java index d2115e5..8c1763d 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/features/mixins/misc/NametagsMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.misc; +package org.saturnclient.impl.features.mixins.misc; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.entity.EntityRenderer; @@ -7,9 +7,9 @@ import net.minecraft.client.render.entity.state.LivingEntityRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; -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.impl.features.entity.EntityFeatureImpl; +import org.saturnclient.impl.features.entity.HealthRenderState; +import org.saturnclient.impl.features.mixins.render.LivingEntityRenderStateMixin; import org.saturnclient.mod.mods.NametagsMod; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -26,7 +26,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; * *
      *
    • The old {@code NametagsFabric.EntityStateImpl} bridge class is - * replaced by {@link EntityModuleFabric.RenderStateEntityState}, + * replaced by {@link EntityFeatureImpl.RenderStateEntityState}, * which wraps the {@link HealthRenderState} already injected into * the render state by {@link LivingEntityRenderStateMixin}.
    • *
    • The feature import changes from {@code Nametags} to @@ -76,7 +76,7 @@ public abstract class NametagsMixin { // Build the platform-neutral EntityState from the render-state snapshot // (health/type were written by LivingEntityRendererMixin at extract time). String customName = text != null ? text.getString() : null; - EntityModuleFabric.RenderStateEntityState entityState = new EntityModuleFabric.RenderStateEntityState( + EntityFeatureImpl.RenderStateEntityState entityState = new EntityFeatureImpl.RenderStateEntityState( customName, hrs); // Ask the feature for the replacement string 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/features/mixins/render/BackgroundRendererMixin.java similarity index 91% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/BackgroundRendererMixin.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/render/BackgroundRendererMixin.java index 5c16d21..a9f641a 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/features/mixins/render/BackgroundRendererMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.render; +package org.saturnclient.impl.features.mixins.render; import net.minecraft.client.render.BackgroundRenderer; 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/features/mixins/render/GameRendererMixin.java similarity index 96% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/GameRendererMixin.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/render/GameRendererMixin.java index 149dffa..c6d97f3 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/features/mixins/render/GameRendererMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.render; +package org.saturnclient.impl.features.mixins.render; import net.minecraft.client.render.GameRenderer; 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/features/mixins/render/LightmapTextureManagerMixin.java similarity index 95% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LightmapTextureManagerMixin.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/render/LightmapTextureManagerMixin.java index c862a27..2f24b25 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/features/mixins/render/LightmapTextureManagerMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.render; +package org.saturnclient.impl.features.mixins.render; // Code approach adapted from Gamma Utils: https://github.com/Sjouwer/gamma-utils 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/features/mixins/render/LivingEntityRenderStateMixin.java similarity index 90% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRenderStateMixin.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/render/LivingEntityRenderStateMixin.java index 1c3176a..bbb293b 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/features/mixins/render/LivingEntityRenderStateMixin.java @@ -1,10 +1,10 @@ -package org.saturnclient.impl.modules.mixins.render; +package org.saturnclient.impl.features.mixins.render; import net.minecraft.client.render.entity.state.LivingEntityRenderState; import org.saturnclient.common.feature.EntityFeature; -import org.saturnclient.impl.modules.entity.HealthRenderState; -import org.saturnclient.impl.modules.mixins.misc.NametagsMixin; +import org.saturnclient.impl.features.entity.HealthRenderState; +import org.saturnclient.impl.features.mixins.misc.NametagsMixin; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; 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/features/mixins/render/LivingEntityRendererMixin.java similarity index 94% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRendererMixin.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/render/LivingEntityRendererMixin.java index fa69588..5e9d6a2 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/features/mixins/render/LivingEntityRendererMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.render; +package org.saturnclient.impl.features.mixins.render; import net.minecraft.client.render.entity.LivingEntityRenderer; import net.minecraft.client.render.entity.state.LivingEntityRenderState; @@ -8,7 +8,7 @@ import net.minecraft.entity.passive.PassiveEntity; import net.minecraft.entity.player.PlayerEntity; import org.saturnclient.common.feature.EntityFeature; -import org.saturnclient.impl.modules.entity.HealthRenderState; +import org.saturnclient.impl.features.entity.HealthRenderState; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/RenderMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/render/RenderMixin.java similarity index 98% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/RenderMixin.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/render/RenderMixin.java index 311b373..caec854 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/render/RenderMixin.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/render/RenderMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.render; +package org.saturnclient.impl.features.mixins.render; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/world/TpsMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/world/TpsMixin.java similarity index 95% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/world/TpsMixin.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/world/TpsMixin.java index 9fc3656..0818d8b 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/mixins/world/TpsMixin.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/world/TpsMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.world; +package org.saturnclient.impl.features.mixins.world; import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.network.packet.s2c.play.WorldTimeUpdateS2CPacket; diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/network/NetworkModuleFabric.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/network/NetworkFeatureImpl.java similarity index 84% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/network/NetworkModuleFabric.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/network/NetworkFeatureImpl.java index b934fbf..dca37ad 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/network/NetworkModuleFabric.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/network/NetworkFeatureImpl.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.network; +package org.saturnclient.impl.features.network; import org.saturnclient.common.feature.NetworkFeature; @@ -12,11 +12,11 @@ import net.minecraft.client.network.PlayerListEntry; * Ping is read from the player's {@link PlayerListEntry} which the * server populates; returns {@code -1} when unavailable. */ -public class NetworkModuleFabric implements NetworkFeature { +public class NetworkFeatureImpl implements NetworkFeature { private final MinecraftClient mc; - public NetworkModuleFabric(MinecraftClient mc) { + public NetworkFeatureImpl(MinecraftClient mc) { this.mc = mc; } diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/player/PlayerModuleFabric.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/player/PlayerFeatureImpl.java similarity index 97% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/player/PlayerModuleFabric.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/player/PlayerFeatureImpl.java index 5adc623..0261f80 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/player/PlayerModuleFabric.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/player/PlayerFeatureImpl.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.player; +package org.saturnclient.impl.features.player; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; @@ -26,11 +26,11 @@ import java.util.List; * Every method guards against a missing player and returns a safe * default so features are free of null checks. */ -public class PlayerModuleFabric implements PlayerFeature { +public class PlayerFeatureImpl implements PlayerFeature { private final MinecraftClient mc; - public PlayerModuleFabric(MinecraftClient mc) { + public PlayerFeatureImpl(MinecraftClient mc) { this.mc = mc; } diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/render/RenderModuleFabric.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/render/RenderFeatureImpl.java similarity index 91% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/render/RenderModuleFabric.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/render/RenderFeatureImpl.java index 5cf76ff..adb958c 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/render/RenderModuleFabric.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/render/RenderFeatureImpl.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.render; +package org.saturnclient.impl.features.render; import org.saturnclient.common.feature.RenderFeature; @@ -12,11 +12,11 @@ import net.minecraft.client.option.Perspective; * {@link MinecraftClient}. Camera perspective control delegates to * {@link net.minecraft.client.option.GameOptions}. */ -public class RenderModuleFabric implements RenderFeature { +public class RenderFeatureImpl implements RenderFeature { private final MinecraftClient mc; - public RenderModuleFabric(MinecraftClient mc) { + public RenderFeatureImpl(MinecraftClient mc) { this.mc = mc; } diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/world/WorldModuleFabric.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/world/WorldFeatureImpl.java similarity index 84% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/modules/world/WorldModuleFabric.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/features/world/WorldFeatureImpl.java index 7b999d6..4847509 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/world/WorldModuleFabric.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/world/WorldFeatureImpl.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.world; +package org.saturnclient.impl.features.world; import org.saturnclient.common.feature.WorldFeature; @@ -10,11 +10,11 @@ import net.minecraft.client.MinecraftClient; * Reads the client world's time directly from {@link MinecraftClient}. * Returns safe defaults when no world is loaded. */ -public class WorldModuleFabric implements WorldFeature { +public class WorldFeatureImpl implements WorldFeature { private final MinecraftClient mc; - public WorldModuleFabric(MinecraftClient mc) { + public WorldFeatureImpl(MinecraftClient mc) { this.mc = mc; } diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/ModuleProviderFabric.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/FeatureProviderFabric.java similarity index 66% rename from versions/1.21.4/src/main/java/org/saturnclient/impl/provider/ModuleProviderFabric.java rename to versions/1.21.4/src/main/java/org/saturnclient/impl/provider/FeatureProviderFabric.java index 095ff87..6031d9d 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/ModuleProviderFabric.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/FeatureProviderFabric.java @@ -4,11 +4,11 @@ import net.minecraft.client.MinecraftClient; import org.saturnclient.common.feature.*; import org.saturnclient.common.provider.FeatureProvider; -import org.saturnclient.impl.modules.entity.EntityModuleFabric; -import org.saturnclient.impl.modules.network.NetworkModuleFabric; -import org.saturnclient.impl.modules.player.PlayerModuleFabric; -import org.saturnclient.impl.modules.render.RenderModuleFabric; -import org.saturnclient.impl.modules.world.WorldModuleFabric; +import org.saturnclient.impl.features.entity.EntityFeatureImpl; +import org.saturnclient.impl.features.network.NetworkFeatureImpl; +import org.saturnclient.impl.features.player.PlayerFeatureImpl; +import org.saturnclient.impl.features.render.RenderFeatureImpl; +import org.saturnclient.impl.features.world.WorldFeatureImpl; /** * Fabric implementation of {@link FeatureProvider}. @@ -25,7 +25,7 @@ import org.saturnclient.impl.modules.world.WorldModuleFabric; * // … * } */ -public class ModuleProviderFabric implements FeatureProvider { +public class FeatureProviderFabric implements FeatureProvider { private final PlayerFeature player; private final WorldFeature world; @@ -33,12 +33,12 @@ public class ModuleProviderFabric implements FeatureProvider { private final RenderFeature render; private final NetworkFeature network; - public ModuleProviderFabric(MinecraftClient mc) { - this.player = new PlayerModuleFabric(mc); - this.world = new WorldModuleFabric(mc); - this.entity = new EntityModuleFabric(mc); - this.render = new RenderModuleFabric(mc); - this.network = new NetworkModuleFabric(mc); + public FeatureProviderFabric(MinecraftClient mc) { + this.player = new PlayerFeatureImpl(mc); + this.world = new WorldFeatureImpl(mc); + this.entity = new EntityFeatureImpl(mc); + this.render = new RenderFeatureImpl(mc); + this.network = new NetworkFeatureImpl(mc); } @Override 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 d8e8cbc..356de55 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 @@ -11,7 +11,7 @@ import org.saturnclient.cosmetics.Hats; import org.saturnclient.cosmetics.Cloaks; import org.saturnclient.common.provider.Providers; import org.saturnclient.impl.provider.GLFWProviderImpl; -import org.saturnclient.impl.provider.ModuleProviderFabric; +import org.saturnclient.impl.provider.FeatureProviderFabric; import org.saturnclient.impl.provider.RefConstructorImpl; import org.saturnclient.impl.provider.SaturnProviderImpl; import org.saturnclient.impl.ui.EntityDrawerImpl; @@ -41,7 +41,7 @@ public class SaturnClient implements ModInitializer { Providers.saturn = new SaturnProviderImpl(); Providers.refConstructor = new RefConstructorImpl(); Providers.GLFW = new GLFWProviderImpl(); - Providers.module = new ModuleProviderFabric(client); + Providers.feature = new FeatureProviderFabric(client); SkinPreview.DRAWER = new EntityDrawerImpl(); Config.init(); 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 d8e8cbc..179e584 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 @@ -41,7 +41,7 @@ public class SaturnClient implements ModInitializer { Providers.saturn = new SaturnProviderImpl(); Providers.refConstructor = new RefConstructorImpl(); Providers.GLFW = new GLFWProviderImpl(); - Providers.module = new ModuleProviderFabric(client); + Providers.feature = new ModuleProviderFabric(client); SkinPreview.DRAWER = new EntityDrawerImpl(); Config.init(); From 99929c7d64dadc3948a6aaeca3ff44eeb9b8bc99 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Tue, 24 Mar 2026 13:06:50 +0100 Subject: [PATCH 3/4] Refactor feature / module system for 1.21.5 #55 --- .../entity/CameraOverriddenEntity.java | 2 +- .../entity/EntityFeatureImpl.java} | 6 +++--- .../entity/HealthRenderState.java | 2 +- .../mixins/entity/CameraMixin.java | 4 ++-- .../mixins/entity/EntityMixin.java | 4 ++-- .../mixins/misc/NametagsMixin.java | 12 +++++------ .../render/BackgroundRendererMixin.java | 2 +- .../mixins/render/GameRendererMixin.java | 2 +- .../render/LightmapTextureManagerMixin.java | 2 +- .../render/LivingEntityRenderStateMixin.java | 6 +++--- .../render/LivingEntityRendererMixin.java | 4 ++-- .../mixins/render/RenderMixin.java | 2 +- .../mixins/world/TpsMixin.java | 2 +- .../network/NetworkFeatureImpl.java} | 6 +++--- .../player/PlayerFeatureImpl.java} | 8 ++++---- .../render/RenderFeatureImpl.java} | 6 +++--- .../world/WorldFeatureImpl.java} | 6 +++--- .../impl/provider/ModuleProviderFabric.java | 20 +++++++++---------- 18 files changed, 48 insertions(+), 48 deletions(-) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules => features}/entity/CameraOverriddenEntity.java (81%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules/entity/EntityModuleFabric.java => features/entity/EntityFeatureImpl.java} (93%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules => features}/entity/HealthRenderState.java (92%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules => features}/mixins/entity/CameraMixin.java (93%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules => features}/mixins/entity/EntityMixin.java (93%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules => features}/mixins/misc/NametagsMixin.java (89%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules => features}/mixins/render/BackgroundRendererMixin.java (91%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules => features}/mixins/render/GameRendererMixin.java (96%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules => features}/mixins/render/LightmapTextureManagerMixin.java (95%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules => features}/mixins/render/LivingEntityRenderStateMixin.java (90%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules => features}/mixins/render/LivingEntityRendererMixin.java (94%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules => features}/mixins/render/RenderMixin.java (98%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules => features}/mixins/world/TpsMixin.java (95%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules/network/NetworkModuleFabric.java => features/network/NetworkFeatureImpl.java} (84%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules/player/PlayerModuleFabric.java => features/player/PlayerFeatureImpl.java} (97%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules/render/RenderModuleFabric.java => features/render/RenderFeatureImpl.java} (91%) rename versions/1.21.5/src/main/java/org/saturnclient/impl/{modules/world/WorldModuleFabric.java => features/world/WorldFeatureImpl.java} (84%) diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/entity/CameraOverriddenEntity.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/entity/CameraOverriddenEntity.java similarity index 81% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/entity/CameraOverriddenEntity.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/entity/CameraOverriddenEntity.java index 10a1cba..310b69d 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/entity/CameraOverriddenEntity.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/entity/CameraOverriddenEntity.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.entity; +package org.saturnclient.impl.features.entity; public interface CameraOverriddenEntity { float freelook$getCameraPitch(); 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/features/entity/EntityFeatureImpl.java similarity index 93% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/entity/EntityModuleFabric.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/entity/EntityFeatureImpl.java index c0ad9d5..901542e 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/features/entity/EntityFeatureImpl.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.entity; +package org.saturnclient.impl.features.entity; import org.saturnclient.common.feature.EntityFeature; @@ -17,11 +17,11 @@ import net.minecraft.entity.LivingEntity; * writes into the render state; {@link NametagsMixin} then constructs * a {@link RenderStateEntityState} from the already-extracted snapshot. */ -public class EntityModuleFabric implements EntityFeature { +public class EntityFeatureImpl implements EntityFeature { private final MinecraftClient mc; - public EntityModuleFabric(MinecraftClient mc) { + public EntityFeatureImpl(MinecraftClient mc) { this.mc = 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/features/entity/HealthRenderState.java similarity index 92% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/entity/HealthRenderState.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/entity/HealthRenderState.java index 020bbf7..7c62f81 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/features/entity/HealthRenderState.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.entity; +package org.saturnclient.impl.features.entity; import org.saturnclient.common.feature.EntityFeature; 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/features/mixins/entity/CameraMixin.java similarity index 93% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/entity/CameraMixin.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java index 32a606f..834286b 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/features/mixins/entity/CameraMixin.java @@ -1,6 +1,6 @@ -package org.saturnclient.impl.modules.mixins.entity; +package org.saturnclient.impl.features.mixins.entity; -import org.saturnclient.impl.modules.entity.CameraOverriddenEntity; +import org.saturnclient.impl.features.entity.CameraOverriddenEntity; import org.saturnclient.mod.mods.FreelookMod; import org.saturnclient.saturnclient.SaturnClient; import org.spongepowered.asm.mixin.Mixin; 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/features/mixins/entity/EntityMixin.java similarity index 93% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/entity/EntityMixin.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java index 5c66787..0dff4b0 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/features/mixins/entity/EntityMixin.java @@ -1,6 +1,6 @@ -package org.saturnclient.impl.modules.mixins.entity; +package org.saturnclient.impl.features.mixins.entity; -import org.saturnclient.impl.modules.entity.CameraOverriddenEntity; +import org.saturnclient.impl.features.entity.CameraOverriddenEntity; import org.saturnclient.mod.mods.FreelookMod; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; 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/features/mixins/misc/NametagsMixin.java similarity index 89% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/misc/NametagsMixin.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/misc/NametagsMixin.java index d2115e5..8c1763d 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/features/mixins/misc/NametagsMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.misc; +package org.saturnclient.impl.features.mixins.misc; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.entity.EntityRenderer; @@ -7,9 +7,9 @@ import net.minecraft.client.render.entity.state.LivingEntityRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; -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.impl.features.entity.EntityFeatureImpl; +import org.saturnclient.impl.features.entity.HealthRenderState; +import org.saturnclient.impl.features.mixins.render.LivingEntityRenderStateMixin; import org.saturnclient.mod.mods.NametagsMod; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -26,7 +26,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; * *
        *
      • The old {@code NametagsFabric.EntityStateImpl} bridge class is - * replaced by {@link EntityModuleFabric.RenderStateEntityState}, + * replaced by {@link EntityFeatureImpl.RenderStateEntityState}, * which wraps the {@link HealthRenderState} already injected into * the render state by {@link LivingEntityRenderStateMixin}.
      • *
      • The feature import changes from {@code Nametags} to @@ -76,7 +76,7 @@ public abstract class NametagsMixin { // Build the platform-neutral EntityState from the render-state snapshot // (health/type were written by LivingEntityRendererMixin at extract time). String customName = text != null ? text.getString() : null; - EntityModuleFabric.RenderStateEntityState entityState = new EntityModuleFabric.RenderStateEntityState( + EntityFeatureImpl.RenderStateEntityState entityState = new EntityFeatureImpl.RenderStateEntityState( customName, hrs); // Ask the feature for the replacement string 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/features/mixins/render/BackgroundRendererMixin.java similarity index 91% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/BackgroundRendererMixin.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/render/BackgroundRendererMixin.java index 5c16d21..a9f641a 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/features/mixins/render/BackgroundRendererMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.render; +package org.saturnclient.impl.features.mixins.render; import net.minecraft.client.render.BackgroundRenderer; 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/features/mixins/render/GameRendererMixin.java similarity index 96% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/GameRendererMixin.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/render/GameRendererMixin.java index 149dffa..c6d97f3 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/features/mixins/render/GameRendererMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.render; +package org.saturnclient.impl.features.mixins.render; import net.minecraft.client.render.GameRenderer; 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/features/mixins/render/LightmapTextureManagerMixin.java similarity index 95% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LightmapTextureManagerMixin.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/render/LightmapTextureManagerMixin.java index 30aae6f..66a3119 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/features/mixins/render/LightmapTextureManagerMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.render; +package org.saturnclient.impl.features.mixins.render; // Code approach adapted from Gamma Utils: https://github.com/Sjouwer/gamma-utils 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/features/mixins/render/LivingEntityRenderStateMixin.java similarity index 90% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRenderStateMixin.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/render/LivingEntityRenderStateMixin.java index 1c3176a..bbb293b 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/features/mixins/render/LivingEntityRenderStateMixin.java @@ -1,10 +1,10 @@ -package org.saturnclient.impl.modules.mixins.render; +package org.saturnclient.impl.features.mixins.render; import net.minecraft.client.render.entity.state.LivingEntityRenderState; import org.saturnclient.common.feature.EntityFeature; -import org.saturnclient.impl.modules.entity.HealthRenderState; -import org.saturnclient.impl.modules.mixins.misc.NametagsMixin; +import org.saturnclient.impl.features.entity.HealthRenderState; +import org.saturnclient.impl.features.mixins.misc.NametagsMixin; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; 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/features/mixins/render/LivingEntityRendererMixin.java similarity index 94% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/LivingEntityRendererMixin.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/render/LivingEntityRendererMixin.java index fa69588..5e9d6a2 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/features/mixins/render/LivingEntityRendererMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.render; +package org.saturnclient.impl.features.mixins.render; import net.minecraft.client.render.entity.LivingEntityRenderer; import net.minecraft.client.render.entity.state.LivingEntityRenderState; @@ -8,7 +8,7 @@ import net.minecraft.entity.passive.PassiveEntity; import net.minecraft.entity.player.PlayerEntity; import org.saturnclient.common.feature.EntityFeature; -import org.saturnclient.impl.modules.entity.HealthRenderState; +import org.saturnclient.impl.features.entity.HealthRenderState; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/RenderMixin.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/render/RenderMixin.java similarity index 98% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/RenderMixin.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/render/RenderMixin.java index c46610d..063261a 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/render/RenderMixin.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/render/RenderMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.render; +package org.saturnclient.impl.features.mixins.render; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/world/TpsMixin.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/world/TpsMixin.java similarity index 95% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/world/TpsMixin.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/world/TpsMixin.java index 9fc3656..0818d8b 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/mixins/world/TpsMixin.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/world/TpsMixin.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.mixins.world; +package org.saturnclient.impl.features.mixins.world; import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.network.packet.s2c.play.WorldTimeUpdateS2CPacket; diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/network/NetworkModuleFabric.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/network/NetworkFeatureImpl.java similarity index 84% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/network/NetworkModuleFabric.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/network/NetworkFeatureImpl.java index b934fbf..dca37ad 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/network/NetworkModuleFabric.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/network/NetworkFeatureImpl.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.network; +package org.saturnclient.impl.features.network; import org.saturnclient.common.feature.NetworkFeature; @@ -12,11 +12,11 @@ import net.minecraft.client.network.PlayerListEntry; * Ping is read from the player's {@link PlayerListEntry} which the * server populates; returns {@code -1} when unavailable. */ -public class NetworkModuleFabric implements NetworkFeature { +public class NetworkFeatureImpl implements NetworkFeature { private final MinecraftClient mc; - public NetworkModuleFabric(MinecraftClient mc) { + public NetworkFeatureImpl(MinecraftClient mc) { this.mc = mc; } diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/player/PlayerModuleFabric.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/player/PlayerFeatureImpl.java similarity index 97% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/player/PlayerModuleFabric.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/player/PlayerFeatureImpl.java index 07ad8aa..a161cd6 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/player/PlayerModuleFabric.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/player/PlayerFeatureImpl.java @@ -1,13 +1,13 @@ -package org.saturnclient.impl.modules.player; +package org.saturnclient.impl.features.player; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.registry.Registries; import net.minecraft.util.Identifier; -import net.minecraft.entity.EquipmentSlot; import org.saturnclient.common.feature.PlayerFeature; import org.saturnclient.common.ref.game.EffectRef; @@ -27,11 +27,11 @@ import java.util.List; * Every method guards against a missing player and returns a safe * default so features are free of null checks. */ -public class PlayerModuleFabric implements PlayerFeature { +public class PlayerFeatureImpl implements PlayerFeature { private final MinecraftClient mc; - public PlayerModuleFabric(MinecraftClient mc) { + public PlayerFeatureImpl(MinecraftClient mc) { this.mc = mc; } diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/render/RenderModuleFabric.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/render/RenderFeatureImpl.java similarity index 91% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/render/RenderModuleFabric.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/render/RenderFeatureImpl.java index 5cf76ff..adb958c 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/render/RenderModuleFabric.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/render/RenderFeatureImpl.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.render; +package org.saturnclient.impl.features.render; import org.saturnclient.common.feature.RenderFeature; @@ -12,11 +12,11 @@ import net.minecraft.client.option.Perspective; * {@link MinecraftClient}. Camera perspective control delegates to * {@link net.minecraft.client.option.GameOptions}. */ -public class RenderModuleFabric implements RenderFeature { +public class RenderFeatureImpl implements RenderFeature { private final MinecraftClient mc; - public RenderModuleFabric(MinecraftClient mc) { + public RenderFeatureImpl(MinecraftClient mc) { this.mc = mc; } diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/world/WorldModuleFabric.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/world/WorldFeatureImpl.java similarity index 84% rename from versions/1.21.5/src/main/java/org/saturnclient/impl/modules/world/WorldModuleFabric.java rename to versions/1.21.5/src/main/java/org/saturnclient/impl/features/world/WorldFeatureImpl.java index 7b999d6..4847509 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/modules/world/WorldModuleFabric.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/world/WorldFeatureImpl.java @@ -1,4 +1,4 @@ -package org.saturnclient.impl.modules.world; +package org.saturnclient.impl.features.world; import org.saturnclient.common.feature.WorldFeature; @@ -10,11 +10,11 @@ import net.minecraft.client.MinecraftClient; * Reads the client world's time directly from {@link MinecraftClient}. * Returns safe defaults when no world is loaded. */ -public class WorldModuleFabric implements WorldFeature { +public class WorldFeatureImpl implements WorldFeature { private final MinecraftClient mc; - public WorldModuleFabric(MinecraftClient mc) { + public WorldFeatureImpl(MinecraftClient mc) { this.mc = mc; } diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/provider/ModuleProviderFabric.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/provider/ModuleProviderFabric.java index 095ff87..259b07f 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/provider/ModuleProviderFabric.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/provider/ModuleProviderFabric.java @@ -4,11 +4,11 @@ import net.minecraft.client.MinecraftClient; import org.saturnclient.common.feature.*; import org.saturnclient.common.provider.FeatureProvider; -import org.saturnclient.impl.modules.entity.EntityModuleFabric; -import org.saturnclient.impl.modules.network.NetworkModuleFabric; -import org.saturnclient.impl.modules.player.PlayerModuleFabric; -import org.saturnclient.impl.modules.render.RenderModuleFabric; -import org.saturnclient.impl.modules.world.WorldModuleFabric; +import org.saturnclient.impl.features.entity.EntityFeatureImpl; +import org.saturnclient.impl.features.network.NetworkFeatureImpl; +import org.saturnclient.impl.features.player.PlayerFeatureImpl; +import org.saturnclient.impl.features.render.RenderFeatureImpl; +import org.saturnclient.impl.features.world.WorldFeatureImpl; /** * Fabric implementation of {@link FeatureProvider}. @@ -34,11 +34,11 @@ public class ModuleProviderFabric implements FeatureProvider { private final NetworkFeature network; public ModuleProviderFabric(MinecraftClient mc) { - this.player = new PlayerModuleFabric(mc); - this.world = new WorldModuleFabric(mc); - this.entity = new EntityModuleFabric(mc); - this.render = new RenderModuleFabric(mc); - this.network = new NetworkModuleFabric(mc); + this.player = new PlayerFeatureImpl(mc); + this.world = new WorldFeatureImpl(mc); + this.entity = new EntityFeatureImpl(mc); + this.render = new RenderFeatureImpl(mc); + this.network = new NetworkFeatureImpl(mc); } @Override From 89f29d5d0e3a5802a5b5671b9e3d5ad60ef1e30c Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Tue, 24 Mar 2026 13:09:32 +0100 Subject: [PATCH 4/4] Refactor feature / module system for 1.21.5 #55 --- common | 2 +- .../saturnclient/impl/provider/FeatureProviderFabric.java | 2 +- ...ModuleProviderFabric.java => FeatureProviderFabric.java} | 6 +++--- .../java/org/saturnclient/saturnclient/SaturnClient.java | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) rename versions/1.21.5/src/main/java/org/saturnclient/impl/provider/{ModuleProviderFabric.java => FeatureProviderFabric.java} (89%) diff --git a/common b/common index dceff0e..6873f76 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit dceff0e675faa08aa66b5897ad964532c4118dfc +Subproject commit 6873f76c437c192cc8d386fb051dab12a2307bf7 diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/FeatureProviderFabric.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/FeatureProviderFabric.java index 6031d9d..c424273 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/FeatureProviderFabric.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/FeatureProviderFabric.java @@ -19,7 +19,7 @@ import org.saturnclient.impl.features.world.WorldFeatureImpl; * inconsistency between modules reading state within the same tick. * *
        {@code
        - * ModuleProvider provider = new ModuleProviderFabric(MinecraftClient.getInstance());
        + * FeatureProvider provider = new FeatureProviderFabric(MinecraftClient.getInstance());
          * FeatureManager.register(new AutoSprintFeature(provider));
          * FeatureManager.register(new CoordinatesFeature(provider));
          * // …
        diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/provider/ModuleProviderFabric.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/provider/FeatureProviderFabric.java
        similarity index 89%
        rename from versions/1.21.5/src/main/java/org/saturnclient/impl/provider/ModuleProviderFabric.java
        rename to versions/1.21.5/src/main/java/org/saturnclient/impl/provider/FeatureProviderFabric.java
        index 259b07f..c424273 100644
        --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/provider/ModuleProviderFabric.java
        +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/provider/FeatureProviderFabric.java
        @@ -19,13 +19,13 @@ import org.saturnclient.impl.features.world.WorldFeatureImpl;
          * inconsistency between modules reading state within the same tick.
          *
          * 
        {@code
        - * ModuleProvider provider = new ModuleProviderFabric(MinecraftClient.getInstance());
        + * FeatureProvider provider = new FeatureProviderFabric(MinecraftClient.getInstance());
          * FeatureManager.register(new AutoSprintFeature(provider));
          * FeatureManager.register(new CoordinatesFeature(provider));
          * // …
          * }
        */ -public class ModuleProviderFabric implements FeatureProvider { +public class FeatureProviderFabric implements FeatureProvider { private final PlayerFeature player; private final WorldFeature world; @@ -33,7 +33,7 @@ public class ModuleProviderFabric implements FeatureProvider { private final RenderFeature render; private final NetworkFeature network; - public ModuleProviderFabric(MinecraftClient mc) { + public FeatureProviderFabric(MinecraftClient mc) { this.player = new PlayerFeatureImpl(mc); this.world = new WorldFeatureImpl(mc); this.entity = new EntityFeatureImpl(mc); 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 179e584..356de55 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 @@ -11,7 +11,7 @@ import org.saturnclient.cosmetics.Hats; import org.saturnclient.cosmetics.Cloaks; import org.saturnclient.common.provider.Providers; import org.saturnclient.impl.provider.GLFWProviderImpl; -import org.saturnclient.impl.provider.ModuleProviderFabric; +import org.saturnclient.impl.provider.FeatureProviderFabric; import org.saturnclient.impl.provider.RefConstructorImpl; import org.saturnclient.impl.provider.SaturnProviderImpl; import org.saturnclient.impl.ui.EntityDrawerImpl; @@ -41,7 +41,7 @@ public class SaturnClient implements ModInitializer { Providers.saturn = new SaturnProviderImpl(); Providers.refConstructor = new RefConstructorImpl(); Providers.GLFW = new GLFWProviderImpl(); - Providers.feature = new ModuleProviderFabric(client); + Providers.feature = new FeatureProviderFabric(client); SkinPreview.DRAWER = new EntityDrawerImpl(); Config.init();