mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-22 15:18:34 +01:00
Sunday code cleaning...
This commit is contained in:
parent
9cfbb61739
commit
6774b08ac5
38 changed files with 155 additions and 437 deletions
|
@ -172,7 +172,7 @@ public abstract class BlockContainerBase extends Block implements EntityBlock {
|
||||||
|
|
||||||
protected boolean tryUseItemOnTank(Player player, InteractionHand hand, FluidTank tank) {
|
protected boolean tryUseItemOnTank(Player player, InteractionHand hand, FluidTank tank) {
|
||||||
ItemStack heldItem = player.getItemInHand(hand);
|
ItemStack heldItem = player.getItemInHand(hand);
|
||||||
return StackUtil.isValid(heldItem) && FluidUtil.interactWithFluidHandler(player, hand, tank);
|
return !heldItem.isEmpty() && FluidUtil.interactWithFluidHandler(player, hand, tank);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
|
|
||||||
package de.ellpeck.actuallyadditions.mod.blocks.base;
|
package de.ellpeck.actuallyadditions.mod.blocks.base;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
|
@ -29,6 +28,7 @@ import net.minecraft.world.level.material.PushReaction;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
import net.neoforged.neoforge.items.ItemHandlerHelper;
|
import net.neoforged.neoforge.items.ItemHandlerHelper;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
@ -63,8 +63,9 @@ public class BlockPlant extends CropBlock {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult pHitResult) {
|
protected ItemInteractionResult useItemOn(@Nonnull ItemStack pStack, @Nonnull BlockState state, @Nonnull Level world, @Nonnull BlockPos pos, @Nonnull Player player, @Nonnull InteractionHand hand, @Nonnull BlockHitResult pHitResult) {
|
||||||
if (this.getAge(state) < 7) {
|
if (this.getAge(state) < 7) {
|
||||||
return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION;
|
return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION;
|
||||||
}
|
}
|
||||||
|
@ -73,12 +74,12 @@ public class BlockPlant extends CropBlock {
|
||||||
List<ItemStack> drops = Block.getDrops(state, (ServerLevel) world, pos, null);
|
List<ItemStack> drops = Block.getDrops(state, (ServerLevel) world, pos, null);
|
||||||
boolean deductedSeedSize = false;
|
boolean deductedSeedSize = false;
|
||||||
for (ItemStack drop : drops) {
|
for (ItemStack drop : drops) {
|
||||||
if (StackUtil.isValid(drop)) {
|
if (!drop.isEmpty()) {
|
||||||
if (drop.getItem() == this.seedItem.get() && !deductedSeedSize) {
|
if (drop.getItem() == this.seedItem.get() && !deductedSeedSize) {
|
||||||
drop.shrink(1);
|
drop.shrink(1);
|
||||||
deductedSeedSize = true;
|
deductedSeedSize = true;
|
||||||
}
|
}
|
||||||
if (StackUtil.isValid(drop)) {
|
if (!drop.isEmpty()) {
|
||||||
ItemHandlerHelper.giveItemToPlayer(player, drop);
|
ItemHandlerHelper.giveItemToPlayer(player, drop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,6 +91,7 @@ public class BlockPlant extends CropBlock {
|
||||||
return super.useItemOn(pStack, state, world, pos, player, hand, pHitResult);
|
return super.useItemOn(pStack, state, world, pos, player, hand, pHitResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
protected ItemLike getBaseSeedId() {
|
protected ItemLike getBaseSeedId() {
|
||||||
return this.seedItem.get();
|
return this.seedItem.get();
|
||||||
|
|
|
@ -16,7 +16,6 @@ import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
||||||
import de.ellpeck.actuallyadditions.mod.crafting.EmpowererRecipe;
|
import de.ellpeck.actuallyadditions.mod.crafting.EmpowererRecipe;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityEmpowerer;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityEmpowerer;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
|
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.Util;
|
import net.minecraft.Util;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
|
||||||
|
@ -29,14 +28,16 @@ import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.crafting.RecipeHolder;
|
import net.minecraft.world.item.crafting.RecipeHolder;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public class RenderEmpowerer implements BlockEntityRenderer<TileEntityEmpowerer> {
|
public class RenderEmpowerer implements BlockEntityRenderer<TileEntityEmpowerer> {
|
||||||
public RenderEmpowerer(BlockEntityRendererProvider.Context context) {
|
public RenderEmpowerer(BlockEntityRendererProvider.Context context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(TileEntityEmpowerer tile, float partialTicks, PoseStack matrices, MultiBufferSource buffer, int combinedLight, int combinedOverlay) {
|
public void render(TileEntityEmpowerer tile, float partialTicks, @Nonnull PoseStack matrices, @Nonnull MultiBufferSource buffer, int combinedLight, int combinedOverlay) {
|
||||||
ItemStack stack = tile.inv.getStackInSlot(0);
|
ItemStack stack = tile.inv.getStackInSlot(0);
|
||||||
if (StackUtil.isValid(stack)) {
|
if (!stack.isEmpty()) {
|
||||||
// TODO: [port][refactor] migrate this logic into a single method, most renders use it
|
// TODO: [port][refactor] migrate this logic into a single method, most renders use it
|
||||||
matrices.pushPose();
|
matrices.pushPose();
|
||||||
matrices.translate(0.5F, 1F, 0.5F);
|
matrices.translate(0.5F, 1F, 0.5F);
|
||||||
|
|
|
@ -20,7 +20,6 @@ import de.ellpeck.actuallyadditions.mod.items.ItemEngineerGoggles;
|
||||||
import de.ellpeck.actuallyadditions.mod.items.ItemLaserWrench;
|
import de.ellpeck.actuallyadditions.mod.items.ItemLaserWrench;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityLaserRelay;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityLaserRelay;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
|
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import io.netty.util.internal.ConcurrentSet;
|
import io.netty.util.internal.ConcurrentSet;
|
||||||
import net.minecraft.Util;
|
import net.minecraft.Util;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
@ -58,13 +57,13 @@ public class RenderLaserRelay implements BlockEntityRenderer<TileEntityLaserRela
|
||||||
boolean hasGoggles = ItemEngineerGoggles.isWearing(player);
|
boolean hasGoggles = ItemEngineerGoggles.isWearing(player);
|
||||||
|
|
||||||
ItemStack upgrade = relay.inv.getStackInSlot(0);
|
ItemStack upgrade = relay.inv.getStackInSlot(0);
|
||||||
if (StackUtil.isValid(upgrade)) {
|
if (!upgrade.isEmpty()) {
|
||||||
if (upgrade.getItem() == ActuallyItems.LASER_UPGRADE_INVISIBILITY.get()) {
|
if (upgrade.getItem() == ActuallyItems.LASER_UPGRADE_INVISIBILITY.get()) {
|
||||||
hasInvis = true;
|
hasInvis = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemStack hand = player.getMainHandItem();
|
ItemStack hand = player.getMainHandItem();
|
||||||
if (hasGoggles || StackUtil.isValid(hand) && (hand.getItem() == CommonConfig.Other.relayConfigureItem || hand.getItem() instanceof ItemLaserWrench) || "themattabase".equals(player.getName().getString())) {
|
if (hasGoggles || !hand.isEmpty() && (hand.getItem() == CommonConfig.Other.relayConfigureItem || hand.getItem() instanceof ItemLaserWrench) || "themattabase".equals(player.getName().getString())) {
|
||||||
matrices.pushPose();
|
matrices.pushPose();
|
||||||
Direction direction = state.hasProperty(BlockStateProperties.FACING) ?
|
Direction direction = state.hasProperty(BlockStateProperties.FACING) ?
|
||||||
state.getValue(BlockStateProperties.FACING) : Direction.UP;
|
state.getValue(BlockStateProperties.FACING) : Direction.UP;
|
||||||
|
@ -92,7 +91,7 @@ public class RenderLaserRelay implements BlockEntityRenderer<TileEntityLaserRela
|
||||||
BlockEntity secondTile = tile.getLevel().getBlockEntity(second);
|
BlockEntity secondTile = tile.getLevel().getBlockEntity(second);
|
||||||
if (secondTile instanceof TileEntityLaserRelay) {
|
if (secondTile instanceof TileEntityLaserRelay) {
|
||||||
ItemStack secondUpgrade = ((TileEntityLaserRelay) secondTile).inv.getStackInSlot(0);
|
ItemStack secondUpgrade = ((TileEntityLaserRelay) secondTile).inv.getStackInSlot(0);
|
||||||
boolean otherInvis = StackUtil.isValid(secondUpgrade) && secondUpgrade.getItem() == ActuallyItems.LASER_UPGRADE_INVISIBILITY.get();
|
boolean otherInvis = !secondUpgrade.isEmpty() && secondUpgrade.getItem() == ActuallyItems.LASER_UPGRADE_INVISIBILITY.get();
|
||||||
|
|
||||||
if (hasGoggles || !hasInvis || !otherInvis) {
|
if (hasGoggles || !hasInvis || !otherInvis) {
|
||||||
int color = hasInvis && otherInvis
|
int color = hasInvis && otherInvis
|
||||||
|
|
|
@ -232,7 +232,7 @@ public class ClientEvents {
|
||||||
Font font = minecraft.font;
|
Font font = minecraft.font;
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
|
|
||||||
if (StackUtil.isValid(stack)) {
|
if (!stack.isEmpty()) {
|
||||||
if (stack.getItem() instanceof IHudDisplay) {
|
if (stack.getItem() instanceof IHudDisplay) {
|
||||||
((IHudDisplay) stack.getItem()).displayHud(guiGraphics, minecraft, player, stack, posHit, minecraft.getWindow());
|
((IHudDisplay) stack.getItem()).displayHud(guiGraphics, minecraft, player, stack, posHit, minecraft.getWindow());
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,12 +85,12 @@ public class CommonEvents {
|
||||||
ItemEntity item = event.getItemEntity();
|
ItemEntity item = event.getItemEntity();
|
||||||
if (item != null && item.isAlive()) {
|
if (item != null && item.isAlive()) {
|
||||||
ItemStack stack = item.getItem();
|
ItemStack stack = item.getItem();
|
||||||
if (StackUtil.isValid(stack)) {
|
if (!stack.isEmpty()) {
|
||||||
for (int i = 0; i < player.getInventory().getContainerSize(); i++) {
|
for (int i = 0; i < player.getInventory().getContainerSize(); i++) {
|
||||||
if (i != player.getInventory().selected) {
|
if (i != player.getInventory().selected) {
|
||||||
|
|
||||||
ItemStack invStack = player.getInventory().getItem(i);
|
ItemStack invStack = player.getInventory().getItem(i);
|
||||||
if (StackUtil.isValid(invStack) && (invStack.getItem() instanceof Sack)) {
|
if (!invStack.isEmpty() && (invStack.getItem() instanceof Sack)) {
|
||||||
boolean changed = false;
|
boolean changed = false;
|
||||||
boolean isVoid = ((Sack) invStack.getItem()).isVoid;
|
boolean isVoid = ((Sack) invStack.getItem()).isVoid;
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@ public class CommonEvents {
|
||||||
if (filter.check(stack)) {
|
if (filter.check(stack)) {
|
||||||
for (int j = 0; j < inv.getSlots(); j++) {
|
for (int j = 0; j < inv.getSlots(); j++) {
|
||||||
ItemStack bagStack = inv.getStackInSlot(j);
|
ItemStack bagStack = inv.getStackInSlot(j);
|
||||||
if (StackUtil.isValid(bagStack)) {
|
if (!bagStack.isEmpty()) {
|
||||||
if (ItemUtil.canBeStacked(bagStack, stack)) {
|
if (ItemUtil.canBeStacked(bagStack, stack)) {
|
||||||
int maxTransfer = Math.min(stack.getCount(), stack.getMaxStackSize() - bagStack.getCount());
|
int maxTransfer = Math.min(stack.getCount(), stack.getMaxStackSize() - bagStack.getCount());
|
||||||
if (maxTransfer > 0) {
|
if (maxTransfer > 0) {
|
||||||
|
@ -145,7 +145,7 @@ public class CommonEvents {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(stack)) {
|
if (stack.isEmpty()) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -195,7 +195,7 @@ public class CommonEvents {
|
||||||
//checkAchievements(event.crafting, event.player, InitAchievements.Type.CRAFTING);
|
//checkAchievements(event.crafting, event.player, InitAchievements.Type.CRAFTING);
|
||||||
|
|
||||||
if (CommonConfig.Other.GIVE_BOOKLET_ON_FIRST_CRAFT.get()) {
|
if (CommonConfig.Other.GIVE_BOOKLET_ON_FIRST_CRAFT.get()) {
|
||||||
if (!event.getEntity().level().isClientSide && StackUtil.isValid(event.getCrafting()) && event.getCrafting().getItem() != ActuallyItems.ITEM_BOOKLET.get()) {
|
if (!event.getEntity().level().isClientSide && !event.getCrafting().isEmpty() && event.getCrafting().getItem() != ActuallyItems.ITEM_BOOKLET.get()) {
|
||||||
|
|
||||||
String name = BuiltInRegistries.ITEM.getKey(event.getCrafting().getItem()).toString();
|
String name = BuiltInRegistries.ITEM.getKey(event.getCrafting().getItem()).toString();
|
||||||
if (name != null && name.toLowerCase(Locale.ROOT).contains(ActuallyAdditions.MODID)) {
|
if (name != null && name.toLowerCase(Locale.ROOT).contains(ActuallyAdditions.MODID)) {
|
||||||
|
|
|
@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.inventory;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBioReactor;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBioReactor;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -20,6 +19,7 @@ import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
import net.minecraft.world.inventory.Slot;
|
import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ContainerBioReactor extends AbstractContainerMenu {
|
public class ContainerBioReactor extends AbstractContainerMenu {
|
||||||
|
@ -50,8 +50,9 @@ public class ContainerBioReactor extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack quickMoveStack(Player player, int slot) {
|
public ItemStack quickMoveStack(@Nonnull Player player, int slot) {
|
||||||
int inventoryStart = 8;
|
int inventoryStart = 8;
|
||||||
int inventoryEnd = inventoryStart + 26;
|
int inventoryEnd = inventoryStart + 26;
|
||||||
int hotbarStart = inventoryEnd + 1;
|
int hotbarStart = inventoryEnd + 1;
|
||||||
|
@ -84,7 +85,7 @@ public class ContainerBioReactor extends AbstractContainerMenu {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(newStack)) {
|
if (newStack.isEmpty()) {
|
||||||
theSlot.set(ItemStack.EMPTY);
|
theSlot.set(ItemStack.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
theSlot.setChanged();
|
theSlot.setChanged();
|
||||||
|
@ -101,7 +102,7 @@ public class ContainerBioReactor extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean stillValid(Player player) {
|
public boolean stillValid(@Nonnull Player player) {
|
||||||
return this.tile.canPlayerUse(player);
|
return this.tile.canPlayerUse(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.inventory;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBreaker;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBreaker;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -20,6 +19,7 @@ import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
import net.minecraft.world.inventory.Slot;
|
import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ContainerBreaker extends AbstractContainerMenu {
|
public class ContainerBreaker extends AbstractContainerMenu {
|
||||||
|
@ -51,8 +51,9 @@ public class ContainerBreaker extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack quickMoveStack(Player player, int slot) {
|
public ItemStack quickMoveStack(@Nonnull Player player, int slot) {
|
||||||
int inventoryStart = 9;
|
int inventoryStart = 9;
|
||||||
int inventoryEnd = inventoryStart + 26;
|
int inventoryEnd = inventoryStart + 26;
|
||||||
int hotbarStart = inventoryEnd + 1;
|
int hotbarStart = inventoryEnd + 1;
|
||||||
|
@ -81,7 +82,7 @@ public class ContainerBreaker extends AbstractContainerMenu {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(newStack)) {
|
if (newStack.isEmpty()) {
|
||||||
theSlot.set(ItemStack.EMPTY);
|
theSlot.set(ItemStack.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
theSlot.setChanged();
|
theSlot.setChanged();
|
||||||
|
@ -98,7 +99,7 @@ public class ContainerBreaker extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean stillValid(Player player) {
|
public boolean stillValid(@Nonnull Player player) {
|
||||||
return this.breaker.canPlayerUse(player);
|
return this.breaker.canPlayerUse(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,6 @@ package de.ellpeck.actuallyadditions.mod.inventory;
|
||||||
import de.ellpeck.actuallyadditions.mod.crafting.PressingRecipe;
|
import de.ellpeck.actuallyadditions.mod.crafting.PressingRecipe;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityCanolaPress;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityCanolaPress;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -22,6 +21,7 @@ import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.crafting.RecipeHolder;
|
import net.minecraft.world.item.crafting.RecipeHolder;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@ -49,8 +49,9 @@ public class ContainerCanolaPress extends AbstractContainerMenu {
|
||||||
return new ContainerCanolaPress(windowId, inv, (TileEntityCanolaPress) Objects.requireNonNull(inv.player.level().getBlockEntity(data.readBlockPos())));
|
return new ContainerCanolaPress(windowId, inv, (TileEntityCanolaPress) Objects.requireNonNull(inv.player.level().getBlockEntity(data.readBlockPos())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack quickMoveStack(Player player, int slot) {
|
public ItemStack quickMoveStack(@Nonnull Player player, int slot) {
|
||||||
int inventoryStart = 1;
|
int inventoryStart = 1;
|
||||||
int inventoryEnd = inventoryStart + 26;
|
int inventoryEnd = inventoryStart + 26;
|
||||||
int hotbarStart = inventoryEnd + 1;
|
int hotbarStart = inventoryEnd + 1;
|
||||||
|
@ -84,7 +85,7 @@ public class ContainerCanolaPress extends AbstractContainerMenu {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(newStack)) {
|
if (newStack.isEmpty()) {
|
||||||
theSlot.set(ItemStack.EMPTY);
|
theSlot.set(ItemStack.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
theSlot.setChanged();
|
theSlot.setChanged();
|
||||||
|
@ -101,7 +102,7 @@ public class ContainerCanolaPress extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean stillValid(Player player) {
|
public boolean stillValid(@Nonnull Player player) {
|
||||||
return this.press.canPlayerUse(player);
|
return this.press.canPlayerUse(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.inventory;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityCoalGenerator;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityCoalGenerator;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -20,6 +19,7 @@ import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
import net.minecraft.world.inventory.Slot;
|
import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ContainerCoalGenerator extends AbstractContainerMenu {
|
public class ContainerCoalGenerator extends AbstractContainerMenu {
|
||||||
|
@ -46,8 +46,9 @@ public class ContainerCoalGenerator extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack quickMoveStack(Player player, int slot) {
|
public ItemStack quickMoveStack(@Nonnull Player player, int slot) {
|
||||||
int inventoryStart = 1;
|
int inventoryStart = 1;
|
||||||
int inventoryEnd = inventoryStart + 26;
|
int inventoryEnd = inventoryStart + 26;
|
||||||
int hotbarStart = inventoryEnd + 1;
|
int hotbarStart = inventoryEnd + 1;
|
||||||
|
@ -80,7 +81,7 @@ public class ContainerCoalGenerator extends AbstractContainerMenu {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(newStack)) {
|
if (newStack.isEmpty()) {
|
||||||
theSlot.set(ItemStack.EMPTY);
|
theSlot.set(ItemStack.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
theSlot.setChanged();
|
theSlot.setChanged();
|
||||||
|
@ -97,7 +98,7 @@ public class ContainerCoalGenerator extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean stillValid(Player player) {
|
public boolean stillValid(@Nonnull Player player) {
|
||||||
return this.generator.canPlayerUse(player);
|
return this.generator.canPlayerUse(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,6 @@ import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotOutput;
|
||||||
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
|
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
|
||||||
import de.ellpeck.actuallyadditions.mod.items.ItemCoffee;
|
import de.ellpeck.actuallyadditions.mod.items.ItemCoffee;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityCoffeeMachine;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityCoffeeMachine;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -24,6 +23,7 @@ import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
import net.minecraft.world.inventory.Slot;
|
import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ContainerCoffeeMachine extends AbstractContainerMenu {
|
public class ContainerCoffeeMachine extends AbstractContainerMenu {
|
||||||
|
@ -58,8 +58,9 @@ public class ContainerCoffeeMachine extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack quickMoveStack(Player player, int slot) {
|
public ItemStack quickMoveStack(@Nonnull Player player, int slot) {
|
||||||
int inventoryStart = 11;
|
int inventoryStart = 11;
|
||||||
int inventoryEnd = inventoryStart + 26;
|
int inventoryEnd = inventoryStart + 26;
|
||||||
int hotbarStart = inventoryEnd + 1;
|
int hotbarStart = inventoryEnd + 1;
|
||||||
|
@ -107,7 +108,7 @@ public class ContainerCoffeeMachine extends AbstractContainerMenu {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(newStack)) {
|
if (newStack.isEmpty()) {
|
||||||
theSlot.set(ItemStack.EMPTY);
|
theSlot.set(ItemStack.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
theSlot.setChanged();
|
theSlot.setChanged();
|
||||||
|
@ -124,7 +125,7 @@ public class ContainerCoffeeMachine extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean stillValid(Player player) {
|
public boolean stillValid(@Nonnull Player player) {
|
||||||
return this.machine.canPlayerUse(player);
|
return this.machine.canPlayerUse(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.inventory;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityLongRangeBreaker;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityLongRangeBreaker;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -20,6 +19,7 @@ import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
import net.minecraft.world.inventory.Slot;
|
import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ContainerDirectionalBreaker extends AbstractContainerMenu {
|
public class ContainerDirectionalBreaker extends AbstractContainerMenu {
|
||||||
|
@ -50,8 +50,9 @@ public class ContainerDirectionalBreaker extends AbstractContainerMenu {
|
||||||
return new ContainerDirectionalBreaker(windowId, inv, (TileEntityLongRangeBreaker) Objects.requireNonNull(inv.player.level().getBlockEntity(data.readBlockPos())));
|
return new ContainerDirectionalBreaker(windowId, inv, (TileEntityLongRangeBreaker) Objects.requireNonNull(inv.player.level().getBlockEntity(data.readBlockPos())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack quickMoveStack(Player player, int slot) {
|
public ItemStack quickMoveStack(@Nonnull Player player, int slot) {
|
||||||
int inventoryStart = 9;
|
int inventoryStart = 9;
|
||||||
int inventoryEnd = inventoryStart + 26;
|
int inventoryEnd = inventoryStart + 26;
|
||||||
int hotbarStart = inventoryEnd + 1;
|
int hotbarStart = inventoryEnd + 1;
|
||||||
|
@ -80,7 +81,7 @@ public class ContainerDirectionalBreaker extends AbstractContainerMenu {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(newStack)) {
|
if (newStack.isEmpty()) {
|
||||||
theSlot.set(ItemStack.EMPTY);
|
theSlot.set(ItemStack.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
theSlot.setChanged();
|
theSlot.setChanged();
|
||||||
|
@ -97,7 +98,7 @@ public class ContainerDirectionalBreaker extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean stillValid(Player player) {
|
public boolean stillValid(@Nonnull Player player) {
|
||||||
return this.breaker.canPlayerUse(player);
|
return this.breaker.canPlayerUse(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,6 @@ import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditio
|
||||||
import de.ellpeck.actuallyadditions.mod.items.DrillItem;
|
import de.ellpeck.actuallyadditions.mod.items.DrillItem;
|
||||||
import de.ellpeck.actuallyadditions.mod.items.ItemDrillUpgrade;
|
import de.ellpeck.actuallyadditions.mod.items.ItemDrillUpgrade;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA;
|
import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -24,6 +23,8 @@ import net.minecraft.world.inventory.ClickType;
|
||||||
import net.minecraft.world.inventory.Slot;
|
import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public class ContainerDrill extends AbstractContainerMenu {
|
public class ContainerDrill extends AbstractContainerMenu {
|
||||||
|
|
||||||
public static final int SLOT_AMOUNT = 5;
|
public static final int SLOT_AMOUNT = 5;
|
||||||
|
@ -62,13 +63,14 @@ public class ContainerDrill extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemStack stack = inventory.getSelected();
|
ItemStack stack = inventory.getSelected();
|
||||||
if (StackUtil.isValid(stack) && stack.getItem() instanceof DrillItem) {
|
if (!stack.isEmpty() && stack.getItem() instanceof DrillItem) {
|
||||||
DrillItem.loadSlotsFromNBT(this.drillInventory, inventory.getSelected());
|
DrillItem.loadSlotsFromNBT(this.drillInventory, inventory.getSelected());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack quickMoveStack(Player player, int slot) {
|
public ItemStack quickMoveStack(@Nonnull Player player, int slot) {
|
||||||
int inventoryStart = 5;
|
int inventoryStart = 5;
|
||||||
int inventoryEnd = inventoryStart + 26;
|
int inventoryEnd = inventoryStart + 26;
|
||||||
int hotbarStart = inventoryEnd + 1;
|
int hotbarStart = inventoryEnd + 1;
|
||||||
|
@ -101,7 +103,7 @@ public class ContainerDrill extends AbstractContainerMenu {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(newStack)) {
|
if (newStack.isEmpty()) {
|
||||||
theSlot.set(ItemStack.EMPTY);
|
theSlot.set(ItemStack.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
theSlot.setChanged();
|
theSlot.setChanged();
|
||||||
|
@ -118,7 +120,7 @@ public class ContainerDrill extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void clicked(int slotId, int dragType, ClickType clickTypeIn, Player player) {
|
public void clicked(int slotId, int dragType, @Nonnull ClickType clickTypeIn, @Nonnull Player player) {
|
||||||
if (clickTypeIn == ClickType.SWAP && dragType == this.inventory.selected) {
|
if (clickTypeIn == ClickType.SWAP && dragType == this.inventory.selected) {
|
||||||
return; //TODO: Check if this is correct, used to return ItemStack.EMPTY
|
return; //TODO: Check if this is correct, used to return ItemStack.EMPTY
|
||||||
} else {
|
} else {
|
||||||
|
@ -127,16 +129,16 @@ public class ContainerDrill extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removed(Player player) {
|
public void removed(@Nonnull Player player) {
|
||||||
ItemStack stack = this.inventory.getSelected();
|
ItemStack stack = this.inventory.getSelected();
|
||||||
if (StackUtil.isValid(stack) && stack.getItem() instanceof DrillItem) {
|
if (!stack.isEmpty() && stack.getItem() instanceof DrillItem) {
|
||||||
DrillItem.writeSlotsToNBT(this.drillInventory, this.inventory.getSelected());
|
DrillItem.writeSlotsToNBT(this.drillInventory, this.inventory.getSelected());
|
||||||
}
|
}
|
||||||
super.removed(player);
|
super.removed(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean stillValid(Player player) {
|
public boolean stillValid(@Nonnull Player player) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,6 @@ package de.ellpeck.actuallyadditions.mod.inventory;
|
||||||
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityDropper;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityDropper;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -21,6 +20,7 @@ import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
import net.minecraft.world.inventory.Slot;
|
import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ContainerDropper extends AbstractContainerMenu {
|
public class ContainerDropper extends AbstractContainerMenu {
|
||||||
|
@ -53,8 +53,9 @@ public class ContainerDropper extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack quickMoveStack(Player player, int slot) {
|
public ItemStack quickMoveStack(@Nonnull Player player, int slot) {
|
||||||
int inventoryStart = 9;
|
int inventoryStart = 9;
|
||||||
int inventoryEnd = inventoryStart + 26;
|
int inventoryEnd = inventoryStart + 26;
|
||||||
int hotbarStart = inventoryEnd + 1;
|
int hotbarStart = inventoryEnd + 1;
|
||||||
|
@ -83,7 +84,7 @@ public class ContainerDropper extends AbstractContainerMenu {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(newStack)) {
|
if (newStack.isEmpty()) {
|
||||||
theSlot.set(ItemStack.EMPTY);
|
theSlot.set(ItemStack.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
theSlot.setChanged();
|
theSlot.setChanged();
|
||||||
|
|
|
@ -14,7 +14,6 @@ import de.ellpeck.actuallyadditions.mod.inventory.slot.ArmorSlot;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotOutput;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotOutput;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityEnervator;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityEnervator;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.entity.EquipmentSlot;
|
import net.minecraft.world.entity.EquipmentSlot;
|
||||||
|
@ -26,6 +25,7 @@ import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.neoforged.neoforge.capabilities.Capabilities;
|
import net.neoforged.neoforge.capabilities.Capabilities;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ContainerEnervator extends AbstractContainerMenu {
|
public class ContainerEnervator extends AbstractContainerMenu {
|
||||||
|
@ -59,8 +59,9 @@ public class ContainerEnervator extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack quickMoveStack(Player player, int slot) {
|
public ItemStack quickMoveStack(@Nonnull Player player, int slot) {
|
||||||
int inventoryStart = 2;
|
int inventoryStart = 2;
|
||||||
int inventoryEnd = inventoryStart + 26;
|
int inventoryEnd = inventoryStart + 26;
|
||||||
int hotbarStart = inventoryEnd + 1;
|
int hotbarStart = inventoryEnd + 1;
|
||||||
|
@ -100,7 +101,7 @@ public class ContainerEnervator extends AbstractContainerMenu {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(newStack)) {
|
if (newStack.isEmpty()) {
|
||||||
theSlot.set(ItemStack.EMPTY);
|
theSlot.set(ItemStack.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
theSlot.setChanged();
|
theSlot.setChanged();
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
package de.ellpeck.actuallyadditions.mod.inventory;
|
package de.ellpeck.actuallyadditions.mod.inventory;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityOilGenerator;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityOilGenerator;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -19,6 +18,7 @@ import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
import net.minecraft.world.inventory.Slot;
|
import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ContainerOilGenerator extends AbstractContainerMenu {
|
public class ContainerOilGenerator extends AbstractContainerMenu {
|
||||||
|
@ -43,8 +43,9 @@ public class ContainerOilGenerator extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack quickMoveStack(Player player, int slot) {
|
public ItemStack quickMoveStack(@Nonnull Player player, int slot) {
|
||||||
int inventoryStart = 0;
|
int inventoryStart = 0;
|
||||||
int inventoryEnd = inventoryStart + 26;
|
int inventoryEnd = inventoryStart + 26;
|
||||||
int hotbarStart = inventoryEnd + 1;
|
int hotbarStart = inventoryEnd + 1;
|
||||||
|
@ -69,7 +70,7 @@ public class ContainerOilGenerator extends AbstractContainerMenu {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(newStack)) {
|
if (newStack.isEmpty()) {
|
||||||
theSlot.set(ItemStack.EMPTY);
|
theSlot.set(ItemStack.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
theSlot.setChanged();
|
theSlot.setChanged();
|
||||||
|
@ -86,7 +87,7 @@ public class ContainerOilGenerator extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean stillValid(Player player) {
|
public boolean stillValid(@Nonnull Player player) {
|
||||||
return this.generator.canPlayerUse(player);
|
return this.generator.canPlayerUse(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.inventory;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityPhantomPlacer;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityPhantomPlacer;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -20,6 +19,7 @@ import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
import net.minecraft.world.inventory.Slot;
|
import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ContainerPhantomPlacer extends AbstractContainerMenu {
|
public class ContainerPhantomPlacer extends AbstractContainerMenu {
|
||||||
|
@ -50,8 +50,9 @@ public class ContainerPhantomPlacer extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack quickMoveStack(Player player, int slot) {
|
public ItemStack quickMoveStack(@Nonnull Player player, int slot) {
|
||||||
int inventoryStart = 9;
|
int inventoryStart = 9;
|
||||||
int inventoryEnd = inventoryStart + 26;
|
int inventoryEnd = inventoryStart + 26;
|
||||||
int hotbarStart = inventoryEnd + 1;
|
int hotbarStart = inventoryEnd + 1;
|
||||||
|
@ -80,7 +81,7 @@ public class ContainerPhantomPlacer extends AbstractContainerMenu {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(newStack)) {
|
if (newStack.isEmpty()) {
|
||||||
theSlot.set(ItemStack.EMPTY);
|
theSlot.set(ItemStack.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
theSlot.setChanged();
|
theSlot.setChanged();
|
||||||
|
@ -97,7 +98,7 @@ public class ContainerPhantomPlacer extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean stillValid(Player player) {
|
public boolean stillValid(@Nonnull Player player) {
|
||||||
return this.placer.canPlayerUse(player);
|
return this.placer.canPlayerUse(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.items;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.components.ActuallyComponents;
|
import de.ellpeck.actuallyadditions.mod.components.ActuallyComponents;
|
||||||
import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy;
|
import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import de.ellpeck.actuallyadditions.mod.util.Util;
|
import de.ellpeck.actuallyadditions.mod.util.Util;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
|
@ -32,7 +31,7 @@ import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
import net.minecraft.world.phys.HitResult;
|
import net.minecraft.world.phys.HitResult;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nonnull;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@ -46,12 +45,12 @@ public class Filler extends ItemEnergy {
|
||||||
Block block = state.getBlock();
|
Block block = state.getBlock();
|
||||||
ItemStack stack = new ItemStack(block, 1);
|
ItemStack stack = new ItemStack(block, 1);
|
||||||
|
|
||||||
if (StackUtil.isValid(stack)) {
|
if (!stack.isEmpty()) {
|
||||||
for (int i = 0; i < player.getInventory().getContainerSize(); i++) {
|
for (int i = 0; i < player.getInventory().getContainerSize(); i++) {
|
||||||
ItemStack slot = player.getInventory().getItem(i);
|
ItemStack slot = player.getInventory().getItem(i);
|
||||||
if (StackUtil.isValid(slot) && ItemStack.isSameItem(slot, stack)) {
|
if (!slot.isEmpty() && ItemStack.isSameItem(slot, stack)) {
|
||||||
slot.shrink(1);
|
slot.shrink(1);
|
||||||
if (!StackUtil.isValid(slot)) {
|
if (slot.isEmpty()) {
|
||||||
player.getInventory().setItem(i, ItemStack.EMPTY);
|
player.getInventory().setItem(i, ItemStack.EMPTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,6 +73,7 @@ public class Filler extends ItemEnergy {
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public InteractionResult useOn(UseOnContext context) {
|
public InteractionResult useOn(UseOnContext context) {
|
||||||
if (context.getPlayer() == null) {
|
if (context.getPlayer() == null) {
|
||||||
|
@ -100,7 +100,7 @@ public class Filler extends ItemEnergy {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void releaseUsing(ItemStack stack, Level world, LivingEntity entity, int timeLeft) {
|
public void releaseUsing(@Nonnull ItemStack stack, Level world, @Nonnull LivingEntity entity, int timeLeft) {
|
||||||
if (!world.isClientSide) {
|
if (!world.isClientSide) {
|
||||||
boolean clear = true;
|
boolean clear = true;
|
||||||
if (entity instanceof Player player) {
|
if (entity instanceof Player player) {
|
||||||
|
@ -123,7 +123,7 @@ public class Filler extends ItemEnergy {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void inventoryTick(ItemStack stack, Level world, Entity entity, int itemSlot, boolean isSelected) {
|
public void inventoryTick(@Nonnull ItemStack stack, @Nonnull Level world, @Nonnull Entity entity, int itemSlot, boolean isSelected) {
|
||||||
super.inventoryTick(stack, world, entity, itemSlot, isSelected);
|
super.inventoryTick(stack, world, entity, itemSlot, isSelected);
|
||||||
|
|
||||||
|
|
||||||
|
@ -207,7 +207,7 @@ public class Filler extends ItemEnergy {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void appendHoverText(ItemStack stack, @Nullable TooltipContext context, List<Component> tooltip, TooltipFlag flagIn) {
|
public void appendHoverText(@Nonnull ItemStack stack, @Nonnull TooltipContext context, @Nonnull List<Component> tooltip, @Nonnull TooltipFlag flagIn) {
|
||||||
super.appendHoverText(stack, context, tooltip, flagIn);
|
super.appendHoverText(stack, context, tooltip, flagIn);
|
||||||
|
|
||||||
MutableComponent display = loadData(stack)
|
MutableComponent display = loadData(stack)
|
||||||
|
@ -218,7 +218,7 @@ public class Filler extends ItemEnergy {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getUseDuration(ItemStack stack, LivingEntity livingEntity) {
|
public int getUseDuration(@Nonnull ItemStack stack, @Nonnull LivingEntity livingEntity) {
|
||||||
return Integer.MAX_VALUE;
|
return Integer.MAX_VALUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,7 +71,7 @@ public class ItemBattery extends ItemEnergy {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void appendHoverText(ItemStack stack, @Nullable TooltipContext playerIn, List<Component> list, TooltipFlag advanced) {
|
public void appendHoverText(@Nonnull ItemStack stack, @Nonnull TooltipContext playerIn, @Nonnull List<Component> list, @Nonnull TooltipFlag advanced) {
|
||||||
super.appendHoverText(stack, playerIn, list, advanced);
|
super.appendHoverText(stack, playerIn, list, advanced);
|
||||||
list.add(Component.translatable("tooltip.actuallyadditions.battery." + (ItemUtil.isEnabled(stack)
|
list.add(Component.translatable("tooltip.actuallyadditions.battery." + (ItemUtil.isEnabled(stack)
|
||||||
? "discharge"
|
? "discharge"
|
||||||
|
|
|
@ -13,7 +13,6 @@ package de.ellpeck.actuallyadditions.mod.items;
|
||||||
import de.ellpeck.actuallyadditions.mod.components.ActuallyComponents;
|
import de.ellpeck.actuallyadditions.mod.components.ActuallyComponents;
|
||||||
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
|
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityPlayerInterface;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityPlayerInterface;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
|
@ -26,6 +25,7 @@ import net.minecraft.world.item.context.UseOnContext;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ public class ItemPlayerProbe extends ItemBase {
|
||||||
|
|
||||||
// TODO: [port] might be the wrong event
|
// TODO: [port] might be the wrong event
|
||||||
@Override
|
@Override
|
||||||
public void inventoryTick(ItemStack stack, Level world, Entity entity, int itemSlot, boolean isSelected) {
|
public void inventoryTick(@Nonnull ItemStack stack, Level world, @Nonnull Entity entity, int itemSlot, boolean isSelected) {
|
||||||
if (!world.isClientSide) {
|
if (!world.isClientSide) {
|
||||||
UUID uuid = stack.get(ActuallyComponents.UUID);
|
UUID uuid = stack.get(ActuallyComponents.UUID);
|
||||||
if (uuid != null) {
|
if (uuid != null) {
|
||||||
|
@ -57,6 +57,7 @@ public class ItemPlayerProbe extends ItemBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public InteractionResult useOn(UseOnContext context) {
|
public InteractionResult useOn(UseOnContext context) {
|
||||||
Player player = context.getPlayer();
|
Player player = context.getPlayer();
|
||||||
|
@ -84,11 +85,12 @@ public class ItemPlayerProbe extends ItemBase {
|
||||||
return InteractionResult.FAIL;
|
return InteractionResult.FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public InteractionResult interactLivingEntity(ItemStack aStack, Player player, LivingEntity entity, InteractionHand hand) {
|
public InteractionResult interactLivingEntity(@Nonnull ItemStack aStack, Player player, @Nonnull LivingEntity entity, @Nonnull InteractionHand hand) {
|
||||||
if (!player.level().isClientSide) {
|
if (!player.level().isClientSide) {
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
if (StackUtil.isValid(stack) && stack.getItem() == this) {
|
if (!stack.isEmpty() && stack.getItem() == this) {
|
||||||
if (entity instanceof Player playerHit) {
|
if (entity instanceof Player playerHit) {
|
||||||
|
|
||||||
if (!playerHit.isShiftKeyDown()) {
|
if (!playerHit.isShiftKeyDown()) {
|
||||||
|
@ -104,7 +106,7 @@ public class ItemPlayerProbe extends ItemBase {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void appendHoverText(ItemStack stack, TooltipContext pContext, List<Component> tooltip, TooltipFlag advanced) {
|
public void appendHoverText(ItemStack stack, @Nonnull TooltipContext pContext, @Nonnull List<Component> tooltip, @Nonnull TooltipFlag advanced) {
|
||||||
String name = stack.get(ActuallyComponents.NAME);
|
String name = stack.get(ActuallyComponents.NAME);
|
||||||
if (name != null) {
|
if (name != null) {
|
||||||
tooltip.add(Component.translatable("tooltip.actuallyadditions.playerProbe.probing").append(": " + name));
|
tooltip.add(Component.translatable("tooltip.actuallyadditions.playerProbe.probing").append(": " + name));
|
||||||
|
|
|
@ -39,6 +39,8 @@ import net.neoforged.bus.api.SubscribeEvent;
|
||||||
import net.neoforged.neoforge.common.NeoForge;
|
import net.neoforged.neoforge.common.NeoForge;
|
||||||
import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent;
|
import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public class ItemWaterBowl extends ItemBase {
|
public class ItemWaterBowl extends ItemBase {
|
||||||
|
|
||||||
public ItemWaterBowl() {
|
public ItemWaterBowl() {
|
||||||
|
@ -68,7 +70,7 @@ public class ItemWaterBowl extends ItemBase {
|
||||||
ItemStack reduced = StackUtil.shrink(event.getItemStack(), 1);
|
ItemStack reduced = StackUtil.shrink(event.getItemStack(), 1);
|
||||||
|
|
||||||
ItemStack bowl = new ItemStack(ActuallyItems.WATER_BOWL.get());
|
ItemStack bowl = new ItemStack(ActuallyItems.WATER_BOWL.get());
|
||||||
if (!StackUtil.isValid(reduced)) {
|
if (reduced.isEmpty()) {
|
||||||
event.getEntity().setItemInHand(event.getHand(), bowl);
|
event.getEntity().setItemInHand(event.getHand(), bowl);
|
||||||
} else if (!event.getEntity().getInventory().add(bowl.copy())) {
|
} else if (!event.getEntity().getInventory().add(bowl.copy())) {
|
||||||
ItemEntity entityItem = new ItemEntity(event.getLevel(), event.getEntity().getX(), event.getEntity().getY(), event.getEntity().getZ(), bowl.copy());
|
ItemEntity entityItem = new ItemEntity(event.getLevel(), event.getEntity().getX(), event.getEntity().getY(), event.getEntity().getZ(), bowl.copy());
|
||||||
|
@ -82,13 +84,14 @@ public class ItemWaterBowl extends ItemBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public InteractionResultHolder<ItemStack> use(Level world, Player player, InteractionHand hand) {
|
public InteractionResultHolder<ItemStack> use(@Nonnull Level world, Player player, @Nonnull InteractionHand hand) {
|
||||||
ItemStack stack = player.getItemInHand(hand);
|
ItemStack stack = player.getItemInHand(hand);
|
||||||
|
|
||||||
HitResult trace = player.pick(8.0D, 1.0F, false);
|
HitResult trace = player.pick(8.0D, 1.0F, false);
|
||||||
|
|
||||||
if (trace == null) {
|
if (trace.getType() == HitResult.Type.MISS) {
|
||||||
return InteractionResultHolder.pass(stack);
|
return InteractionResultHolder.pass(stack);
|
||||||
} else if (trace.getType() != HitResult.Type.BLOCK) {
|
} else if (trace.getType() != HitResult.Type.BLOCK) {
|
||||||
return InteractionResultHolder.pass(stack);
|
return InteractionResultHolder.pass(stack);
|
||||||
|
@ -117,7 +120,7 @@ public class ItemWaterBowl extends ItemBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void inventoryTick(ItemStack stack, Level world, Entity entity, int itemSlot, boolean isSelected) {
|
public void inventoryTick(@Nonnull ItemStack stack, Level world, @Nonnull Entity entity, int itemSlot, boolean isSelected) {
|
||||||
if (!world.isClientSide) {
|
if (!world.isClientSide) {
|
||||||
if (CommonConfig.Other.WATER_BOWL_LOSS.get()) {
|
if (CommonConfig.Other.WATER_BOWL_LOSS.get()) {
|
||||||
if (world.getGameTime() % 10 == 0 && world.random.nextFloat() >= 0.5F) {
|
if (world.getGameTime() % 10 == 0 && world.random.nextFloat() >= 0.5F) {
|
||||||
|
@ -159,7 +162,7 @@ public class ItemWaterBowl extends ItemBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) {
|
public boolean shouldCauseReequipAnimation(@Nonnull ItemStack oldStack, @Nonnull ItemStack newStack, boolean slotChanged) {
|
||||||
return !ItemStack.isSameItem(oldStack, newStack);
|
return !ItemStack.isSameItem(oldStack, newStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,75 +0,0 @@
|
||||||
/*
|
|
||||||
* This file ("ItemWaterRemovalRing.java") is part of the Actually Additions mod for Minecraft.
|
|
||||||
* It is created and owned by Ellpeck and distributed
|
|
||||||
* under the Actually Additions License to be found at
|
|
||||||
* http://ellpeck.de/actaddlicense
|
|
||||||
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
|
||||||
*
|
|
||||||
* © 2015-2017 Ellpeck
|
|
||||||
*/
|
|
||||||
|
|
||||||
package de.ellpeck.actuallyadditions.mod.items;
|
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy;
|
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.core.BlockPos;
|
|
||||||
import net.minecraft.util.Mth;
|
|
||||||
import net.minecraft.world.entity.Entity;
|
|
||||||
import net.minecraft.world.entity.player.Player;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
|
||||||
import net.minecraft.world.level.Level;
|
|
||||||
import net.minecraft.world.level.block.Block;
|
|
||||||
import net.minecraft.world.level.block.Blocks;
|
|
||||||
|
|
||||||
public class ItemWaterRemovalRing extends ItemEnergy {
|
|
||||||
|
|
||||||
public ItemWaterRemovalRing() {
|
|
||||||
super(800000, 1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void inventoryTick(ItemStack stack, Level world, Entity player, int itemSlot, boolean isSelected) {
|
|
||||||
if (!(player instanceof Player) || player.level().isClientSide || player.isShiftKeyDown()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemStack equipped = ((Player) player).getMainHandItem();
|
|
||||||
|
|
||||||
int energyUse = 150;
|
|
||||||
if (StackUtil.isValid(equipped) && equipped == stack && this.getEnergyStored(stack) >= energyUse) {
|
|
||||||
|
|
||||||
//Setting everything to air
|
|
||||||
int range = 3;
|
|
||||||
for (int x = -range; x < range + 1; x++) {
|
|
||||||
for (int z = -range; z < range + 1; z++) {
|
|
||||||
for (int y = -range; y < range + 1; y++) {
|
|
||||||
int theX = Mth.floor(player.getX() + x);
|
|
||||||
int theY = Mth.floor(player.getY() + y);
|
|
||||||
int theZ = Mth.floor(player.getZ() + z);
|
|
||||||
|
|
||||||
//Remove Water
|
|
||||||
BlockPos pos = new BlockPos(theX, theY, theZ);
|
|
||||||
Block block = world.getBlockState(pos).getBlock();
|
|
||||||
// TODO: Ensure water check is correct
|
|
||||||
if ((block == Blocks.WATER) && this.getEnergyStored(stack) >= energyUse) {
|
|
||||||
world.setBlockAndUpdate(pos, Blocks.AIR.defaultBlockState());
|
|
||||||
|
|
||||||
if (!((Player) player).isCreative()) {
|
|
||||||
this.extractEnergy(stack, energyUse, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//Remove Lava
|
|
||||||
// TODO: Ensure lava check is correct
|
|
||||||
else if ((block == Blocks.LAVA) && this.getEnergyStored(stack) >= energyUse * 2) {
|
|
||||||
world.setBlockAndUpdate(pos, Blocks.AIR.defaultBlockState());
|
|
||||||
|
|
||||||
if (!((Player) player).isCreative()) {
|
|
||||||
this.extractEnergy(stack, energyUse * 2, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -14,7 +14,6 @@ import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
|
||||||
import de.ellpeck.actuallyadditions.mod.data.PlayerData;
|
import de.ellpeck.actuallyadditions.mod.data.PlayerData;
|
||||||
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
|
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
|
||||||
import de.ellpeck.actuallyadditions.mod.network.PacketHelperServer;
|
import de.ellpeck.actuallyadditions.mod.network.PacketHelperServer;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
|
@ -29,6 +28,8 @@ import net.neoforged.bus.api.SubscribeEvent;
|
||||||
import net.neoforged.neoforge.event.entity.living.LivingDropsEvent;
|
import net.neoforged.neoforge.event.entity.living.LivingDropsEvent;
|
||||||
import net.neoforged.neoforge.event.tick.PlayerTickEvent;
|
import net.neoforged.neoforge.event.tick.PlayerTickEvent;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public class ItemWingsOfTheBats extends ItemBase {
|
public class ItemWingsOfTheBats extends ItemBase {
|
||||||
|
|
||||||
public static final String THE_BAT_BAT = "the bat bat";
|
public static final String THE_BAT_BAT = "the bat bat";
|
||||||
|
@ -50,7 +51,7 @@ public class ItemWingsOfTheBats extends ItemBase {
|
||||||
*/
|
*/
|
||||||
public static ItemStack getWingItem(Player player) {
|
public static ItemStack getWingItem(Player player) {
|
||||||
for (int i = 0; i < player.getInventory().getContainerSize(); i++) {
|
for (int i = 0; i < player.getInventory().getContainerSize(); i++) {
|
||||||
if (StackUtil.isValid(player.getInventory().getItem(i)) && player.getInventory().getItem(i).getItem() instanceof ItemWingsOfTheBats) {
|
if (!player.getInventory().getItem(i).isEmpty() && player.getInventory().getItem(i).getItem() instanceof ItemWingsOfTheBats) {
|
||||||
return player.getInventory().getItem(i);
|
return player.getInventory().getItem(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,12 +59,12 @@ public class ItemWingsOfTheBats extends ItemBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isBarVisible(ItemStack stack) {
|
public boolean isBarVisible(@Nonnull ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getBarWidth(ItemStack stack) {
|
public int getBarWidth(@Nonnull ItemStack stack) {
|
||||||
/* PlayerEntity player = ClientProxy.getCurrentPlayer();
|
/* PlayerEntity player = ClientProxy.getCurrentPlayer();
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
// PlayerData.PlayerSave data = PlayerData.getDataFromPlayer(player);
|
// PlayerData.PlayerSave data = PlayerData.getDataFromPlayer(player);
|
||||||
|
@ -74,7 +75,7 @@ public class ItemWingsOfTheBats extends ItemBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getBarColor(ItemStack stack) {
|
public int getBarColor(@Nonnull ItemStack stack) {
|
||||||
/* PlayerEntity player = ClientProxy.getCurrentPlayer();
|
/* PlayerEntity player = ClientProxy.getCurrentPlayer();
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
// PlayerData.PlayerSave data = PlayerData.getDataFromPlayer(player);
|
// PlayerData.PlayerSave data = PlayerData.getDataFromPlayer(player);
|
||||||
|
@ -96,7 +97,7 @@ public class ItemWingsOfTheBats extends ItemBase {
|
||||||
Iterable<ItemStack> equip = player.getHandSlots();
|
Iterable<ItemStack> equip = player.getHandSlots();
|
||||||
for (ItemStack stack : equip) {
|
for (ItemStack stack : equip) {
|
||||||
// Todo: [port] this might not work anymore due to the way things are checked
|
// Todo: [port] this might not work anymore due to the way things are checked
|
||||||
if (StackUtil.isValid(stack) && ItemWingsOfTheBats.THE_BAT_BAT.equalsIgnoreCase(stack.getHoverName().getString()) && stack.getItem() instanceof SwordItem) {
|
if (!stack.isEmpty() && ItemWingsOfTheBats.THE_BAT_BAT.equalsIgnoreCase(stack.getHoverName().getString()) && stack.getItem() instanceof SwordItem) {
|
||||||
looting += 3;
|
looting += 3;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -121,7 +122,7 @@ public class ItemWingsOfTheBats extends ItemBase {
|
||||||
boolean tryDeduct = false;
|
boolean tryDeduct = false;
|
||||||
boolean shouldSend = false;
|
boolean shouldSend = false;
|
||||||
|
|
||||||
boolean wingsEquipped = StackUtil.isValid(ItemWingsOfTheBats.getWingItem(player));
|
boolean wingsEquipped = !ItemWingsOfTheBats.getWingItem(player).isEmpty();
|
||||||
if (!data.hasBatWings) {
|
if (!data.hasBatWings) {
|
||||||
if (data.batWingsFlyTime <= 0) {
|
if (data.batWingsFlyTime <= 0) {
|
||||||
if (wingsEquipped) {
|
if (wingsEquipped) {
|
||||||
|
|
|
@ -25,6 +25,7 @@ import net.neoforged.neoforge.capabilities.Capabilities;
|
||||||
import net.neoforged.neoforge.energy.EnergyStorage;
|
import net.neoforged.neoforge.energy.EnergyStorage;
|
||||||
import net.neoforged.neoforge.energy.IEnergyStorage;
|
import net.neoforged.neoforge.energy.IEnergyStorage;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.text.NumberFormat;
|
import java.text.NumberFormat;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
@ -46,7 +47,7 @@ public abstract class ItemEnergy extends ItemBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void appendHoverText(ItemStack stack, TooltipContext context, List<Component> tooltip, TooltipFlag flagIn) {
|
public void appendHoverText(@Nonnull ItemStack stack, @Nonnull TooltipContext context, @Nonnull List<Component> tooltip, @Nonnull TooltipFlag flagIn) {
|
||||||
super.appendHoverText(stack, context, tooltip, flagIn);
|
super.appendHoverText(stack, context, tooltip, flagIn);
|
||||||
IEnergyStorage storage = stack.getCapability(Capabilities.EnergyStorage.ITEM);
|
IEnergyStorage storage = stack.getCapability(Capabilities.EnergyStorage.ITEM);
|
||||||
if(storage != null) {
|
if(storage != null) {
|
||||||
|
|
|
@ -67,7 +67,7 @@ public class LensColor extends Lens {
|
||||||
for (ItemEntity item : items) {
|
for (ItemEntity item : items) {
|
||||||
if (item.isAlive() && !item.getItem().isEmpty() && tile.getEnergy() >= ENERGY_USE) {
|
if (item.isAlive() && !item.getItem().isEmpty() && tile.getEnergy() >= ENERGY_USE) {
|
||||||
ItemStack newStack = this.tryConvert(item.getItem(), tile.getWorldObject().registryAccess());
|
ItemStack newStack = this.tryConvert(item.getItem(), tile.getWorldObject().registryAccess());
|
||||||
if (StackUtil.isValid(newStack)) {
|
if (!newStack.isEmpty()) {
|
||||||
item.discard();
|
item.discard();
|
||||||
|
|
||||||
ItemEntity newItem = new ItemEntity(tile.getWorldObject(), item.getX(), item.getY(), item.getZ(), newStack);
|
ItemEntity newItem = new ItemEntity(tile.getWorldObject(), item.getX(), item.getY(), item.getZ(), newStack);
|
||||||
|
|
|
@ -13,7 +13,6 @@ package de.ellpeck.actuallyadditions.mod.items.lens;
|
||||||
import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor;
|
import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor;
|
||||||
import de.ellpeck.actuallyadditions.api.lens.Lens;
|
import de.ellpeck.actuallyadditions.api.lens.Lens;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.ItemUtil;
|
import de.ellpeck.actuallyadditions.mod.util.ItemUtil;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Holder;
|
import net.minecraft.core.Holder;
|
||||||
|
@ -45,7 +44,7 @@ public class LensDisenchanting extends Lens {
|
||||||
for (ItemEntity item : items) {
|
for (ItemEntity item : items) {
|
||||||
if (item != null && item.isAlive()) {
|
if (item != null && item.isAlive()) {
|
||||||
ItemStack stack = item.getItem();
|
ItemStack stack = item.getItem();
|
||||||
if (StackUtil.isValid(stack) && stack.getCount() == 1) {
|
if (!stack.isEmpty() && stack.getCount() == 1) {
|
||||||
Item stackItem = stack.getItem();
|
Item stackItem = stack.getItem();
|
||||||
if (stackItem == Items.BOOK || stackItem == Items.ENCHANTED_BOOK) {
|
if (stackItem == Items.BOOK || stackItem == Items.ENCHANTED_BOOK) {
|
||||||
if (book == null) {
|
if (book == null) {
|
||||||
|
@ -55,7 +54,7 @@ public class LensDisenchanting extends Lens {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ItemEnchantments enchants = stack.getAllEnchantments(tile.getWorldObject().registryAccess().lookupOrThrow(Registries.ENCHANTMENT));
|
ItemEnchantments enchants = stack.getAllEnchantments(tile.getWorldObject().registryAccess().lookupOrThrow(Registries.ENCHANTMENT));
|
||||||
if (enchants != null && !enchants.isEmpty()) {
|
if (!enchants.isEmpty()) {
|
||||||
if (toDisenchant == null) {
|
if (toDisenchant == null) {
|
||||||
toDisenchant = item;
|
toDisenchant = item;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -19,7 +19,6 @@ import de.ellpeck.actuallyadditions.mod.blocks.BlockLaserRelay;
|
||||||
import de.ellpeck.actuallyadditions.mod.crafting.CoffeeIngredientRecipe;
|
import de.ellpeck.actuallyadditions.mod.crafting.CoffeeIngredientRecipe;
|
||||||
import de.ellpeck.actuallyadditions.mod.crafting.LaserRecipe;
|
import de.ellpeck.actuallyadditions.mod.crafting.LaserRecipe;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityAtomicReconstructor;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityAtomicReconstructor;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Holder;
|
import net.minecraft.core.Holder;
|
||||||
|
@ -228,7 +227,7 @@ public class MethodHandler implements IMethodHandler {
|
||||||
List<ItemEntity> items = tile.getWorldObject().getEntitiesOfClass(ItemEntity.class, aabb);
|
List<ItemEntity> items = tile.getWorldObject().getEntitiesOfClass(ItemEntity.class, aabb);
|
||||||
for (ItemEntity item : items) {
|
for (ItemEntity item : items) {
|
||||||
ItemStack stack = item.getItem();
|
ItemStack stack = item.getItem();
|
||||||
if (item.isAlive() && StackUtil.isValid(stack) && !item.getPersistentData().getBoolean("aa_cnv")) {
|
if (item.isAlive() && !stack.isEmpty() && !item.getPersistentData().getBoolean("aa_cnv")) {
|
||||||
Optional<RecipeHolder<LaserRecipe>> holder = LaserRecipe.getRecipeForStack(stack);
|
Optional<RecipeHolder<LaserRecipe>> holder = LaserRecipe.getRecipeForStack(stack);
|
||||||
if (holder.isPresent()) {
|
if (holder.isPresent()) {
|
||||||
LaserRecipe recipe = holder.get().value();
|
LaserRecipe recipe = holder.get().value();
|
||||||
|
|
|
@ -13,7 +13,6 @@ package de.ellpeck.actuallyadditions.mod.misc.apiimpl.farmer;
|
||||||
import de.ellpeck.actuallyadditions.api.farmer.FarmerResult;
|
import de.ellpeck.actuallyadditions.api.farmer.FarmerResult;
|
||||||
import de.ellpeck.actuallyadditions.api.farmer.IFarmerBehavior;
|
import de.ellpeck.actuallyadditions.api.farmer.IFarmerBehavior;
|
||||||
import de.ellpeck.actuallyadditions.api.internal.IFarmer;
|
import de.ellpeck.actuallyadditions.api.internal.IFarmer;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
|
@ -35,7 +34,7 @@ public class MelonPumpkinFarmerBehavior implements IFarmerBehavior {
|
||||||
public FarmerResult tryPlantSeed(ItemStack seed, Level world, BlockPos pos, IFarmer farmer) {
|
public FarmerResult tryPlantSeed(ItemStack seed, Level world, BlockPos pos, IFarmer farmer) {
|
||||||
int use = 350;
|
int use = 350;
|
||||||
if (farmer.getEnergy() >= use * 2) {
|
if (farmer.getEnergy() >= use * 2) {
|
||||||
if (StackUtil.isValid(seed)) {
|
if (!seed.isEmpty()) {
|
||||||
Item seedItem = seed.getItem();
|
Item seedItem = seed.getItem();
|
||||||
boolean isPumpkin = seedItem == Items.PUMPKIN_SEEDS;
|
boolean isPumpkin = seedItem == Items.PUMPKIN_SEEDS;
|
||||||
if (isPumpkin || seedItem == Items.MELON_SEEDS) {
|
if (isPumpkin || seedItem == Items.MELON_SEEDS) {
|
||||||
|
|
|
@ -32,39 +32,14 @@ public class SpecialRenderInit {
|
||||||
new ThreadSpecialFetcher();
|
new ThreadSpecialFetcher();
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: [port][note] ensure that this still works with the special people stuff
|
|
||||||
public static void parse(Properties properties) {
|
public static void parse(Properties properties) {
|
||||||
for (String key : properties.stringPropertyNames()) {
|
for (String key : properties.stringPropertyNames()) {
|
||||||
String[] values = properties.getProperty(key).split("@");
|
String value = properties.getProperty(key);
|
||||||
if (values.length > 0) {
|
if (!value.isEmpty()) {
|
||||||
String itemName = values[0];
|
ResourceLocation resLoc = ResourceLocation.tryParse(value);
|
||||||
|
|
||||||
int meta;
|
|
||||||
try {
|
|
||||||
meta = Integer.parseInt(values[1]);
|
|
||||||
} catch (Exception e) {
|
|
||||||
meta = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: remove tolowercase hack
|
|
||||||
ResourceLocation resLoc = ResourceLocation.tryParse(itemName.toLowerCase());
|
|
||||||
ItemStack stack = findItem(resLoc);
|
ItemStack stack = findItem(resLoc);
|
||||||
|
|
||||||
//TODO Remove this block once the transition to 1.11 is done and the special people stuff file has been converted to snake_case
|
if (!stack.isEmpty()) {
|
||||||
if (!StackUtil.isValid(stack)) {
|
|
||||||
String convertedItemName = "";
|
|
||||||
for (char c : itemName.toCharArray()) {
|
|
||||||
if (Character.isUpperCase(c)) {
|
|
||||||
convertedItemName += "_";
|
|
||||||
convertedItemName += Character.toLowerCase(c);
|
|
||||||
} else {
|
|
||||||
convertedItemName += c;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stack = findItem(ResourceLocation.tryParse(convertedItemName));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StackUtil.isValid(stack)) {
|
|
||||||
SPECIAL_LIST.put(key.toLowerCase(Locale.ROOT), new RenderSpecial(stack));
|
SPECIAL_LIST.put(key.toLowerCase(Locale.ROOT), new RenderSpecial(stack));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -73,14 +48,14 @@ public class SpecialRenderInit {
|
||||||
|
|
||||||
private static ItemStack findItem(ResourceLocation resLoc) {
|
private static ItemStack findItem(ResourceLocation resLoc) {
|
||||||
if (BuiltInRegistries.ITEM.containsKey(resLoc)) {
|
if (BuiltInRegistries.ITEM.containsKey(resLoc)) {
|
||||||
Item item = BuiltInRegistries.ITEM.get(resLoc);
|
var item = BuiltInRegistries.ITEM.getOptional(resLoc);
|
||||||
if (item != null) {
|
if (item.isPresent()) {
|
||||||
return new ItemStack(item);
|
return new ItemStack(item.get());
|
||||||
}
|
}
|
||||||
} else if (BuiltInRegistries.BLOCK.containsKey(resLoc)) {
|
} else if (BuiltInRegistries.BLOCK.containsKey(resLoc)) {
|
||||||
Block block = BuiltInRegistries.BLOCK.get(resLoc);
|
var block = BuiltInRegistries.BLOCK.getOptional(resLoc);
|
||||||
if (block != null) {
|
if (block.isPresent()) {
|
||||||
return new ItemStack(block);
|
return new ItemStack(block.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
|
|
|
@ -45,7 +45,7 @@ public class TileEntityDisplayStand extends TileEntityInventoryBase implements I
|
||||||
if (t instanceof TileEntityDisplayStand tile) {
|
if (t instanceof TileEntityDisplayStand tile) {
|
||||||
tile.serverTick();
|
tile.serverTick();
|
||||||
|
|
||||||
if (StackUtil.isValid(tile.inv.getStackInSlot(0)) && !tile.isRedstonePowered) {
|
if (!tile.inv.getStackInSlot(0).isEmpty() && !tile.isRedstonePowered) {
|
||||||
IDisplayStandItem item = tile.convertToDisplayStandItem(tile.inv.getStackInSlot(0).getItem());
|
IDisplayStandItem item = tile.convertToDisplayStandItem(tile.inv.getStackInSlot(0).getItem());
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
int energy = item.getUsePerTick(tile.inv.getStackInSlot(0), tile, tile.ticksElapsed);
|
int energy = item.getUsePerTick(tile.inv.getStackInSlot(0), tile, tile.ticksElapsed);
|
||||||
|
|
|
@ -53,6 +53,7 @@ public class TileEntityItemInterface extends TileEntityBase {
|
||||||
return TileEntityItemInterface.this.getSlotCount();
|
return TileEntityItemInterface.this.getSlotCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack getStackInSlot(int slot) {
|
public ItemStack getStackInSlot(int slot) {
|
||||||
IItemHandlerInfo handler = TileEntityItemInterface.this.getSwitchedIndexHandler(slot);
|
IItemHandlerInfo handler = TileEntityItemInterface.this.getSwitchedIndexHandler(slot);
|
||||||
|
@ -62,8 +63,9 @@ public class TileEntityItemInterface extends TileEntityBase {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) {
|
public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) {
|
||||||
IItemHandlerInfo info = TileEntityItemInterface.this.getSwitchedIndexHandler(slot);
|
IItemHandlerInfo info = TileEntityItemInterface.this.getSwitchedIndexHandler(slot);
|
||||||
if (info != null && info.isLoaded() && TileEntityItemInterface.this.isWhitelisted(info, stack, false)) {
|
if (info != null && info.isLoaded() && TileEntityItemInterface.this.isWhitelisted(info, stack, false)) {
|
||||||
ItemStack remain = info.handler.insertItem(info.switchedIndex, stack, simulate);
|
ItemStack remain = info.handler.insertItem(info.switchedIndex, stack, simulate);
|
||||||
|
@ -76,14 +78,15 @@ public class TileEntityItemInterface extends TileEntityBase {
|
||||||
return stack;
|
return stack;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack extractItem(int slot, int amount, boolean simulate) {
|
public ItemStack extractItem(int slot, int amount, boolean simulate) {
|
||||||
ItemStack stackIn = this.getStackInSlot(slot);
|
ItemStack stackIn = this.getStackInSlot(slot);
|
||||||
if (StackUtil.isValid(stackIn)) {
|
if (!stackIn.isEmpty()) {
|
||||||
IItemHandlerInfo info = TileEntityItemInterface.this.getSwitchedIndexHandler(slot);
|
IItemHandlerInfo info = TileEntityItemInterface.this.getSwitchedIndexHandler(slot);
|
||||||
if (info != null && info.isLoaded() && TileEntityItemInterface.this.isWhitelisted(info, stackIn, true)) {
|
if (info != null && info.isLoaded() && TileEntityItemInterface.this.isWhitelisted(info, stackIn, true)) {
|
||||||
ItemStack extracted = info.handler.extractItem(info.switchedIndex, amount, simulate);
|
ItemStack extracted = info.handler.extractItem(info.switchedIndex, amount, simulate);
|
||||||
if (StackUtil.isValid(extracted) && !simulate) {
|
if (!extracted.isEmpty() && !simulate) {
|
||||||
TileEntityItemInterface.this.setChanged();
|
TileEntityItemInterface.this.setChanged();
|
||||||
TileEntityItemInterface.this.doItemParticle(extracted, TileEntityItemInterface.this.connectedRelay.getBlockPos(), info.relayInQuestion.getBlockPos());
|
TileEntityItemInterface.this.doItemParticle(extracted, TileEntityItemInterface.this.connectedRelay.getBlockPos(), info.relayInQuestion.getBlockPos());
|
||||||
}
|
}
|
||||||
|
@ -285,7 +288,7 @@ public class TileEntityItemInterface extends TileEntityBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class IItemHandlerInfo extends SpecificItemHandlerInfo {
|
public static class IItemHandlerInfo extends SpecificItemHandlerInfo {
|
||||||
|
|
||||||
public final IItemHandler handler;
|
public final IItemHandler handler;
|
||||||
public final int switchedIndex;
|
public final int switchedIndex;
|
||||||
|
@ -297,7 +300,7 @@ public class TileEntityItemInterface extends TileEntityBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class SpecificItemHandlerInfo {
|
public static class SpecificItemHandlerInfo {
|
||||||
|
|
||||||
public final TileEntityLaserRelayItem relayInQuestion;
|
public final TileEntityLaserRelayItem relayInQuestion;
|
||||||
|
|
||||||
|
|
|
@ -186,7 +186,7 @@ public abstract class TileEntityLaserRelay extends TileEntityInventoryBase {
|
||||||
|
|
||||||
public int getMaxRange() {
|
public int getMaxRange() {
|
||||||
ItemStack upgrade = this.inv.getStackInSlot(0);
|
ItemStack upgrade = this.inv.getStackInSlot(0);
|
||||||
if (StackUtil.isValid(upgrade) && upgrade.getItem() == ActuallyItems.LASER_UPGRADE_RANGE.get()) {
|
if (!upgrade.isEmpty() && upgrade.getItem() == ActuallyItems.LASER_UPGRADE_RANGE.get()) {
|
||||||
return MAX_DISTANCE_RANGED;
|
return MAX_DISTANCE_RANGED;
|
||||||
} else {
|
} else {
|
||||||
return MAX_DISTANCE;
|
return MAX_DISTANCE;
|
||||||
|
|
|
@ -175,7 +175,7 @@ public class TileEntityXPSolidifier extends TileEntityInventoryBase implements I
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemStack stack = tile.inv.getStackInSlot(1);
|
ItemStack stack = tile.inv.getStackInSlot(1);
|
||||||
if (StackUtil.isValid(stack) && stack.getItem() instanceof ItemSolidifiedExperience) {
|
if (!stack.isEmpty() && stack.getItem() instanceof ItemSolidifiedExperience) {
|
||||||
int remainingSpace = Mth.clamp(Integer.MAX_VALUE - tile.amount, 0, stack.getCount());
|
int remainingSpace = Mth.clamp(Integer.MAX_VALUE - tile.amount, 0, stack.getCount());
|
||||||
if (stack.getCount() >= remainingSpace && remainingSpace != 0) {
|
if (stack.getCount() >= remainingSpace && remainingSpace != 0) {
|
||||||
tile.amount += remainingSpace;
|
tile.amount += remainingSpace;
|
||||||
|
|
|
@ -45,6 +45,8 @@ import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
import net.neoforged.neoforge.client.ClientHooks;
|
import net.neoforged.neoforge.client.ClientHooks;
|
||||||
import org.joml.Matrix4f;
|
import org.joml.Matrix4f;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public final class AssetUtil {
|
public final class AssetUtil {
|
||||||
|
|
||||||
public static final int MAX_LIGHT_X = 0xF000F0;
|
public static final int MAX_LIGHT_X = 0xF000F0;
|
||||||
|
@ -94,8 +96,8 @@ public final class AssetUtil {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
public static void renderItemWithoutScrewingWithColors(ItemStack stack, PoseStack matrices, int combinedOverlay, int combinedLight) {
|
public static void renderItemWithoutScrewingWithColors(@Nonnull ItemStack stack, PoseStack matrices, int combinedOverlay, int combinedLight) {
|
||||||
if (StackUtil.isValid(stack)) {
|
if (!stack.isEmpty()) {
|
||||||
Minecraft mc = Minecraft.getInstance();
|
Minecraft mc = Minecraft.getInstance();
|
||||||
ItemRenderer renderer = mc.getItemRenderer();
|
ItemRenderer renderer = mc.getItemRenderer();
|
||||||
TextureManager manager = mc.getTextureManager();
|
TextureManager manager = mc.getTextureManager();
|
||||||
|
|
|
@ -1,109 +0,0 @@
|
||||||
// TODO: [port][note] no longer used
|
|
||||||
///*
|
|
||||||
// * This file ("AwfulUtil.java") is part of the Actually Additions mod for Minecraft.
|
|
||||||
// * It is created and owned by Ellpeck and distributed
|
|
||||||
// * under the Actually Additions License to be found at
|
|
||||||
// * http://ellpeck.de/actaddlicense
|
|
||||||
// * View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
|
||||||
// *
|
|
||||||
// * © 2015-2017 Ellpeck
|
|
||||||
// */
|
|
||||||
//
|
|
||||||
//package de.ellpeck.actuallyadditions.mod.util;
|
|
||||||
//
|
|
||||||
//import com.google.common.collect.Lists;
|
|
||||||
//import net.minecraft.item.ItemStack;
|
|
||||||
//import net.minecraft.loot.LootContext;
|
|
||||||
//import net.minecraft.loot.LootTable;
|
|
||||||
//import net.minecraft.util.math.MathHelper;
|
|
||||||
//import net.minecraftforge.fml.loading.FMLLoader;
|
|
||||||
//import net.minecraftforge.items.IItemHandlerModifiable;
|
|
||||||
//
|
|
||||||
//import java.util.Collections;
|
|
||||||
//import java.util.Iterator;
|
|
||||||
//import java.util.List;
|
|
||||||
//import java.util.Random;
|
|
||||||
//
|
|
||||||
////This is stuff copied from somewhere in vanilla and changed so that it works properly
|
|
||||||
////It's unpolished and vanilla-y, so don't look at it! O_O
|
|
||||||
//public final class AwfulUtil {
|
|
||||||
//
|
|
||||||
// public static void fillInventory(LootTable table, IItemHandlerModifiable inventory, Random rand, LootContext context) {
|
|
||||||
// List<ItemStack> list = table.generateLootForPools(rand, context);
|
|
||||||
// List<Integer> list1 = getEmptySlotsRandomized(inventory, rand);
|
|
||||||
// shuffleItems(list, list1.size(), rand);
|
|
||||||
//
|
|
||||||
// for (ItemStack itemstack : list) {
|
|
||||||
// if (itemstack.isEmpty()) {
|
|
||||||
// inventory.setStackInSlot(list1.remove(list1.size() - 1), ItemStack.EMPTY);
|
|
||||||
// } else {
|
|
||||||
// inventory.setStackInSlot(list1.remove(list1.size() - 1), itemstack);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private static void shuffleItems(List<ItemStack> stacks, int someInt, Random rand) {
|
|
||||||
// List<ItemStack> list = Lists.newArrayList();
|
|
||||||
// Iterator<ItemStack> iterator = stacks.iterator();
|
|
||||||
//
|
|
||||||
// while (iterator.hasNext()) {
|
|
||||||
// ItemStack itemstack = iterator.next();
|
|
||||||
//
|
|
||||||
// if (itemstack.isEmpty()) {
|
|
||||||
// iterator.remove();
|
|
||||||
// } else if (itemstack.getCount() > 1) {
|
|
||||||
// list.add(itemstack);
|
|
||||||
// iterator.remove();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// someInt = someInt - stacks.size();
|
|
||||||
//
|
|
||||||
// while (someInt > 0 && list.size() > 0) {
|
|
||||||
// ItemStack itemstack2 = list.remove(MathHelper.nextInt(rand, 0, list.size() - 1));
|
|
||||||
// int i = MathHelper.nextInt(rand, 1, itemstack2.getCount() / 2);
|
|
||||||
// ItemStack itemstack1 = itemstack2.split(i);
|
|
||||||
//
|
|
||||||
// if (itemstack2.getCount() > 1 && rand.nextBoolean()) {
|
|
||||||
// list.add(itemstack2);
|
|
||||||
// } else {
|
|
||||||
// stacks.add(itemstack2);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (itemstack1.getCount() > 1 && rand.nextBoolean()) {
|
|
||||||
// list.add(itemstack1);
|
|
||||||
// } else {
|
|
||||||
// stacks.add(itemstack1);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// stacks.addAll(list);
|
|
||||||
// Collections.shuffle(stacks, rand);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private static List<Integer> getEmptySlotsRandomized(IItemHandlerModifiable inventory, Random rand) {
|
|
||||||
// List<Integer> list = Lists.newArrayList();
|
|
||||||
//
|
|
||||||
// for (int i = 0; i < inventory.getSlots(); ++i) {
|
|
||||||
// if (inventory.getStackInSlot(i).isEmpty()) {
|
|
||||||
// list.add(i);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Collections.shuffle(list, rand);
|
|
||||||
// return list;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public static void callTheFuckinPolice(Object... stuff) {
|
|
||||||
// int i = 0;
|
|
||||||
// String error = "Actually Additions: Something is very wrong. This method was provided with ";
|
|
||||||
// for (Object k : stuff) {
|
|
||||||
// error += "\n" + i++ + ": " + (k == null
|
|
||||||
// ? "null"
|
|
||||||
// : k.getClass().getSimpleName() + " <- CLASS | INSTANCE -> " + k.toString() + ", ");
|
|
||||||
// }
|
|
||||||
// error += "\n" + "The current side is: " + FMLLoader.getDist().name();
|
|
||||||
// error += "\n" + "Report this to https://github.com/Ellpeck/ActuallyAdditions/issues";
|
|
||||||
// throw new IllegalStateException(error);
|
|
||||||
// }
|
|
||||||
//}
|
|
|
@ -16,45 +16,9 @@ import net.minecraft.core.NonNullList;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.neoforged.neoforge.items.IItemHandler;
|
import net.neoforged.neoforge.items.IItemHandler;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public final class StackUtil {
|
public final class StackUtil {
|
||||||
|
|
||||||
/**
|
|
||||||
* Pretty much just a check for {@link ItemStack#isEmpty()} but exists in case Mojang does some more refactoring.
|
|
||||||
*
|
|
||||||
* @param stack The stack
|
|
||||||
* @return If the stack is not empty, or if it's an IDisableableItem, if its enabled.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public static boolean isValid(ItemStack stack) {
|
|
||||||
return stack != null && !stack.isEmpty();
|
|
||||||
// if (stack == null) AwfulUtil.callTheFuckinPolice("Null ItemStack detected", stack);
|
|
||||||
// Item i = stack.getItem();
|
|
||||||
// if (i instanceof IDisableableItem) return !((IDisableableItem) i).isDisabled();
|
|
||||||
// return !stack.isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if a collection of stacks are empty, as {@link Collection#isEmpty()} does not care about empty stacks.
|
|
||||||
*
|
|
||||||
* @param stacks Some ItemStacks
|
|
||||||
* @return If all stacks in the collection return true for {@link ItemStack#isEmpty()}
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public static boolean isEmpty(Collection<ItemStack> stacks) {
|
|
||||||
if (stacks.isEmpty()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
for (ItemStack s : stacks) {
|
|
||||||
if (!s.isEmpty()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if all provided itemstacks will fit in the AA handler. Use addAll below to actually add the stacks. This is strictly a check function.
|
* Checks if all provided itemstacks will fit in the AA handler. Use addAll below to actually add the stacks. This is strictly a check function.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
/*
|
|
||||||
* This file ("StringUtil.java") is part of the Actually Additions mod for Minecraft.
|
|
||||||
* It is created and owned by Ellpeck and distributed
|
|
||||||
* under the Actually Additions License to be found at
|
|
||||||
* http://ellpeck.de/actaddlicense
|
|
||||||
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
|
||||||
*
|
|
||||||
* © 2015-2017 Ellpeck
|
|
||||||
*/
|
|
||||||
|
|
||||||
package de.ellpeck.actuallyadditions.mod.util;
|
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
|
||||||
import net.minecraft.client.gui.Font;
|
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
|
||||||
import net.minecraft.client.resources.language.I18n;
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public final class StringUtil {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Localizes a given formatted String with the given Replacements
|
|
||||||
*/
|
|
||||||
|
|
||||||
public static String localizeFormatted(String text, Object... replace) {
|
|
||||||
return I18n.get(text, replace);
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: Move to official
|
|
||||||
@Deprecated
|
|
||||||
|
|
||||||
public static void drawSplitString(Font renderer, String strg, int x, int y, int width, int color, boolean shadow) {
|
|
||||||
// ResourcePackList <- holds the correct way
|
|
||||||
// List<String> list = renderer.listFormattedStringToWidth(strg, width);
|
|
||||||
// for (int i = 0; i < list.size(); i++) {
|
|
||||||
// String s1 = list.get(i);
|
|
||||||
// renderer.draw(s1, x, y + i * renderer.lineHeight, color, shadow);
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// public static void renderSplitScaledAsciiString(FontRenderer font, String text, int x, int y, int color, boolean shadow, float scale, int length) {
|
|
||||||
// List<String> lines = font.listFormattedStringToWidth(text, (int) (length / scale));
|
|
||||||
// for (int i = 0; i < lines.size(); i++) {
|
|
||||||
// renderScaledAsciiString(font, lines.get(i), x, y + i * (int) (font.lineHeight * scale + 3), color, shadow, scale);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
public static void renderScaledString(GuiGraphics guiGraphics, Font font, String text, float x, float y, int color, boolean shadow, float scale) {
|
|
||||||
PoseStack matrices = guiGraphics.pose();
|
|
||||||
matrices.pushPose();
|
|
||||||
matrices.translate(x, y, 0);
|
|
||||||
matrices.scale(scale, scale, 1.0F);
|
|
||||||
if (shadow)
|
|
||||||
guiGraphics.drawString(font, text, 0, 0, color);
|
|
||||||
else
|
|
||||||
guiGraphics.drawString(font, text, x, y, color, false);
|
|
||||||
matrices.popPose();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -44,6 +44,7 @@ import net.neoforged.neoforge.fluids.FluidStack;
|
||||||
import net.neoforged.neoforge.fluids.capability.IFluidHandler;
|
import net.neoforged.neoforge.fluids.capability.IFluidHandler;
|
||||||
import net.neoforged.neoforge.items.IItemHandler;
|
import net.neoforged.neoforge.items.IItemHandler;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -59,7 +60,7 @@ public final class WorldUtil {
|
||||||
|
|
||||||
public static boolean doItemInteraction(SlotlessableItemHandlerWrapper extractWrapper, SlotlessableItemHandlerWrapper insertWrapper, int maxExtract, int extractSlotStart, int extractSlotEnd, int insertSlotStart, int insertSlotEnd, FilterSettings filter) {
|
public static boolean doItemInteraction(SlotlessableItemHandlerWrapper extractWrapper, SlotlessableItemHandlerWrapper insertWrapper, int maxExtract, int extractSlotStart, int extractSlotEnd, int insertSlotStart, int insertSlotEnd, FilterSettings filter) {
|
||||||
ItemStack theoreticalExtract = extractItem(extractWrapper, maxExtract, true, extractSlotStart, extractSlotEnd, filter);
|
ItemStack theoreticalExtract = extractItem(extractWrapper, maxExtract, true, extractSlotStart, extractSlotEnd, filter);
|
||||||
if (StackUtil.isValid(theoreticalExtract)) {
|
if (!theoreticalExtract.isEmpty()) {
|
||||||
ItemStack remaining = StackUtil.insertItem(insertWrapper, theoreticalExtract, false, insertSlotStart, insertSlotEnd);
|
ItemStack remaining = StackUtil.insertItem(insertWrapper, theoreticalExtract, false, insertSlotStart, insertSlotEnd);
|
||||||
if (!ItemStack.matches(remaining, theoreticalExtract)) {
|
if (!ItemStack.matches(remaining, theoreticalExtract)) {
|
||||||
int toExtract = theoreticalExtract.getCount() - remaining.getCount();
|
int toExtract = theoreticalExtract.getCount() - remaining.getCount();
|
||||||
|
@ -95,14 +96,14 @@ public final class WorldUtil {
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(extracted)) {
|
if (extracted.isEmpty()) {
|
||||||
IItemHandler handler = extractWrapper.getNormalHandler();
|
IItemHandler handler = extractWrapper.getNormalHandler();
|
||||||
if (handler != null) {
|
if (handler != null) {
|
||||||
for (int i = Math.max(0, slotStart); i < Math.min(slotEnd, handler.getSlots()); i++) {
|
for (int i = Math.max(0, slotStart); i < Math.min(slotEnd, handler.getSlots()); i++) {
|
||||||
if (filter == null || !filter.needsCheck() || filter.check(handler.getStackInSlot(i))) {
|
if (filter == null || !filter.needsCheck() || filter.check(handler.getStackInSlot(i))) {
|
||||||
extracted = handler.extractItem(i, maxExtract, simulate);
|
extracted = handler.extractItem(i, maxExtract, simulate);
|
||||||
|
|
||||||
if (StackUtil.isValid(extracted)) {
|
if (!extracted.isEmpty()) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -162,8 +163,8 @@ public final class WorldUtil {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack useItemAtSide(Direction side, Level level, BlockPos pos, ItemStack stack) {
|
public static ItemStack useItemAtSide(Direction side, Level level, BlockPos pos, @Nonnull ItemStack stack) {
|
||||||
if (level instanceof ServerLevel && StackUtil.isValid(stack) && pos != null) {
|
if (level instanceof ServerLevel && !stack.isEmpty() && pos != null) {
|
||||||
BlockPos offsetPos = pos.relative(side);
|
BlockPos offsetPos = pos.relative(side);
|
||||||
BlockState state = level.getBlockState(offsetPos);
|
BlockState state = level.getBlockState(offsetPos);
|
||||||
boolean replaceable = state.canBeReplaced(new BlockPlaceContext(level, null, InteractionHand.MAIN_HAND, stack,
|
boolean replaceable = state.canBeReplaced(new BlockPlaceContext(level, null, InteractionHand.MAIN_HAND, stack,
|
||||||
|
|
Loading…
Reference in a new issue