Начинающий
- Статус
- Онлайн
- Регистрация
- 6 Окт 2024
- Сообщения
- 45
- Реакции
- 0
- Выберите загрузчик игры
- Fabric
Сделал чотинький айтем физик на 1 21 11
Сам класс:
Миксин:
Всем удачного пастинга!
Пожалуйста, авторизуйтесь для просмотра ссылки.
Сам класс:
Java:
package anti.paster.pastervisuals.module.modules;
import anti.paster.pastervisuals.module.Module;
public class ItemPhysicsModule extends Module {
public ItemPhysicsModule() {
super("ItemPhysics", Category.RENDER);
}
public static ItemPhysicsModule get() {
return (ItemPhysicsModule) anti.paster.pastervisuals.module.ModuleManager.get("ItemPhysics");
}
}
Миксин:
Java:
package anti.paster.pastervisuals.mixin.client;
import anti.paster.pastervisuals.module.modules.ItemPhysicsModule;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import net.minecraft.client.render.command.OrderedRenderCommandQueue;
import net.minecraft.client.render.entity.ItemEntityRenderer;
import net.minecraft.client.render.entity.state.ItemEntityRenderState;
import net.minecraft.client.render.state.CameraRenderState;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.ItemEntity;
import net.minecraft.util.math.RotationAxis;
import org.joml.Quaternionfc;
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.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(ItemEntityRenderer.class)
public class ItemPhysicsMixin {
@Inject(
method = "updateRenderState(Lnet/minecraft/entity/ItemEntity;Lnet/minecraft/client/render/entity/state/ItemEntityRenderState;F)V",
at = @At("RETURN")
)
private void fixUniqueOffset(ItemEntity entity, ItemEntityRenderState state,
float tickDelta, CallbackInfo ci) {
ItemPhysicsModule mod = ItemPhysicsModule.get();
if (mod == null || !mod.isEnabled()) return;
state.uniqueOffset = 0f;
}
@Redirect(
method = "render(Lnet/minecraft/client/render/entity/state/ItemEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V",
at = @At(value = "INVOKE",
target = "Lnet/minecraft/client/util/math/MatrixStack;translate(FFF)V",
ordinal = 0)
)
private void killBob(MatrixStack matrices, float x, float y, float z,
ItemEntityRenderState state, MatrixStack matrices2,
OrderedRenderCommandQueue queue, CameraRenderState cameraState) {
ItemPhysicsModule mod = ItemPhysicsModule.get();
if (mod == null || !mod.isEnabled()) {
matrices.translate(x, y, z);
return;
}
matrices.translate(x, 0f, z);
}
@Redirect(
method = "render(Lnet/minecraft/client/render/entity/state/ItemEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V",
at = @At(value = "INVOKE",
target = "Lnet/minecraft/client/util/math/MatrixStack;multiply(Lorg/joml/Quaternionfc;)V")
)
private void replaceRotation(MatrixStack matrices, Quaternionfc rotation,
ItemEntityRenderState state, MatrixStack matrices2,
OrderedRenderCommandQueue queue, CameraRenderState cameraState) {
ItemPhysicsModule mod = ItemPhysicsModule.get();
if (mod == null || !mod.isEnabled()) {
matrices.multiply(rotation);
return;
}
matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(-90f));
}
}