Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Визуальная часть ItemPhysics | Fabric 1 21 11

Начинающий
Начинающий
Статус
Онлайн
Регистрация
6 Окт 2024
Сообщения
45
Реакции
0
Выберите загрузчик игры
  1. Fabric
Сделал чотинький айтем физик на 1 21 11
Пожалуйста, авторизуйтесь для просмотра ссылки.

Сам класс:

Java:
Expand Collapse Copy
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:
Expand Collapse Copy
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));
    }
}
Всем удачного пастинга!
 
Пастеры не понимают концепта фабрика, нахуя это в сам клиент добавлять если можно просто мод скачать сам?
нахуй вообще что то делать если можно катлин скачать и всо
 
Сделал чотинький айтем физик на 1 21 11
Пожалуйста, авторизуйтесь для просмотра ссылки.

Сам класс:

Java:
Expand Collapse Copy
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:
Expand Collapse Copy
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));
    }
}
Всем удачного пастинга!
нет.
 
Назад
Сверху Снизу