Minecraft Forge 1.20.1: размещение блоков с использованием предметов по умолчаниюJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Minecraft Forge 1.20.1: размещение блоков с использованием предметов по умолчанию

Сообщение Anonymous »

Я хочу разместить блок, используя предмет Minecraft по умолчанию. Блок может быть либо блоком Minecraft по умолчанию, либо блоком, добавленным моим модом.
Хороша ли идея реализовать эту функциональность с помощью Mixin? Я думаю, что проверка каждого используемого предмета на предмет того, не является ли это углем, неоптимальна.

Код: Выделить всё

package com.shelldy.testmod.mixin;

import net.minecraft.core.BlockPos;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
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;

@Mixin(Item.class)
public class CoalMixin {
@Inject(method = "useOn", at = @At("HEAD"))
void useOnClick(UseOnContext context, CallbackInfoReturnable cir) {
final String itemDescription = context.getItemInHand().getDescriptionId();
final BlockPlaceContext blockContext = new BlockPlaceContext(context);
final Level level = blockContext.getLevel();
final BlockPos offsetPos = blockContext.getClickedPos();

if (itemDescription.equals("item.minecraft.coal")) {
level.setBlock(offsetPos, Blocks.COAL_BLOCK.defaultBlockState(), 11);
}
}
}
Я сделал то, что хотел, используя миксин.
Я также нашел статью Microsoft о компоненте элемента «minecraft:block_placer», но он был добавлен в MC 1.20.10.
P.S. Размещение блока намеренно упрощено.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ault-items
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»