Search in sources :

Example 1 with DirectionProperty

use of net.minecraft.world.level.block.state.properties.DirectionProperty in project Beyond-Earth by MrScautHD.

the class CoalTorchEvents method onBlockPlace.

@SubscribeEvent
public static void onBlockPlace(BlockEvent event) {
    Level world = (Level) event.getWorld();
    if (Methods.isSpaceWorldWithoutOxygen(world)) {
        BlockPos pos = event.getPos();
        BlockState blockState = world.getBlockState(pos);
        Block block = blockState.getBlock();
        /**
         * FIRE
         */
        if (block == Blocks.FIRE.defaultBlockState().getBlock()) {
            world.setBlock(pos, Blocks.AIR.defaultBlockState(), 3);
        } else /**
         * WALL TORCH
         */
        if (block == Blocks.WALL_TORCH) {
            DirectionProperty property = (DirectionProperty) blockState.getBlock().getStateDefinition().getProperty("facing");
            world.setBlock(pos, ModInit.WALL_COAL_TORCH_BLOCK.get().defaultBlockState().setValue(property, blockState.getValue(property)), 3);
            playFireExtinguish(pos, world);
        } else /**
         * TORCH
         */
        if (block == Blocks.TORCH) {
            world.setBlock(pos, ModInit.COAL_TORCH_BLOCK.get().defaultBlockState(), 3);
            playFireExtinguish(pos, world);
        } else /**
         * LANTERN
         */
        if (block == Blocks.LANTERN) {
            boolean isHanging = blockState.getValue(LanternBlock.HANGING);
            if (isHanging) {
                world.setBlock(pos, ModInit.COAL_LANTERN_BLOCK.get().defaultBlockState().setValue(CoalLanternBlock.HANGING, true), 3);
            } else {
                world.setBlock(pos, ModInit.COAL_LANTERN_BLOCK.get().defaultBlockState(), 3);
            }
            playFireExtinguish(pos, world);
        } else /**
         * CAMPFIRE
         */
        if (block == Blocks.CAMPFIRE && blockState.getValue(CampfireBlock.LIT)) {
            BooleanProperty property = (BooleanProperty) world.getBlockState(pos).getBlock().getStateDefinition().getProperty("lit");
            world.setBlock(pos, world.getBlockState(pos).setValue(property, false), 3);
            playFireExtinguish(pos, world);
        }
    }
}
Also used : BlockState(net.minecraft.world.level.block.state.BlockState) BooleanProperty(net.minecraft.world.level.block.state.properties.BooleanProperty) CampfireBlock(net.minecraft.world.level.block.CampfireBlock) Block(net.minecraft.world.level.block.Block) CoalLanternBlock(net.mrscauthd.beyond_earth.block.CoalLanternBlock) LanternBlock(net.minecraft.world.level.block.LanternBlock) Level(net.minecraft.world.level.Level) BlockPos(net.minecraft.core.BlockPos) DirectionProperty(net.minecraft.world.level.block.state.properties.DirectionProperty) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent)

Example 2 with DirectionProperty

use of net.minecraft.world.level.block.state.properties.DirectionProperty in project FastAsyncWorldEdit by IntellectualSites.

the class PaperweightAdapter method getProperties.

@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public Map<String, ? extends Property<?>> getProperties(BlockType blockType) {
    Map<String, Property<?>> properties = Maps.newTreeMap(String::compareTo);
    Block block = getBlockFromType(blockType);
    StateDefinition<Block, net.minecraft.world.level.block.state.BlockState> blockStateList = block.getStateDefinition();
    for (net.minecraft.world.level.block.state.properties.Property state : blockStateList.getProperties()) {
        Property property;
        if (state instanceof net.minecraft.world.level.block.state.properties.BooleanProperty) {
            property = new BooleanProperty(state.getName(), ImmutableList.copyOf(state.getPossibleValues()));
        } else if (state instanceof DirectionProperty) {
            property = new DirectionalProperty(state.getName(), (List<Direction>) state.getPossibleValues().stream().map(e -> Direction.valueOf(((StringRepresentable) e).getSerializedName().toUpperCase(Locale.ROOT))).collect(Collectors.toList()));
        } else if (state instanceof net.minecraft.world.level.block.state.properties.EnumProperty) {
            property = new EnumProperty(state.getName(), (List<String>) state.getPossibleValues().stream().map(e -> ((StringRepresentable) e).getSerializedName()).collect(Collectors.toList()));
        } else if (state instanceof net.minecraft.world.level.block.state.properties.IntegerProperty) {
            property = new IntegerProperty(state.getName(), ImmutableList.copyOf(state.getPossibleValues()));
        } else {
            throw new IllegalArgumentException("FastAsyncWorldEdit needs an update to support " + state.getClass().getSimpleName());
        }
        properties.put(property.getName(), property);
    }
    return properties;
}
Also used : Property(com.sk89q.worldedit.registry.state.Property) LoadingCache(com.google.common.cache.LoadingCache) DirectionalProperty(com.sk89q.worldedit.registry.state.DirectionalProperty) StringRepresentable(net.minecraft.util.StringRepresentable) Item(net.minecraft.world.item.Item) CraftItemStack(org.bukkit.craftbukkit.v1_18_R1.inventory.CraftItemStack) BaseItemStack(com.sk89q.worldedit.blocks.BaseItemStack) BiomeTypes(com.sk89q.worldedit.world.biome.BiomeTypes) Constants(com.sk89q.worldedit.internal.Constants) Component(com.sk89q.worldedit.util.formatting.text.Component) MinecraftServer(net.minecraft.server.MinecraftServer) Location(org.bukkit.Location) SideEffect(com.sk89q.worldedit.util.SideEffect) LongArrayBinaryTag(com.sk89q.worldedit.util.nbt.LongArrayBinaryTag) Map(java.util.Map) Path(java.nio.file.Path) BlockStateHolder(com.sk89q.worldedit.world.block.BlockStateHolder) BlockStateIdAccess(com.sk89q.worldedit.internal.block.BlockStateIdAccess) BlockData(org.bukkit.block.data.BlockData) LongBinaryTag(com.sk89q.worldedit.util.nbt.LongBinaryTag) Set(java.util.Set) InteractionResult(net.minecraft.world.InteractionResult) BlockEntity(net.minecraft.world.level.block.entity.BlockEntity) InvocationTargetException(java.lang.reflect.InvocationTargetException) BinaryTag(com.sk89q.worldedit.util.nbt.BinaryTag) WorldEditPlugin(com.sk89q.worldedit.bukkit.WorldEditPlugin) CraftBlockData(org.bukkit.craftbukkit.v1_18_R1.block.data.CraftBlockData) StringBinaryTag(com.sk89q.worldedit.util.nbt.StringBinaryTag) BaseBlock(com.sk89q.worldedit.world.block.BaseBlock) ItemStack(net.minecraft.world.item.ItemStack) Extent(com.sk89q.worldedit.extent.Extent) BiomeType(com.sk89q.worldedit.world.biome.BiomeType) IntBinaryTag(com.sk89q.worldedit.util.nbt.IntBinaryTag) LevelChunk(net.minecraft.world.level.chunk.LevelChunk) ChunkHolder(net.minecraft.server.level.ChunkHolder) EntityType(net.minecraft.world.entity.EntityType) WorldGenSettings(net.minecraft.world.level.levelgen.WorldGenSettings) CraftServer(org.bukkit.craftbukkit.v1_18_R1.CraftServer) IntArrayBinaryTag(com.sk89q.worldedit.util.nbt.IntArrayBinaryTag) LazyReference(com.sk89q.worldedit.util.concurrency.LazyReference) SpigotConfig(org.spigotmc.SpigotConfig) Biome(net.minecraft.world.level.biome.Biome) TranslatableComponent(com.sk89q.worldedit.util.formatting.text.TranslatableComponent) ArrayList(java.util.ArrayList) OptionalLong(java.util.OptionalLong) WorldEditException(com.sk89q.worldedit.WorldEditException) CraftMagicNumbers(org.bukkit.craftbukkit.v1_18_R1.util.CraftMagicNumbers) RegenOptions(com.sk89q.worldedit.world.RegenOptions) ShortBinaryTag(com.sk89q.worldedit.util.nbt.ShortBinaryTag) UseOnContext(net.minecraft.world.item.context.UseOnContext) Nullable(javax.annotation.Nullable) WorldNativeAccess(com.sk89q.worldedit.internal.wna.WorldNativeAccess) DataFixer(com.sk89q.worldedit.world.DataFixer) Files(java.nio.file.Files) Lifecycle(com.mojang.serialization.Lifecycle) Field(java.lang.reflect.Field) ChunkPos(net.minecraft.world.level.ChunkPos) ExecutionException(java.util.concurrent.ExecutionException) Futures(com.google.common.util.concurrent.Futures) ForkJoinPool(java.util.concurrent.ForkJoinPool) ByteArrayBinaryTag(com.sk89q.worldedit.util.nbt.ByteArrayBinaryTag) LevelStem(net.minecraft.world.level.dimension.LevelStem) BlockState(com.sk89q.worldedit.world.block.BlockState) InteractionHand(net.minecraft.world.InteractionHand) ChunkStatus(net.minecraft.world.level.chunk.ChunkStatus) ListBinaryTag(com.sk89q.worldedit.util.nbt.ListBinaryTag) Watchdog(com.sk89q.worldedit.extension.platform.Watchdog) ResourceLocation(net.minecraft.resources.ResourceLocation) Either(com.mojang.datafixers.util.Either) BlockVector2(com.sk89q.worldedit.math.BlockVector2) BlockTypes(com.sk89q.worldedit.world.block.BlockTypes) BlockVector3(com.sk89q.worldedit.math.BlockVector3) ClientboundEntityEventPacket(net.minecraft.network.protocol.game.ClientboundEntityEventPacket) Player(org.bukkit.entity.Player) ChunkGenerator(org.bukkit.generator.ChunkGenerator) Registry(net.minecraft.core.Registry) CraftPlayer(org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer) BooleanProperty(com.sk89q.worldedit.registry.state.BooleanProperty) Locale(java.util.Locale) Refraction(com.sk89q.worldedit.bukkit.adapter.Refraction) DedicatedServer(net.minecraft.server.dedicated.DedicatedServer) CompoundBinaryTag(com.sk89q.worldedit.util.nbt.CompoundBinaryTag) Method(java.lang.reflect.Method) Bukkit(org.bukkit.Bukkit) StateDefinition(net.minecraft.world.level.block.state.StateDefinition) SafeFiles(com.sk89q.worldedit.util.io.file.SafeFiles) BlockType(com.sk89q.worldedit.world.block.BlockType) ChunkProgressListener(net.minecraft.server.level.progress.ChunkProgressListener) PrimaryLevelData(net.minecraft.world.level.storage.PrimaryLevelData) BaseItem(com.sk89q.worldedit.blocks.BaseItem) BlockHitResult(net.minecraft.world.phys.BlockHitResult) ClientboundBlockEntityDataPacket(net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket) BlockableEventLoop(net.minecraft.util.thread.BlockableEventLoop) Logger(java.util.logging.Logger) Collectors(java.util.stream.Collectors) Sets(com.google.common.collect.Sets) BukkitImplAdapter(com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter) Blocks(net.minecraft.world.level.block.Blocks) ChunkAccess(net.minecraft.world.level.chunk.ChunkAccess) Preconditions.checkState(com.google.common.base.Preconditions.checkState) CacheLoader(com.google.common.cache.CacheLoader) Objects(java.util.Objects) Util(net.minecraft.Util) List(java.util.List) EnumProperty(com.sk89q.worldedit.registry.state.EnumProperty) BlockPos(net.minecraft.core.BlockPos) BukkitAdapter(com.sk89q.worldedit.bukkit.BukkitAdapter) CacheBuilder(com.google.common.cache.CacheBuilder) ServerChunkCache(net.minecraft.server.level.ServerChunkCache) HashMap(java.util.HashMap) CompletableFuture(java.util.concurrent.CompletableFuture) ServerLevel(net.minecraft.server.level.ServerLevel) OptionalInt(java.util.OptionalInt) Level(java.util.logging.Level) EndBinaryTag(com.sk89q.worldedit.util.nbt.EndBinaryTag) Environment(org.bukkit.World.Environment) ImmutableList(com.google.common.collect.ImmutableList) DoubleBinaryTag(com.sk89q.worldedit.util.nbt.DoubleBinaryTag) FloatBinaryTag(com.sk89q.worldedit.util.nbt.FloatBinaryTag) ByteBinaryTag(com.sk89q.worldedit.util.nbt.ByteBinaryTag) Direction(com.sk89q.worldedit.util.Direction) SpawnReason(org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason) WeakReference(java.lang.ref.WeakReference) BaseEntity(com.sk89q.worldedit.entity.BaseEntity) LevelStorageSource(net.minecraft.world.level.storage.LevelStorageSource) CraftWorld(org.bukkit.craftbukkit.v1_18_R1.CraftWorld) Region(com.sk89q.worldedit.regions.Region) PaperweightFaweAdapter(com.sk89q.worldedit.bukkit.adapter.impl.fawe.v1_18_R1.PaperweightFaweAdapter) Preconditions.checkNotNull(com.google.common.base.Preconditions.checkNotNull) Maps(com.google.common.collect.Maps) ResourceKey(net.minecraft.resources.ResourceKey) StructureBlockEntity(net.minecraft.world.level.block.entity.StructureBlockEntity) LevelSettings(net.minecraft.world.level.LevelSettings) Entity(net.minecraft.world.entity.Entity) CraftEntity(org.bukkit.craftbukkit.v1_18_R1.entity.CraftEntity) Vec3(net.minecraft.world.phys.Vec3) IntegerProperty(com.sk89q.worldedit.registry.state.IntegerProperty) DirectionProperty(net.minecraft.world.level.block.state.properties.DirectionProperty) WatchdogThread(org.spigotmc.WatchdogThread) Block(net.minecraft.world.level.block.Block) ItemType(com.sk89q.worldedit.world.item.ItemType) Clearable(net.minecraft.world.Clearable) Direction(com.sk89q.worldedit.util.Direction) EnumProperty(com.sk89q.worldedit.registry.state.EnumProperty) ArrayList(java.util.ArrayList) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) DirectionProperty(net.minecraft.world.level.block.state.properties.DirectionProperty) Property(com.sk89q.worldedit.registry.state.Property) DirectionalProperty(com.sk89q.worldedit.registry.state.DirectionalProperty) BooleanProperty(com.sk89q.worldedit.registry.state.BooleanProperty) EnumProperty(com.sk89q.worldedit.registry.state.EnumProperty) IntegerProperty(com.sk89q.worldedit.registry.state.IntegerProperty) DirectionProperty(net.minecraft.world.level.block.state.properties.DirectionProperty) IntegerProperty(com.sk89q.worldedit.registry.state.IntegerProperty) BooleanProperty(com.sk89q.worldedit.registry.state.BooleanProperty) BlockState(com.sk89q.worldedit.world.block.BlockState) StringRepresentable(net.minecraft.util.StringRepresentable) BaseBlock(com.sk89q.worldedit.world.block.BaseBlock) Block(net.minecraft.world.level.block.Block) DirectionalProperty(com.sk89q.worldedit.registry.state.DirectionalProperty)

Example 3 with DirectionProperty

use of net.minecraft.world.level.block.state.properties.DirectionProperty in project Create by Creators-of-Create.

the class StructureTransform method apply.

/**
 * Minecraft does not support blockstate rotation around axes other than y. Add
 * specific cases here for blockstates, that should react to rotations around
 * horizontal axes
 */
public BlockState apply(BlockState state) {
    if (mirror != null)
        state = state.mirror(mirror);
    Block block = state.getBlock();
    if (rotationAxis == Axis.Y) {
        if (block instanceof BellBlock) {
            if (state.getValue(BlockStateProperties.BELL_ATTACHMENT) == BellAttachType.DOUBLE_WALL)
                state = state.setValue(BlockStateProperties.BELL_ATTACHMENT, BellAttachType.SINGLE_WALL);
            return state.setValue(BellBlock.FACING, rotation.rotate(state.getValue(BellBlock.FACING)));
        }
        return state.rotate(rotation);
    }
    if (block instanceof AbstractChassisBlock)
        return rotateChassis(state);
    if (block instanceof FaceAttachedHorizontalDirectionalBlock) {
        DirectionProperty facingProperty = FaceAttachedHorizontalDirectionalBlock.FACING;
        EnumProperty<AttachFace> faceProperty = FaceAttachedHorizontalDirectionalBlock.FACE;
        Direction stateFacing = state.getValue(facingProperty);
        AttachFace stateFace = state.getValue(faceProperty);
        Direction forcedAxis = rotationAxis == Axis.Z ? Direction.EAST : Direction.SOUTH;
        if (stateFacing.getAxis() == rotationAxis && stateFace == AttachFace.WALL)
            return state;
        for (int i = 0; i < rotation.ordinal(); i++) {
            stateFace = state.getValue(faceProperty);
            stateFacing = state.getValue(facingProperty);
            boolean b = state.getValue(faceProperty) == AttachFace.CEILING;
            state = state.setValue(facingProperty, b ? forcedAxis : forcedAxis.getOpposite());
            if (stateFace != AttachFace.WALL) {
                state = state.setValue(faceProperty, AttachFace.WALL);
                continue;
            }
            if (stateFacing.getAxisDirection() == AxisDirection.POSITIVE) {
                state = state.setValue(faceProperty, AttachFace.FLOOR);
                continue;
            }
            state = state.setValue(faceProperty, AttachFace.CEILING);
        }
        return state;
    }
    boolean halfTurn = rotation == Rotation.CLOCKWISE_180;
    if (block instanceof StairBlock) {
        state = transformStairs(state, halfTurn);
        return state;
    }
    if (AllBlocks.BELT.has(state)) {
        state = transformBelt(state, halfTurn);
        return state;
    }
    if (state.hasProperty(FACING)) {
        Direction newFacing = transformFacing(state.getValue(FACING));
        if (state.hasProperty(DirectionalAxisKineticBlock.AXIS_ALONG_FIRST_COORDINATE)) {
            if (rotationAxis == newFacing.getAxis() && rotation.ordinal() % 2 == 1)
                state = state.cycle(DirectionalAxisKineticBlock.AXIS_ALONG_FIRST_COORDINATE);
        }
        state = state.setValue(FACING, newFacing);
    } else if (state.hasProperty(AXIS)) {
        state = state.setValue(AXIS, transformAxis(state.getValue(AXIS)));
    } else if (halfTurn) {
        if (state.hasProperty(FACING)) {
            Direction stateFacing = state.getValue(FACING);
            if (stateFacing.getAxis() == rotationAxis)
                return state;
        }
        if (state.hasProperty(HORIZONTAL_FACING)) {
            Direction stateFacing = state.getValue(HORIZONTAL_FACING);
            if (stateFacing.getAxis() == rotationAxis)
                return state;
        }
        state = state.rotate(rotation);
        if (state.hasProperty(SlabBlock.TYPE) && state.getValue(SlabBlock.TYPE) != SlabType.DOUBLE)
            state = state.setValue(SlabBlock.TYPE, state.getValue(SlabBlock.TYPE) == SlabType.BOTTOM ? SlabType.TOP : SlabType.BOTTOM);
    }
    return state;
}
Also used : FaceAttachedHorizontalDirectionalBlock(net.minecraft.world.level.block.FaceAttachedHorizontalDirectionalBlock) AttachFace(net.minecraft.world.level.block.state.properties.AttachFace) BellBlock(net.minecraft.world.level.block.BellBlock) AbstractChassisBlock(com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock) BeltBlock(com.simibubi.create.content.contraptions.relays.belt.BeltBlock) SlabBlock(net.minecraft.world.level.block.SlabBlock) BellBlock(net.minecraft.world.level.block.BellBlock) AbstractChassisBlock(com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock) FaceAttachedHorizontalDirectionalBlock(net.minecraft.world.level.block.FaceAttachedHorizontalDirectionalBlock) DirectionalAxisKineticBlock(com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock) Block(net.minecraft.world.level.block.Block) StairBlock(net.minecraft.world.level.block.StairBlock) StairBlock(net.minecraft.world.level.block.StairBlock) DirectionProperty(net.minecraft.world.level.block.state.properties.DirectionProperty) Direction(net.minecraft.core.Direction) AxisDirection(net.minecraft.core.Direction.AxisDirection)

Example 4 with DirectionProperty

use of net.minecraft.world.level.block.state.properties.DirectionProperty in project FastAsyncWorldEdit by IntellectualSites.

the class PaperweightAdapter method applyProperties.

@SuppressWarnings({ "rawtypes", "unchecked" })
private net.minecraft.world.level.block.state.BlockState applyProperties(StateDefinition<Block, net.minecraft.world.level.block.state.BlockState> stateContainer, net.minecraft.world.level.block.state.BlockState newState, Map<Property<?>, Object> states) {
    for (Map.Entry<Property<?>, Object> state : states.entrySet()) {
        net.minecraft.world.level.block.state.properties.Property<?> property = stateContainer.getProperty(state.getKey().getName());
        Comparable<?> value = (Comparable) state.getValue();
        // we may need to adapt this value, depending on the source prop
        if (property instanceof DirectionProperty) {
            Direction dir = (Direction) value;
            value = adapt(dir);
        } else if (property instanceof net.minecraft.world.level.block.state.properties.EnumProperty) {
            String enumName = (String) value;
            value = ((net.minecraft.world.level.block.state.properties.EnumProperty<?>) property).getValue(enumName).orElseThrow(() -> new IllegalStateException("Enum property " + property.getName() + " does not contain " + enumName));
        }
        newState = newState.setValue((net.minecraft.world.level.block.state.properties.Property) property, (Comparable) value);
    }
    return newState;
}
Also used : Direction(com.sk89q.worldedit.util.Direction) DirectionProperty(net.minecraft.world.level.block.state.properties.DirectionProperty) Map(java.util.Map) HashMap(java.util.HashMap) Property(com.sk89q.worldedit.registry.state.Property) DirectionalProperty(com.sk89q.worldedit.registry.state.DirectionalProperty) BooleanProperty(com.sk89q.worldedit.registry.state.BooleanProperty) EnumProperty(com.sk89q.worldedit.registry.state.EnumProperty) IntegerProperty(com.sk89q.worldedit.registry.state.IntegerProperty) DirectionProperty(net.minecraft.world.level.block.state.properties.DirectionProperty)

Example 5 with DirectionProperty

use of net.minecraft.world.level.block.state.properties.DirectionProperty in project Beyond-Earth by MrScautHD.

the class CoalTorchBlock method use.

@Override
public InteractionResult use(BlockState p_51274_, Level p_51275_, BlockPos p_51276_, Player p_51277_, InteractionHand p_51278_, BlockHitResult p_51279_) {
    ItemStack itemstack = p_51277_.getItemInHand(p_51278_);
    if (p_51275_.getBlockState(p_51276_).getBlock() == ModInit.WALL_COAL_TORCH_BLOCK.get() && !Methods.isSpaceWorldWithoutOxygen(p_51275_) && (itemstack.getItem() == Items.FLINT_AND_STEEL || itemstack.getItem() == Items.FIRE_CHARGE)) {
        if (!p_51275_.isClientSide) {
            BlockState bs = p_51275_.getBlockState(p_51276_);
            DirectionProperty property = (DirectionProperty) bs.getBlock().getStateDefinition().getProperty("facing");
            p_51275_.setBlock(p_51276_, Blocks.WALL_TORCH.defaultBlockState().setValue(property, bs.getValue(property)), 3);
            flintManager(itemstack, p_51277_, p_51278_, p_51276_, p_51275_);
            return InteractionResult.SUCCESS;
        }
    }
    if (p_51275_.getBlockState(p_51276_).getBlock() == ModInit.COAL_TORCH_BLOCK.get() && !Methods.isSpaceWorldWithoutOxygen(p_51275_) && (itemstack.getItem() == Items.FLINT_AND_STEEL || itemstack.getItem() == Items.FIRE_CHARGE)) {
        if (!p_51275_.isClientSide) {
            p_51275_.setBlock(p_51276_, Blocks.TORCH.defaultBlockState(), 3);
            flintManager(itemstack, p_51277_, p_51278_, p_51276_, p_51275_);
            return InteractionResult.SUCCESS;
        }
    }
    if (itemstack.getItem() == Items.FLINT_AND_STEEL || itemstack.getItem() == Items.FIRE_CHARGE) {
        return InteractionResult.SUCCESS;
    }
    return InteractionResult.PASS;
}
Also used : BlockState(net.minecraft.world.level.block.state.BlockState) ItemStack(net.minecraft.world.item.ItemStack) DirectionProperty(net.minecraft.world.level.block.state.properties.DirectionProperty)

Aggregations

DirectionProperty (net.minecraft.world.level.block.state.properties.DirectionProperty)6 Block (net.minecraft.world.level.block.Block)3 BooleanProperty (com.sk89q.worldedit.registry.state.BooleanProperty)2 DirectionalProperty (com.sk89q.worldedit.registry.state.DirectionalProperty)2 EnumProperty (com.sk89q.worldedit.registry.state.EnumProperty)2 IntegerProperty (com.sk89q.worldedit.registry.state.IntegerProperty)2 Property (com.sk89q.worldedit.registry.state.Property)2 Direction (com.sk89q.worldedit.util.Direction)2 BlockPos (net.minecraft.core.BlockPos)2 ItemStack (net.minecraft.world.item.ItemStack)2 BlockState (net.minecraft.world.level.block.state.BlockState)2 Preconditions.checkNotNull (com.google.common.base.Preconditions.checkNotNull)1 Preconditions.checkState (com.google.common.base.Preconditions.checkState)1 CacheBuilder (com.google.common.cache.CacheBuilder)1 CacheLoader (com.google.common.cache.CacheLoader)1 LoadingCache (com.google.common.cache.LoadingCache)1 ImmutableList (com.google.common.collect.ImmutableList)1 Maps (com.google.common.collect.Maps)1 Sets (com.google.common.collect.Sets)1 Futures (com.google.common.util.concurrent.Futures)1