Я пытаюсь создать предмет, который размещает блоки, находящиеся в другой руке, над блоком, на котором используется предмет, но он обычно размещает только первый блок, а остальные невидимы, которые становятся нормальными, если вы правы. -нажмите на них или вернитесь в мир
Как это можно исправить?
package "my package";
import net.minecraft.core.BlockPos;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
public class BlockPlacerItem extends Item {
public BlockPlacerItem(Properties pProperties) {
super(pProperties.stacksTo(1).durability(100));
}
@Override
public @NotNull InteractionResult useOn(UseOnContext pContext) {
if(!pContext.getLevel().isClientSide()) {
Level level = pContext.getLevel();
BlockPos position = pContext.getClickedPos();
Player player = pContext.getPlayer();
assert player != null;
ItemStack item = player.getItemBySlot(EquipmentSlot.OFFHAND);
int count = item.getCount();
Block blockType = Block.byItem(item.getItem());
if(blockType != Blocks.AIR) {
for (int i = 1; i < count + 1; i++) {
BlockPos newPos = position.above(i);
level.setBlock(newPos, blockType.defaultBlockState(), 1);
level.setBlock(newPos, blockType.defaultBlockState(), 1);
}
if(!player.isCreative() && !player.isSpectator()) {
item.setCount(0);
pContext.getItemInHand().hurtAndBreak(1, Objects.requireNonNull(pContext.getPlayer()), pl -> pl.broadcastBreakEvent(pl.getUsedItemHand()));
}
}
}
return InteractionResult.SUCCESS;
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ble-blocks
Level.setBlock() размещает невидимые блоки. ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1729391316
Anonymous
Я пытаюсь создать предмет, который размещает блоки, находящиеся в другой руке, над блоком, на котором используется предмет, но он обычно размещает только первый блок, а остальные невидимы, которые становятся нормальными, если вы правы. -нажмите на них или вернитесь в мир
Как это можно исправить?
package "my package";
import net.minecraft.core.BlockPos;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
public class BlockPlacerItem extends Item {
public BlockPlacerItem(Properties pProperties) {
super(pProperties.stacksTo(1).durability(100));
}
@Override
public @NotNull InteractionResult useOn(UseOnContext pContext) {
if(!pContext.getLevel().isClientSide()) {
Level level = pContext.getLevel();
BlockPos position = pContext.getClickedPos();
Player player = pContext.getPlayer();
assert player != null;
ItemStack item = player.getItemBySlot(EquipmentSlot.OFFHAND);
int count = item.getCount();
Block blockType = Block.byItem(item.getItem());
if(blockType != Blocks.AIR) {
for (int i = 1; i < count + 1; i++) {
BlockPos newPos = position.above(i);
level.setBlock(newPos, blockType.defaultBlockState(), 1);
level.setBlock(newPos, blockType.defaultBlockState(), 1);
}
if(!player.isCreative() && !player.isSpectator()) {
item.setCount(0);
pContext.getItemInHand().hurtAndBreak(1, Objects.requireNonNull(pContext.getPlayer()), pl -> pl.broadcastBreakEvent(pl.getUsedItemHand()));
}
}
}
return InteractionResult.SUCCESS;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79106270/level-setblock-places-invisible-blocks[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия