Package net.commoble.exmachina.internal.mechanical

# Record Class MechanicalBlockState

java.lang.Object
java.lang.Record
net.commoble.exmachina.internal.mechanical.MechanicalBlockState

Record Components:
  `state` - some BlockState
  `component` - the blockstate's MechanicalStateComponent

public record MechanicalBlockState(net.minecraft.world.level.block.state.BlockState state, MechanicalStateComponent component) extends Record
Cached BlockState + its associated MechanicalStateComponent

## Constructor Summary

Constructors
Constructor
Description
`MechanicalBlockState(net.minecraft.world.level.block.state.BlockState state, MechanicalStateComponent component)`
Creates an instance of a `MechanicalBlockState` record class.

## Method Summary

Modifier and Type
Method
Description
`MechanicalStateComponent`
`component()`
Returns the value of the `component` record component.
`final boolean`
`equals(Object o)`
Indicates whether some other object is "equal to" this one.
`static MechanicalBlockState`
`getOrDefault(net.minecraft.world.level.BlockGetter blockGetter, net.minecraft.core.BlockPos pos, net.minecraft.core.RegistryAccess registries)`
Gets the BlockState at a given position and its MechanicalStateComponent, if any
`final int`
`hashCode()`
Returns a hash code value for this object.
`net.minecraft.world.level.block.state.BlockState`
`state()`
Returns the value of the `state` record component.
`final String`
`toString()`
Returns a string representation of this record class.

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

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

## Constructor Details

### MechanicalBlockState

public MechanicalBlockState(net.minecraft.world.level.block.state.BlockState state, MechanicalStateComponent component)
Creates an instance of a `MechanicalBlockState` record class.

Parameters:
  `state` - the value for the `state` record component
  `component` - the value for the `component` record component

## Method Details

### getOrDefault

public static MechanicalBlockState getOrDefault(net.minecraft.world.level.BlockGetter blockGetter, net.minecraft.core.BlockPos pos, net.minecraft.core.RegistryAccess registries)
Gets the BlockState at a given position and its MechanicalStateComponent, if any

Parameters:
  `blockGetter` - BlockGetter to query for the blockstate
  `pos` - BlockPos to get the blockstate at
  `registries` - RegistryAccess to evaluate the MechanicalStateComponent with if it needs to be created
Returns:
  MechanicalBlockState of the state at the given position + its MechanicalStateComponent (which may be MechanicalStateComponent.EMPTY if the block has no associated component)

### toString

public final String toString()
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.

Specified by:
  `toString` in class `Record`
Returns:
  a string representation of this object

### hashCode

public final int hashCode()
Returns a hash code value for this object. The value is derived from the hash code of each of the record components.

Specified by:
  `hashCode` in class `Record`
Returns:
  a hash code value for this object

### equals

public final boolean equals(Object o)
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with `Objects::equals(Object,Object)`.

Specified by:
  `equals` in class `Record`
Parameters:
  `o` - the object with which to compare
Returns:
  `true` if this object is the same as the `o` argument; `false` otherwise.

### state

public net.minecraft.world.level.block.state.BlockState state()
Returns the value of the `state` record component.

Returns:
  the value of the `state` record component

### component

public MechanicalStateComponent component()
Returns the value of the `component` record component.

Returns:
  the value of the `component` record component