Package commoble.morered.wires

# Class AbstractWireBlock

java.lang.Object
net.minecraft.world.level.block.state.BlockBehaviour
net.minecraft.world.level.block.Block
commoble.morered.wires.AbstractWireBlock

All Implemented Interfaces:
  `net.minecraft.world.level.ItemLike`, `net.minecraftforge.common.extensions.IForgeBlock`

Direct Known Subclasses:
  `BundledCableBlock`, `PoweredWireBlock`

public abstract class AbstractWireBlock extends net.minecraft.world.level.block.Block

## Nested Class Summary

## Nested classes/interfaces inherited from class net.minecraft.world.level.block.Block

`net.minecraft.world.level.block.Block.BlockStatePairKey`

## Nested classes/interfaces inherited from class net.minecraft.world.level.block.state.BlockBehaviour

`net.minecraft.world.level.block.state.BlockBehaviour.BlockStateBase, net.minecraft.world.level.block.state.BlockBehaviour.OffsetType, net.minecraft.world.level.block.state.BlockBehaviour.Properties, net.minecraft.world.level.block.state.BlockBehaviour.StateArgumentPredicate<A extends Object>, net.minecraft.world.level.block.state.BlockBehaviour.StatePredicate`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final net.minecraft.world.level.block.state.properties.BooleanProperty`
`DOWN`
`static final net.minecraft.world.level.block.state.properties.BooleanProperty`
`EAST`
`static final net.minecraft.world.level.block.state.properties.BooleanProperty[]`
`INTERIOR_FACES`
`static final net.minecraft.world.level.block.state.properties.BooleanProperty`
`NORTH`
`protected final net.minecraft.world.phys.shapes.VoxelShape[]`
`raytraceBackboards`
`protected final net.minecraft.world.phys.shapes.VoxelShape[]`
`shapesByStateIndex`
`static final net.minecraft.world.level.block.state.properties.BooleanProperty`
`SOUTH`
`static final net.minecraft.world.level.block.state.properties.BooleanProperty`
`UP`
`protected final boolean`
`useIndirectPower`
`protected final com.google.common.cache.LoadingCache<Long,net.minecraft.world.phys.shapes.VoxelShape>`
`voxelCache`
`static final net.minecraft.world.level.block.state.properties.BooleanProperty`
`WEST`

### Fields inherited from class net.minecraft.world.level.block.Block

`BLOCK_STATE_REGISTRY, INDESTRUCTIBLE, INSTANT, stateDefinition, UPDATE_ALL, UPDATE_ALL_IMMEDIATE, UPDATE_CLIENTS, UPDATE_IMMEDIATE, UPDATE_INVISIBLE, UPDATE_KNOWN_SHAPE, UPDATE_LIMIT, UPDATE_MOVE_BY_PISTON, UPDATE_NEIGHBORS, UPDATE_NONE, UPDATE_SUPPRESS_DROPS, UPDATE_SUPPRESS_LIGHT`

### Fields inherited from class net.minecraft.world.level.block.state.BlockBehaviour

`drops, dynamicShape, explosionResistance, friction, hasCollision, isRandomlyTicking, jumpFactor, material, properties, soundType, speedFactor, UPDATE_SHAPE_ORDER`

## Constructor Summary

Constructors
Constructor
Description
`AbstractWireBlock(net.minecraft.world.level.block.state.BlockBehaviour.Properties properties, net.minecraft.world.phys.shapes.VoxelShape[] shapesByStateIndex, net.minecraft.world.phys.shapes.VoxelShape[] raytraceBackboards, com.google.common.cache.LoadingCache<Long,net.minecraft.world.phys.shapes.VoxelShape> voxelCache, boolean useIndirectPower)`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`addEmptyWireToAir(net.minecraft.world.level.block.state.BlockState thisState, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos neighborAirPos, net.minecraft.core.Direction directionToNeighbor)`
`protected abstract boolean`
`canAdjacentBlockConnectToFace(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos thisPos, net.minecraft.world.level.block.state.BlockState thisState, net.minecraft.world.level.block.Block neighborBlock, net.minecraft.core.Direction attachmentDirection, net.minecraft.core.Direction directionToWire, net.minecraft.core.BlockPos neighborPos, net.minecraft.world.level.block.state.BlockState neighborState)`
`boolean`
`canBeReplaced(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.item.context.BlockPlaceContext useContext)`
`boolean`
`canSurvive(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.LevelReader world, net.minecraft.core.BlockPos pos)`
`static boolean`
`canWireConnectToAdjacentWireOrCable(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos thisPos, net.minecraft.world.level.block.state.BlockState thisState, net.minecraft.core.BlockPos wirePos, net.minecraft.world.level.block.state.BlockState wireState, net.minecraft.core.Direction wireFace, net.minecraft.core.Direction directionToWire)`
`protected void`
`createBlockStateDefinition(net.minecraft.world.level.block.state.StateDefinition.Builder<net.minecraft.world.level.block.Block,net.minecraft.world.level.block.state.BlockState> builder)`
`void`
`destroyClickedSegment(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.player.Player player, net.minecraft.core.Direction interiorFace, boolean dropItems)`
`net.minecraft.world.phys.shapes.VoxelShape`
`getCachedExpandedShapeVoxel(net.minecraft.world.level.block.state.BlockState wireState, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos)`
`protected long`
`getEdgeFlags(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos)`
`protected long`
`getEdgeFlagsForNodeLineEdgeFormat(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos)`
Returns a long containing the edge flags shifted for node-line-edge format The first 30 bits will be 0, the next 12 bits contain edge flags in edge-ordinal order
`long`
`getExpandedShapeIndex(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos)`
Get the index of the expanded shape for the given wireblock blockstate (including non-blockstate-based shapes); this is a bit pattern, the bits are defined as such starting from the least-significant bit: bits 0-5 -- the unexpanded shape index for a given state (indicating which of the six interior faces wires are attached to) bits 6-29 (the next 24 bits) -- the flags indicating which adjacent neighbors the faces are connecting to each primary face can connect to the faces of four neighbors (6*4 = 24) bits 30-41 (the next 12 bits) -- the flags indicating any edges connecting wires diagonally
`net.minecraft.core.Direction`
`getInteriorFaceToBreak(net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.player.Player player, net.minecraft.world.phys.BlockHitResult raytrace, float partialTicks)`
`static net.minecraft.world.phys.shapes.VoxelShape`
`getLineShape(net.minecraft.world.phys.shapes.VoxelShape[] lineShapes, int side, int secondarySide)`
`net.minecraft.world.phys.shapes.VoxelShape`
`getOcclusionShape(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter worldIn, net.minecraft.core.BlockPos pos)`
`net.minecraft.world.phys.shapes.VoxelShape`
`getShape(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter worldIn, net.minecraft.core.BlockPos pos, net.minecraft.world.phys.shapes.CollisionContext context)`
`static int`
`getShapeIndex(net.minecraft.world.level.block.state.BlockState state)`
Get the index of the primary shape for the given wireblock blockstate (64 combinations)
`net.minecraft.world.level.block.state.BlockState`
`getStateForPlacement(net.minecraft.world.item.context.BlockPlaceContext context)`
`int`
`getWireCount(net.minecraft.world.level.block.state.BlockState state)`
`void`
`initializeClient(Consumer<net.minecraftforge.client.extensions.common.IClientBlockExtensions> consumer)`
`boolean`
`isEmptyWireBlock(net.minecraft.world.level.block.state.BlockState state)`
`static net.minecraft.world.phys.shapes.VoxelShape`
`makeExpandedShapeForIndex(net.minecraft.world.phys.shapes.VoxelShape[] shapesByStateIndex, net.minecraft.world.phys.shapes.VoxelShape[] lineShapes, long index)`
`static com.google.common.cache.LoadingCache<Long,net.minecraft.world.phys.shapes.VoxelShape>`
`makeVoxelCache(net.minecraft.world.phys.shapes.VoxelShape[] shapesByStateIndex, net.minecraft.world.phys.shapes.VoxelShape[] lineShapes)`
`static net.minecraft.world.phys.shapes.VoxelShape[]`
`makeVoxelShapes(net.minecraft.world.phys.shapes.VoxelShape[] nodeShapes, net.minecraft.world.phys.shapes.VoxelShape[] lineShapes)`
`net.minecraft.world.level.block.state.BlockState`
`mirror(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.Mirror mirrorIn)`
`void`
`neighborChanged(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level worldIn, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.Block neighborBlock, net.minecraft.core.BlockPos fromPos, boolean isMoving)`
Deprecated.
`protected abstract void`
`notifyNeighbors(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos wirePos, net.minecraft.world.level.block.state.BlockState newState, EnumSet<net.minecraft.core.Direction> updateDirections, boolean doConductedPowerUpdates)`
`void`
`onPlace(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level worldIn, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState oldState, boolean isMoving)`
Deprecated.
`void`
`onRemove(net.minecraft.world.level.block.state.BlockState oldState, net.minecraft.world.level.Level worldIn, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState newState, boolean isMoving)`
Deprecated.
`net.minecraft.world.level.block.state.BlockState`
`rotate(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.Rotation rot)`
`void`
`setPlacedBy(net.minecraft.world.level.Level worldIn, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.entity.LivingEntity placer, net.minecraft.world.item.ItemStack stack)`
`protected abstract void`
`updatePowerAfterBlockUpdate(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos wirePos, net.minecraft.world.level.block.state.BlockState wireState)`
`net.minecraft.world.level.block.state.BlockState`
`updateShape(net.minecraft.world.level.block.state.BlockState thisState, net.minecraft.core.Direction directionToNeighbor, net.minecraft.world.level.block.state.BlockState neighborState, net.minecraft.world.level.LevelAccessor world, net.minecraft.core.BlockPos thisPos, net.minecraft.core.BlockPos neighborPos)`
`protected void`
`updateShapeCache(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos)`

### Methods inherited from class net.minecraft.world.level.block.Block

`animateTick, appendHoverText, asBlock, asItem, box, builtInRegistryHolder, byItem, canSupportCenter, canSupportRigidBlock, canSustainPlant, defaultBlockState, destroy, dropFromExplosion, dropResources, dropResources, dropResources, dropResources, fallOn, fillItemCategory, getCloneItemStack, getDescriptionId, getDrops, getDrops, getExplosionResistance, getFriction, getId, getJumpFactor, getName, getRenderPropertiesInternal, getShapeForEachState, getSoundType, getSpeedFactor, getStateDefinition, handlePrecipitation, hasDynamicShape, isExceptionForConnection, isFaceFull, isPossibleToRespawnInThis, isRandomlyTicking, isShapeFullBlock, playerDestroy, playerWillDestroy, popExperience, popResource, popResourceFromFace, propagatesSkylightDown, pushEntitiesUp, registerDefaultState, shouldRenderFace, spawnDestroyParticles, stateById, stepOn, toString, tryDropExperience, updateEntityAfterFallOn, updateFromNeighbourShapes, updateOrDestroy, updateOrDestroy, wasExploded, withPropertiesOf`

### Methods inherited from class net.minecraft.world.level.block.state.BlockBehaviour

`attack, canBeReplaced, defaultDestroyTime, defaultMaterialColor, entityInside, getAnalogOutputSignal, getBlockSupportShape, getCollisionShape, getDestroyProgress, getDirectSignal, getDrops, getFluidState, getInteractionShape, getLightBlock, getLootTable, getMaxHorizontalOffset, getMaxVerticalOffset, getMenuProvider, getPistonPushReaction, getRenderShape, getSeed, getShadeBrightness, getSignal, getVisualShape, hasAnalogOutputSignal, isAir, isCollisionShapeFullBlock, isOcclusionShapeFullBlock, isPathfindable, isSignalSource, onProjectileHit, randomTick, skipRendering, spawnAfterBreak, tick, triggerEvent, updateIndirectNeighbourShapes, use, useShapeForLightOcclusion`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface net.minecraftforge.common.extensions.IForgeBlock

`addLandingEffects, addRunningEffects, canBeHydrated, canConnectRedstone, canDropFromExplosion, canEntityDestroy, canHarvestBlock, canStickTo, collisionExtendsVertically, getAdjacentBlockPathType, getAppearance, getBeaconColorMultiplier, getBedDirection, getBlockPathType, getCloneItemStack, getEnchantPowerBonus, getExpDrop, getExplosionResistance, getFireSpreadSpeed, getFlammability, getFriction, getLightEmission, getMapColor, getRespawnPosition, getSoundType, getStateAtViewpoint, getToolModifiedState, getWeakChanges, hidesNeighborFace, isBed, isBurning, isConduitFrame, isFertile, isFireSource, isFlammable, isLadder, isPortalFrame, isScaffolding, isSlimeBlock, isStickyBlock, isValidSpawn, makesOpenTrapdoorAboveClimbable, onBlockExploded, onBlockStateChange, onCaughtFire, onDestroyedByPlayer, onNeighborChange, onTreeGrow, rotate, setBedOccupied, shouldCheckWeakPower, shouldDisplayFluidOverlay, supportsExternalFaceHiding`

## Field Details

### DOWN

public static final net.minecraft.world.level.block.state.properties.BooleanProperty DOWN

### UP

public static final net.minecraft.world.level.block.state.properties.BooleanProperty UP

### NORTH

public static final net.minecraft.world.level.block.state.properties.BooleanProperty NORTH

### SOUTH

public static final net.minecraft.world.level.block.state.properties.BooleanProperty SOUTH

### WEST

public static final net.minecraft.world.level.block.state.properties.BooleanProperty WEST

### EAST

public static final net.minecraft.world.level.block.state.properties.BooleanProperty EAST

### INTERIOR_FACES

public static final net.minecraft.world.level.block.state.properties.BooleanProperty[] INTERIOR_FACES

### shapesByStateIndex

protected final net.minecraft.world.phys.shapes.VoxelShape[] shapesByStateIndex

### raytraceBackboards

protected final net.minecraft.world.phys.shapes.VoxelShape[] raytraceBackboards

### voxelCache

protected final com.google.common.cache.LoadingCache<Long,net.minecraft.world.phys.shapes.VoxelShape> voxelCache

### useIndirectPower

protected final boolean useIndirectPower

## Constructor Details

### AbstractWireBlock

public AbstractWireBlock(net.minecraft.world.level.block.state.BlockBehaviour.Properties properties, net.minecraft.world.phys.shapes.VoxelShape[] shapesByStateIndex, net.minecraft.world.phys.shapes.VoxelShape[] raytraceBackboards, com.google.common.cache.LoadingCache<Long,net.minecraft.world.phys.shapes.VoxelShape> voxelCache, boolean useIndirectPower)

Parameters:
  `properties` - block properties
  `shapesByStateIndex` - Array of 64 voxelshapes, the voxels for the canonical blockstates
  `raytraceBackboards` - Array of 6 voxelshapes (by attachment face direction) used for subwire raytrace checking
  `voxelCache` - The cache to use for this block's voxels given world context
  `useIndirectPower` - Whether this block is allowed to send or receive power conducted indirectly through solid cubes

## Method Details

### makeVoxelShapes

public static net.minecraft.world.phys.shapes.VoxelShape[] makeVoxelShapes(net.minecraft.world.phys.shapes.VoxelShape[] nodeShapes, net.minecraft.world.phys.shapes.VoxelShape[] lineShapes)

Parameters:
  `nodeShapes` - array of 6 voxelshapes by face direction
  `lineShapes` - array of 24 voxelshapes by face direction + secondary direction
Returns:
  An array of 64 voxelshapes for wire nodes and elbows (the shapes that can be determined just from blockstate combinations and no worldpos context)

### getLineShape

public static net.minecraft.world.phys.shapes.VoxelShape getLineShape(net.minecraft.world.phys.shapes.VoxelShape[] lineShapes, int side, int secondarySide)

### getShapeIndex

public static int getShapeIndex(net.minecraft.world.level.block.state.BlockState state)
Get the index of the primary shape for the given wireblock blockstate (64 combinations)

Parameters:
  `state` - A blockstate belonging to an AbstractWireBlock
Returns:
  An index in the range [0, 63]

### makeExpandedShapeForIndex

public static net.minecraft.world.phys.shapes.VoxelShape makeExpandedShapeForIndex(net.minecraft.world.phys.shapes.VoxelShape[] shapesByStateIndex, net.minecraft.world.phys.shapes.VoxelShape[] lineShapes, long index)

### makeVoxelCache

public static com.google.common.cache.LoadingCache<Long,net.minecraft.world.phys.shapes.VoxelShape> makeVoxelCache(net.minecraft.world.phys.shapes.VoxelShape[] shapesByStateIndex, net.minecraft.world.phys.shapes.VoxelShape[] lineShapes)

### canWireConnectToAdjacentWireOrCable

public static boolean canWireConnectToAdjacentWireOrCable(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos thisPos, net.minecraft.world.level.block.state.BlockState thisState, net.minecraft.core.BlockPos wirePos, net.minecraft.world.level.block.state.BlockState wireState, net.minecraft.core.Direction wireFace, net.minecraft.core.Direction directionToWire)

### canAdjacentBlockConnectToFace

protected abstract boolean canAdjacentBlockConnectToFace(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos thisPos, net.minecraft.world.level.block.state.BlockState thisState, net.minecraft.world.level.block.Block neighborBlock, net.minecraft.core.Direction attachmentDirection, net.minecraft.core.Direction directionToWire, net.minecraft.core.BlockPos neighborPos, net.minecraft.world.level.block.state.BlockState neighborState)

### updatePowerAfterBlockUpdate

protected abstract void updatePowerAfterBlockUpdate(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos wirePos, net.minecraft.world.level.block.state.BlockState wireState)

### notifyNeighbors

protected abstract void notifyNeighbors(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos wirePos, net.minecraft.world.level.block.state.BlockState newState, EnumSet<net.minecraft.core.Direction> updateDirections, boolean doConductedPowerUpdates)

### createBlockStateDefinition

protected void createBlockStateDefinition(net.minecraft.world.level.block.state.StateDefinition.Builder<net.minecraft.world.level.block.Block,net.minecraft.world.level.block.state.BlockState> builder)

Overrides:
  `createBlockStateDefinition` in class `net.minecraft.world.level.block.Block`

### getShape

public net.minecraft.world.phys.shapes.VoxelShape getShape(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter worldIn, net.minecraft.core.BlockPos pos, net.minecraft.world.phys.shapes.CollisionContext context)

Overrides:
  `getShape` in class `net.minecraft.world.level.block.state.BlockBehaviour`

### getOcclusionShape

public net.minecraft.world.phys.shapes.VoxelShape getOcclusionShape(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter worldIn, net.minecraft.core.BlockPos pos)

Overrides:
  `getOcclusionShape` in class `net.minecraft.world.level.block.state.BlockBehaviour`

### canBeReplaced

public boolean canBeReplaced(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.item.context.BlockPlaceContext useContext)

Overrides:
  `canBeReplaced` in class `net.minecraft.world.level.block.state.BlockBehaviour`

### updateShape

public net.minecraft.world.level.block.state.BlockState updateShape(net.minecraft.world.level.block.state.BlockState thisState, net.minecraft.core.Direction directionToNeighbor, net.minecraft.world.level.block.state.BlockState neighborState, net.minecraft.world.level.LevelAccessor world, net.minecraft.core.BlockPos thisPos, net.minecraft.core.BlockPos neighborPos)

Overrides:
  `updateShape` in class `net.minecraft.world.level.block.state.BlockBehaviour`

### canSurvive

public boolean canSurvive(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.LevelReader world, net.minecraft.core.BlockPos pos)

Overrides:
  `canSurvive` in class `net.minecraft.world.level.block.state.BlockBehaviour`

### getStateForPlacement

@Nullable public net.minecraft.world.level.block.state.BlockState getStateForPlacement(net.minecraft.world.item.context.BlockPlaceContext context)

Overrides:
  `getStateForPlacement` in class `net.minecraft.world.level.block.Block`
Returns:
  null if no state should be placed, or the state that should be placed otherwise

### initializeClient

public void initializeClient(Consumer<net.minecraftforge.client.extensions.common.IClientBlockExtensions> consumer)

Overrides:
  `initializeClient` in class `net.minecraft.world.level.block.Block`

### onPlace

@Deprecated public void onPlace(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level worldIn, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState oldState, boolean isMoving)
Deprecated.

Overrides:
  `onPlace` in class `net.minecraft.world.level.block.state.BlockBehaviour`

### setPlacedBy

public void setPlacedBy(net.minecraft.world.level.Level worldIn, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.entity.LivingEntity placer, net.minecraft.world.item.ItemStack stack)

Overrides:
  `setPlacedBy` in class `net.minecraft.world.level.block.Block`

### onRemove

@Deprecated public void onRemove(net.minecraft.world.level.block.state.BlockState oldState, net.minecraft.world.level.Level worldIn, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState newState, boolean isMoving)
Deprecated.

Overrides:
  `onRemove` in class `net.minecraft.world.level.block.state.BlockBehaviour`

### neighborChanged

@Deprecated public void neighborChanged(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level worldIn, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.Block neighborBlock, net.minecraft.core.BlockPos fromPos, boolean isMoving)
Deprecated.

Overrides:
  `neighborChanged` in class `net.minecraft.world.level.block.state.BlockBehaviour`

### rotate

public net.minecraft.world.level.block.state.BlockState rotate(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.Rotation rot)

Overrides:
  `rotate` in class `net.minecraft.world.level.block.state.BlockBehaviour`

### mirror

public net.minecraft.world.level.block.state.BlockState mirror(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.Mirror mirrorIn)

Overrides:
  `mirror` in class `net.minecraft.world.level.block.state.BlockBehaviour`

### getWireCount

public int getWireCount(net.minecraft.world.level.block.state.BlockState state)

### isEmptyWireBlock

public boolean isEmptyWireBlock(net.minecraft.world.level.block.state.BlockState state)

### getEdgeFlags

protected long getEdgeFlags(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos)

### getEdgeFlagsForNodeLineEdgeFormat

protected long getEdgeFlagsForNodeLineEdgeFormat(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos)
Returns a long containing the edge flags shifted for node-line-edge format The first 30 bits will be 0, the next 12 bits contain edge flags in edge-ordinal order

Parameters:
  `world` - The world for worldpos context
  `pos` - The position for worldpos context
Returns:
  A set of edge flags where the 30 least-significant bits are 0 and the next 12 bits contain edge flags in edge-ordinal order

### getInteriorFaceToBreak

@Nullable public net.minecraft.core.Direction getInteriorFaceToBreak(net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.player.Player player, net.minecraft.world.phys.BlockHitResult raytrace, float partialTicks)

### updateShapeCache

protected void updateShapeCache(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos)

### addEmptyWireToAir

protected void addEmptyWireToAir(net.minecraft.world.level.block.state.BlockState thisState, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos neighborAirPos, net.minecraft.core.Direction directionToNeighbor)

### destroyClickedSegment

public void destroyClickedSegment(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.player.Player player, net.minecraft.core.Direction interiorFace, boolean dropItems)

### getExpandedShapeIndex

public long getExpandedShapeIndex(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos)
Get the index of the expanded shape for the given wireblock blockstate (including non-blockstate-based shapes); this is a bit pattern, the bits are defined as such starting from the least-significant bit: bits 0-5 -- the unexpanded shape index for a given state (indicating which of the six interior faces wires are attached to) bits 6-29 (the next 24 bits) -- the flags indicating which adjacent neighbors the faces are connecting to each primary face can connect to the faces of four neighbors (6*4 = 24) bits 30-41 (the next 12 bits) -- the flags indicating any edges connecting wires diagonally

Parameters:
  `state` - A blockstate belonging to a WireBlock
  `world` - world
  `pos` - position of the blockstate
Returns:
  An index usable by the voxel cache

### getCachedExpandedShapeVoxel

public net.minecraft.world.phys.shapes.VoxelShape getCachedExpandedShapeVoxel(net.minecraft.world.level.block.state.BlockState wireState, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos)