Начинающий
- Статус
- Онлайн
- Регистрация
- 10 Июл 2025
- Сообщения
- 30
- Реакции
- 0
- Выберите загрузчик игры
- Fabric
- Прочие моды
марафон бесполезных вещей на EvaWare v3?
1) Создаём класс AspectRatioModule.java по пути sweetie/evaware/client/features/modules/render/
2.1) Идём в MixinGameRenderer.java по пути sweetie/evaware/inject/render/MixinGameRenderer.java и делаем класс абстрактным
2.2) Добавляем в этот-же миксин импорты
2.3) Добавляем этот метод (не спрашивайте зачем, я сам хз, без этого у меня почему-то не работало)
2.4) Вставляем этот void в самый конец миксина
3) Объявляем функцию в ModuleManager.java, путь - sweetie/evaware/api/module/ModuleManager.java
СС :
1) Создаём класс AspectRatioModule.java по пути sweetie/evaware/client/features/modules/render/
package sweetie.evaware.client.features.modules.render;
import lombok.Getter;
import sweetie.evaware.api.module.Category;
import sweetie.evaware.api.module.Module;
import sweetie.evaware.api.module.ModuleRegister;
import sweetie.evaware.api.module.setting.SliderSetting;
@ModuleRegister(name = "AspectRatio", category = Category.RENDER)
public class AspectRatioModule extends Module {
@Getter
private static final AspectRatioModule instance = new AspectRatioModule();
public final SliderSetting ratio = new SliderSetting("Ratio").value(1.33f).range(0.5f, 3.0f).step(0.01f);
public AspectRatioModule() {
addSettings(ratio);
}
@override
public void onEvent() {
}
}
import lombok.Getter;
import sweetie.evaware.api.module.Category;
import sweetie.evaware.api.module.Module;
import sweetie.evaware.api.module.ModuleRegister;
import sweetie.evaware.api.module.setting.SliderSetting;
@ModuleRegister(name = "AspectRatio", category = Category.RENDER)
public class AspectRatioModule extends Module {
@Getter
private static final AspectRatioModule instance = new AspectRatioModule();
public final SliderSetting ratio = new SliderSetting("Ratio").value(1.33f).range(0.5f, 3.0f).step(0.01f);
public AspectRatioModule() {
addSettings(ratio);
}
@override
public void onEvent() {
}
}
2.1) Идём в MixinGameRenderer.java по пути sweetie/evaware/inject/render/MixinGameRenderer.java и делаем класс абстрактным
public abstract class MixinGameRenderer
2.2) Добавляем в этот-же миксин импорты
import org.joml.Matrix4f;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import sweetie.evaware.client.features.modules.render.AspectRatioModule;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import sweetie.evaware.client.features.modules.render.AspectRatioModule;
import org.spongepowered.asm.mixin.Shadow;
2.3) Добавляем этот метод (не спрашивайте зачем, я сам хз, без этого у меня почему-то не работало)
@Shadow
public abstract float getViewDistance();
public abstract float getViewDistance();
2.4) Вставляем этот void в самый конец миксина
@Inject(method = "getBasicProjectionMatrix", at = @At("HEAD"), cancellable = true)
public void onGetBasicProjectionMatrix(float fov, CallbackInfoReturnable<Matrix4f> cir) {
if (AspectRatioModule.getInstance().isEnabled()) {
Matrix4f matrix4f = new Matrix4f();
float aspectRatio = AspectRatioModule.getInstance().ratio.getValue();
matrix4f.perspective((float) Math.toRadians(fov), aspectRatio, 0.05F, this.getViewDistance() * 4.0F);
cir.setReturnValue(matrix4f);
}
}
public void onGetBasicProjectionMatrix(float fov, CallbackInfoReturnable<Matrix4f> cir) {
if (AspectRatioModule.getInstance().isEnabled()) {
Matrix4f matrix4f = new Matrix4f();
float aspectRatio = AspectRatioModule.getInstance().ratio.getValue();
matrix4f.perspective((float) Math.toRadians(fov), aspectRatio, 0.05F, this.getViewDistance() * 4.0F);
cir.setReturnValue(matrix4f);
}
}
3) Объявляем функцию в ModuleManager.java, путь - sweetie/evaware/api/module/ModuleManager.java
AspectRatioModule.getInstance()
СС :