Rename block rotation freedom to be more precise
This commit is contained in:
parent
2b85e5754f
commit
ecc89e992c
@ -230,16 +230,16 @@ fun addDecorativeData(blockStateProvider: MatteryBlockStateProvider, itemModelPr
|
|||||||
blockStateProvider.getVariantBuilder(MBlocks.LABORATORY_LAMP).forAllStates {
|
blockStateProvider.getVariantBuilder(MBlocks.LABORATORY_LAMP).forAllStates {
|
||||||
return@forAllStates ConfiguredModel.builder()
|
return@forAllStates ConfiguredModel.builder()
|
||||||
.modelFile(if (it[BlockStateProperties.LIT]) labLampOn!! else labLampOff!!)
|
.modelFile(if (it[BlockStateProperties.LIT]) labLampOn!! else labLampOff!!)
|
||||||
.rotationX(it[BlockRotationFreedom.TWO.property].front.xRotationBlockstateNorth())
|
.rotationX(it[BlockRotationFreedom.XZ_XY.property].front.xRotationBlockstateNorth())
|
||||||
.rotationY(it[BlockRotationFreedom.TWO.property].front.yRotationBlockstateNorth())
|
.rotationY(it[BlockRotationFreedom.XZ_XY.property].front.yRotationBlockstateNorth())
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
blockStateProvider.getVariantBuilder(MBlocks.LABORATORY_LAMP_INVERTED).forAllStates {
|
blockStateProvider.getVariantBuilder(MBlocks.LABORATORY_LAMP_INVERTED).forAllStates {
|
||||||
return@forAllStates ConfiguredModel.builder()
|
return@forAllStates ConfiguredModel.builder()
|
||||||
.modelFile(if (it[BlockStateProperties.LIT]) labLampOn!! else labLampOff!!)
|
.modelFile(if (it[BlockStateProperties.LIT]) labLampOn!! else labLampOff!!)
|
||||||
.rotationX(it[BlockRotationFreedom.TWO.property].front.xRotationBlockstateNorth())
|
.rotationX(it[BlockRotationFreedom.XZ_XY.property].front.xRotationBlockstateNorth())
|
||||||
.rotationY(it[BlockRotationFreedom.TWO.property].front.yRotationBlockstateNorth())
|
.rotationY(it[BlockRotationFreedom.XZ_XY.property].front.yRotationBlockstateNorth())
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ open class BatteryBankProvider(event: GatherDataEvent) : BlockStateProvider(even
|
|||||||
forAllStates {
|
forAllStates {
|
||||||
ConfiguredModel.builder()
|
ConfiguredModel.builder()
|
||||||
.modelFile(models().getExistingFile(modLocation("block/$block")))
|
.modelFile(models().getExistingFile(modLocation("block/$block")))
|
||||||
.rotationY(it[BlockRotationFreedom.ONE.property].front.yRotationBlockstateNorth())
|
.rotationY(it[BlockRotationFreedom.XZ.property].front.yRotationBlockstateNorth())
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,54 +36,54 @@ fun addBlockStates(provider: MatteryBlockStateProvider) {
|
|||||||
|
|
||||||
provider.exec {
|
provider.exec {
|
||||||
with(provider.getMultipartBuilder(MBlocks.PHANTOM_ATTRACTOR)) {
|
with(provider.getMultipartBuilder(MBlocks.PHANTOM_ATTRACTOR)) {
|
||||||
for (dir in BlockRotationFreedom.ONE.possibleValues) {
|
for (dir in BlockRotationFreedom.XZ.possibleValues) {
|
||||||
part().modelFile(provider.models().getExistingFile(modLocation("block/${MNames.PHANTOM_ATTRACTOR}")))
|
part().modelFile(provider.models().getExistingFile(modLocation("block/${MNames.PHANTOM_ATTRACTOR}")))
|
||||||
.rotationY(dir.front.yRotationBlockstateNorth())
|
.rotationY(dir.front.yRotationBlockstateNorth())
|
||||||
.addModel()
|
.addModel()
|
||||||
.condition(BlockStateProperties.DOUBLE_BLOCK_HALF, DoubleBlockHalf.LOWER)
|
.condition(BlockStateProperties.DOUBLE_BLOCK_HALF, DoubleBlockHalf.LOWER)
|
||||||
.condition(BlockRotationFreedom.ONE.property, dir)
|
.condition(BlockRotationFreedom.XZ.property, dir)
|
||||||
.end()
|
.end()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
with(provider.getMultipartBuilder(MBlocks.ANDROID_CHARGER)) {
|
with(provider.getMultipartBuilder(MBlocks.ANDROID_CHARGER)) {
|
||||||
for (dir in BlockRotationFreedom.ONE.possibleValues) {
|
for (dir in BlockRotationFreedom.XZ.possibleValues) {
|
||||||
for (part in AndroidChargerBlock.PART.possibleValues) {
|
for (part in AndroidChargerBlock.PART.possibleValues) {
|
||||||
part().modelFile(provider.models().getExistingFile(modLocation("block/${MNames.ANDROID_CHARGER}_${part.serializedName}")))
|
part().modelFile(provider.models().getExistingFile(modLocation("block/${MNames.ANDROID_CHARGER}_${part.serializedName}")))
|
||||||
.rotationY(dir.front.yRotationBlockstateNorth())
|
.rotationY(dir.front.yRotationBlockstateNorth())
|
||||||
.addModel()
|
.addModel()
|
||||||
.condition(AndroidChargerBlock.PART, part)
|
.condition(AndroidChargerBlock.PART, part)
|
||||||
.condition(BlockRotationFreedom.ONE.property, dir)
|
.condition(BlockRotationFreedom.XZ.property, dir)
|
||||||
.end()
|
.end()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
with(provider.getMultipartBuilder(MBlocks.MATTER_BOTTLER)) {
|
with(provider.getMultipartBuilder(MBlocks.MATTER_BOTTLER)) {
|
||||||
for (dir in BlockRotationFreedom.ONE.possibleValues) {
|
for (dir in BlockRotationFreedom.XZ.possibleValues) {
|
||||||
for (enum in WorkerState.SEMI_WORKER_STATE.possibleValues) {
|
for (enum in WorkerState.SEMI_WORKER_STATE.possibleValues) {
|
||||||
part().modelFile(provider.models().getExistingFile(modLocation("matter_bottler_${enum.name.lowercase()}")))
|
part().modelFile(provider.models().getExistingFile(modLocation("matter_bottler_${enum.name.lowercase()}")))
|
||||||
.rotationY(dir.front.yRotationBlockstateNorth())
|
.rotationY(dir.front.yRotationBlockstateNorth())
|
||||||
.addModel()
|
.addModel()
|
||||||
.condition(BlockRotationFreedom.ONE.property, dir)
|
.condition(BlockRotationFreedom.XZ.property, dir)
|
||||||
.condition(WorkerState.WORKER_STATE, enum)
|
.condition(WorkerState.WORKER_STATE, enum)
|
||||||
.end()
|
.end()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (dir in BlockRotationFreedom.ONE.possibleValues) {
|
for (dir in BlockRotationFreedom.XZ.possibleValues) {
|
||||||
for (enum in MatterBottlerBlock.SLOT_PROPERTIES) {
|
for (enum in MatterBottlerBlock.SLOT_PROPERTIES) {
|
||||||
part().modelFile(provider.models().getExistingFile(modLocation("matter_bottler_${enum.name}_open")))
|
part().modelFile(provider.models().getExistingFile(modLocation("matter_bottler_${enum.name}_open")))
|
||||||
.rotationY(dir.front.yRotationBlockstateNorth())
|
.rotationY(dir.front.yRotationBlockstateNorth())
|
||||||
.addModel()
|
.addModel()
|
||||||
.condition(BlockRotationFreedom.ONE.property, dir)
|
.condition(BlockRotationFreedom.XZ.property, dir)
|
||||||
.condition(enum, false)
|
.condition(enum, false)
|
||||||
.end()
|
.end()
|
||||||
|
|
||||||
part().modelFile(provider.models().getExistingFile(modLocation("matter_bottler_${enum.name}_closed")))
|
part().modelFile(provider.models().getExistingFile(modLocation("matter_bottler_${enum.name}_closed")))
|
||||||
.rotationY(dir.front.yRotationBlockstateNorth())
|
.rotationY(dir.front.yRotationBlockstateNorth())
|
||||||
.addModel()
|
.addModel()
|
||||||
.condition(BlockRotationFreedom.ONE.property, dir)
|
.condition(BlockRotationFreedom.XZ.property, dir)
|
||||||
.condition(enum, true)
|
.condition(enum, true)
|
||||||
.end()
|
.end()
|
||||||
}
|
}
|
||||||
@ -116,19 +116,19 @@ fun addBlockStates(provider: MatteryBlockStateProvider) {
|
|||||||
modLocation("${crate.registryName!!.path}_${if (it.getValue(
|
modLocation("${crate.registryName!!.path}_${if (it.getValue(
|
||||||
CargoCrateBlock.IS_OPEN)) "open" else "closed"}")
|
CargoCrateBlock.IS_OPEN)) "open" else "closed"}")
|
||||||
))
|
))
|
||||||
.rotationY(it.getValue(BlockRotationFreedom.ONE.property).front.yRotationBlockstateNorth())
|
.rotationY(it.getValue(BlockRotationFreedom.XZ.property).front.yRotationBlockstateNorth())
|
||||||
.buildLast()
|
.buildLast()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
with(provider.getMultipartBuilder(MBlocks.STORAGE_BUS)) {
|
with(provider.getMultipartBuilder(MBlocks.STORAGE_BUS)) {
|
||||||
for (dir in BlockRotationFreedom.TWO.possibleValues) {
|
for (dir in BlockRotationFreedom.XZ_XY.possibleValues) {
|
||||||
part().modelFile(provider.models().getExistingFile(modLocation("storage_bus")))
|
part().modelFile(provider.models().getExistingFile(modLocation("storage_bus")))
|
||||||
.rotationX(dir.front.xRotationBlockstateNorth())
|
.rotationX(dir.front.xRotationBlockstateNorth())
|
||||||
.rotationY(dir.front.yRotationBlockstateNorth())
|
.rotationY(dir.front.yRotationBlockstateNorth())
|
||||||
.addModel()
|
.addModel()
|
||||||
.condition(BlockRotationFreedom.TWO.property, dir)
|
.condition(BlockRotationFreedom.XZ_XY.property, dir)
|
||||||
.end()
|
.end()
|
||||||
|
|
||||||
part().modelFile(provider.models().getExistingFile(modLocation("storage_cable_connection")))
|
part().modelFile(provider.models().getExistingFile(modLocation("storage_cable_connection")))
|
||||||
@ -144,12 +144,12 @@ fun addBlockStates(provider: MatteryBlockStateProvider) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
with(provider.getMultipartBuilder(MBlocks.STORAGE_IMPORTER)) {
|
with(provider.getMultipartBuilder(MBlocks.STORAGE_IMPORTER)) {
|
||||||
for (dir in BlockRotationFreedom.TWO.possibleValues) {
|
for (dir in BlockRotationFreedom.XZ_XY.possibleValues) {
|
||||||
part().modelFile(provider.models().getExistingFile(modLocation("storage_importer")))
|
part().modelFile(provider.models().getExistingFile(modLocation("storage_importer")))
|
||||||
.rotationX(dir.front.xRotationBlockstateNorth())
|
.rotationX(dir.front.xRotationBlockstateNorth())
|
||||||
.rotationY(dir.front.yRotationBlockstateNorth())
|
.rotationY(dir.front.yRotationBlockstateNorth())
|
||||||
.addModel()
|
.addModel()
|
||||||
.condition(BlockRotationFreedom.TWO.property, dir)
|
.condition(BlockRotationFreedom.XZ_XY.property, dir)
|
||||||
.end()
|
.end()
|
||||||
|
|
||||||
part().modelFile(provider.models().getExistingFile(modLocation("storage_cable_connection")))
|
part().modelFile(provider.models().getExistingFile(modLocation("storage_cable_connection")))
|
||||||
@ -165,12 +165,12 @@ fun addBlockStates(provider: MatteryBlockStateProvider) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
with(provider.getMultipartBuilder(MBlocks.STORAGE_EXPORTER)) {
|
with(provider.getMultipartBuilder(MBlocks.STORAGE_EXPORTER)) {
|
||||||
for (dir in BlockRotationFreedom.TWO.possibleValues) {
|
for (dir in BlockRotationFreedom.XZ_XY.possibleValues) {
|
||||||
part().modelFile(provider.models().getExistingFile(modLocation("storage_exporter")))
|
part().modelFile(provider.models().getExistingFile(modLocation("storage_exporter")))
|
||||||
.rotationX(dir.front.xRotationBlockstateNorth())
|
.rotationX(dir.front.xRotationBlockstateNorth())
|
||||||
.rotationY(dir.front.yRotationBlockstateNorth())
|
.rotationY(dir.front.yRotationBlockstateNorth())
|
||||||
.addModel()
|
.addModel()
|
||||||
.condition(BlockRotationFreedom.TWO.property, dir)
|
.condition(BlockRotationFreedom.XZ_XY.property, dir)
|
||||||
.end()
|
.end()
|
||||||
|
|
||||||
part().modelFile(provider.models().getExistingFile(modLocation("storage_cable_connection")))
|
part().modelFile(provider.models().getExistingFile(modLocation("storage_cable_connection")))
|
||||||
|
@ -12,12 +12,12 @@ import ru.dbotthepony.mc.otm.registry.MBlocks
|
|||||||
|
|
||||||
fun addComplexBlockStates(provider: MatteryBlockStateProvider) {
|
fun addComplexBlockStates(provider: MatteryBlockStateProvider) {
|
||||||
with(provider.getMultipartBuilder(MBlocks.DRIVE_VIEWER)) {
|
with(provider.getMultipartBuilder(MBlocks.DRIVE_VIEWER)) {
|
||||||
for (facing in BlockRotationFreedom.ONE.possibleValues) {
|
for (facing in BlockRotationFreedom.XZ.possibleValues) {
|
||||||
part()
|
part()
|
||||||
.modelFile(provider.models().getExistingFile(modLocation("block/drive_viewer_drive_part")))
|
.modelFile(provider.models().getExistingFile(modLocation("block/drive_viewer_drive_part")))
|
||||||
.rotationY(facing.front.yRotationBlockstateNorth())
|
.rotationY(facing.front.yRotationBlockstateNorth())
|
||||||
.addModel()
|
.addModel()
|
||||||
.condition(BlockRotationFreedom.ONE.property, facing)
|
.condition(BlockRotationFreedom.XZ.property, facing)
|
||||||
.condition(DriveViewerBlock.DRIVE_PRESENT, true)
|
.condition(DriveViewerBlock.DRIVE_PRESENT, true)
|
||||||
|
|
||||||
for (workState in WorkerState.SEMI_WORKER_STATE.possibleValues) {
|
for (workState in WorkerState.SEMI_WORKER_STATE.possibleValues) {
|
||||||
@ -26,25 +26,25 @@ fun addComplexBlockStates(provider: MatteryBlockStateProvider) {
|
|||||||
.rotationY(facing.front.yRotationBlockstateNorth())
|
.rotationY(facing.front.yRotationBlockstateNorth())
|
||||||
.addModel()
|
.addModel()
|
||||||
.condition(WorkerState.SEMI_WORKER_STATE, workState)
|
.condition(WorkerState.SEMI_WORKER_STATE, workState)
|
||||||
.condition(BlockRotationFreedom.ONE.property, facing)
|
.condition(BlockRotationFreedom.XZ.property, facing)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
with(provider.getMultipartBuilder(MBlocks.PATTERN_STORAGE)) {
|
with(provider.getMultipartBuilder(MBlocks.PATTERN_STORAGE)) {
|
||||||
for (facing in BlockRotationFreedom.ONE.possibleValues) {
|
for (facing in BlockRotationFreedom.XZ.possibleValues) {
|
||||||
part()
|
part()
|
||||||
.modelFile(provider.models().getExistingFile(modLocation("block/pattern_storage")))
|
.modelFile(provider.models().getExistingFile(modLocation("block/pattern_storage")))
|
||||||
.rotationY(facing.front.yRotationBlockstateNorth())
|
.rotationY(facing.front.yRotationBlockstateNorth())
|
||||||
.addModel()
|
.addModel()
|
||||||
.condition(BlockRotationFreedom.ONE.property, facing)
|
.condition(BlockRotationFreedom.XZ.property, facing)
|
||||||
|
|
||||||
for (i in 0 .. 7) {
|
for (i in 0 .. 7) {
|
||||||
part()
|
part()
|
||||||
.modelFile(provider.models().getExistingFile(modLocation("block/pattern/model$i")))
|
.modelFile(provider.models().getExistingFile(modLocation("block/pattern/model$i")))
|
||||||
.rotationY(facing.front.yRotationBlockstateNorth())
|
.rotationY(facing.front.yRotationBlockstateNorth())
|
||||||
.addModel()
|
.addModel()
|
||||||
.condition(BlockRotationFreedom.ONE.property, facing)
|
.condition(BlockRotationFreedom.XZ.property, facing)
|
||||||
.condition(PatternStorageBlock.PATTERN_STORAGE_DISKS_PROPS[i], true)
|
.condition(PatternStorageBlock.PATTERN_STORAGE_DISKS_PROPS[i], true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,16 +21,16 @@ private val EMPTY: BlockStateTransform = { _, _, _ -> null }
|
|||||||
private fun initialTransform(it: BlockState, modelPath: String, builder: ConfiguredModel.Builder<*>): String {
|
private fun initialTransform(it: BlockState, modelPath: String, builder: ConfiguredModel.Builder<*>): String {
|
||||||
@Suppress("NAME_SHADOWING") var modelPath = modelPath
|
@Suppress("NAME_SHADOWING") var modelPath = modelPath
|
||||||
|
|
||||||
it.getValueNullable(BlockRotationFreedom.ONE.property)?.let {
|
it.getValueNullable(BlockRotationFreedom.XZ.property)?.let {
|
||||||
builder.rotationY(it.front.yRotationBlockstateNorth())
|
builder.rotationY(it.front.yRotationBlockstateNorth())
|
||||||
}
|
}
|
||||||
|
|
||||||
it.getValueNullable(BlockRotationFreedom.TWO.property)?.let {
|
it.getValueNullable(BlockRotationFreedom.XZ_XY.property)?.let {
|
||||||
builder.rotationY(it.front.yRotationBlockstateNorth())
|
builder.rotationY(it.front.yRotationBlockstateNorth())
|
||||||
builder.rotationX(it.front.xRotationBlockstateNorth())
|
builder.rotationX(it.front.xRotationBlockstateNorth())
|
||||||
}
|
}
|
||||||
|
|
||||||
it.getValueNullable(BlockRotationFreedom.THREE.property)?.let {
|
it.getValueNullable(BlockRotationFreedom.XZ_XY_ZY.property)?.let {
|
||||||
builder.rotationY(it.front.yRotationBlockstateNorth() + it.top.yRotationBlockstateNorth())
|
builder.rotationY(it.front.yRotationBlockstateNorth() + it.top.yRotationBlockstateNorth())
|
||||||
builder.rotationX(it.front.xRotationBlockstateNorth())
|
builder.rotationX(it.front.xRotationBlockstateNorth())
|
||||||
}
|
}
|
||||||
|
@ -115,9 +115,9 @@ abstract class MatteryBlock @JvmOverloads constructor(
|
|||||||
val state = blockState.getOptionalValue(WorkerState.WORKER_STATE).or { blockState.getOptionalValue(WorkerState.SEMI_WORKER_STATE) }
|
val state = blockState.getOptionalValue(WorkerState.WORKER_STATE).or { blockState.getOptionalValue(WorkerState.SEMI_WORKER_STATE) }
|
||||||
|
|
||||||
if (state.isPresent && state.get() == WorkerState.WORKING) {
|
if (state.isPresent && state.get() == WorkerState.WORKING) {
|
||||||
val state2 = blockState.getOptionalValue(BlockRotationFreedom.ONE.property)
|
val state2 = blockState.getOptionalValue(BlockRotationFreedom.XZ.property)
|
||||||
.or { blockState.getOptionalValue(BlockRotationFreedom.TWO.property) }
|
.or { blockState.getOptionalValue(BlockRotationFreedom.XZ_XY.property) }
|
||||||
.or { blockState.getOptionalValue(BlockRotationFreedom.THREE.property) }
|
.or { blockState.getOptionalValue(BlockRotationFreedom.XZ_XY_ZY.property) }
|
||||||
|
|
||||||
if (state2.isPresent) {
|
if (state2.isPresent) {
|
||||||
val direction = state2.get()
|
val direction = state2.get()
|
||||||
|
@ -22,17 +22,17 @@ abstract class RotatableMatteryBlock @JvmOverloads constructor(properties: Prope
|
|||||||
|
|
||||||
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
|
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
|
||||||
return when (val freedom = rotationFreedom()) {
|
return when (val freedom = rotationFreedom()) {
|
||||||
BlockRotationFreedom.ONE -> defaultBlockState().setValue(
|
BlockRotationFreedom.XZ -> defaultBlockState().setValue(
|
||||||
freedom.property,
|
freedom.property,
|
||||||
freedom.of(if (faceToPlayer(context)) context.horizontalDirection.opposite else context.horizontalDirection)
|
freedom.of(if (faceToPlayer(context)) context.horizontalDirection.opposite else context.horizontalDirection)
|
||||||
)
|
)
|
||||||
|
|
||||||
BlockRotationFreedom.TWO -> defaultBlockState().setValue(
|
BlockRotationFreedom.XZ_XY -> defaultBlockState().setValue(
|
||||||
freedom.property,
|
freedom.property,
|
||||||
freedom.of(if (faceToPlayer(context)) context.nearestLookingDirection.opposite else context.nearestLookingDirection)
|
freedom.of(if (faceToPlayer(context)) context.nearestLookingDirection.opposite else context.nearestLookingDirection)
|
||||||
)
|
)
|
||||||
|
|
||||||
BlockRotationFreedom.THREE -> {
|
BlockRotationFreedom.XZ_XY_ZY -> {
|
||||||
val primary = if (faceToPlayer(context)) context.nearestLookingDirection.opposite else context.nearestLookingDirection
|
val primary = if (faceToPlayer(context)) context.nearestLookingDirection.opposite else context.nearestLookingDirection
|
||||||
var secondary = if (faceToPlayer(context)) context.horizontalDirection else context.horizontalDirection.opposite
|
var secondary = if (faceToPlayer(context)) context.horizontalDirection else context.horizontalDirection.opposite
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ abstract class RotatableMatteryBlock @JvmOverloads constructor(properties: Prope
|
|||||||
val rotationProperty get() = rotationFreedom().property
|
val rotationProperty get() = rotationFreedom().property
|
||||||
|
|
||||||
open fun rotationFreedom(): BlockRotationFreedom {
|
open fun rotationFreedom(): BlockRotationFreedom {
|
||||||
return BlockRotationFreedom.ONE
|
return BlockRotationFreedom.XZ
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun faceToPlayer(context: BlockPlaceContext): Boolean {
|
open fun faceToPlayer(context: BlockPlaceContext): Boolean {
|
||||||
|
@ -3,7 +3,6 @@ package ru.dbotthepony.mc.otm.block.decorative
|
|||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.world.item.DyeColor
|
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.TooltipFlag
|
import net.minecraft.world.item.TooltipFlag
|
||||||
import net.minecraft.world.level.BlockGetter
|
import net.minecraft.world.level.BlockGetter
|
||||||
@ -30,7 +29,7 @@ class EngineBlock : RotatableMatteryBlock(Properties.of().mapColor(MapColor.COLO
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun rotationFreedom(): BlockRotationFreedom {
|
override fun rotationFreedom(): BlockRotationFreedom {
|
||||||
return BlockRotationFreedom.TWO
|
return BlockRotationFreedom.XZ_XY
|
||||||
}
|
}
|
||||||
|
|
||||||
private val shapes = getShapeForEachState { BlockShapes.ENGINE.rotateFromNorth(it[rotationProperty]).computeShape() }
|
private val shapes = getShapeForEachState { BlockShapes.ENGINE.rotateFromNorth(it[rotationProperty]).computeShape() }
|
||||||
|
@ -15,7 +15,7 @@ import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
|||||||
|
|
||||||
class HoloSignBlock : RotatableMatteryBlock(), EntityBlock {
|
class HoloSignBlock : RotatableMatteryBlock(), EntityBlock {
|
||||||
override fun rotationFreedom(): BlockRotationFreedom {
|
override fun rotationFreedom(): BlockRotationFreedom {
|
||||||
return BlockRotationFreedom.THREE
|
return BlockRotationFreedom.XZ_XY_ZY
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun newBlockEntity(p_153215_: BlockPos, p_153216_: BlockState): BlockEntity {
|
override fun newBlockEntity(p_153215_: BlockPos, p_153216_: BlockState): BlockEntity {
|
||||||
|
@ -23,11 +23,10 @@ import ru.dbotthepony.mc.otm.core.get
|
|||||||
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
||||||
import ru.dbotthepony.mc.otm.core.math.blockRotation
|
import ru.dbotthepony.mc.otm.core.math.blockRotation
|
||||||
import ru.dbotthepony.mc.otm.core.math.plus
|
import ru.dbotthepony.mc.otm.core.math.plus
|
||||||
import ru.dbotthepony.mc.otm.core.math.unaryMinus
|
|
||||||
import ru.dbotthepony.mc.otm.once
|
import ru.dbotthepony.mc.otm.once
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlocks
|
import ru.dbotthepony.mc.otm.registry.MBlocks
|
||||||
|
|
||||||
private val FACING_FULL = BlockRotationFreedom.TWO.property
|
private val FACING_FULL = BlockRotationFreedom.XZ_XY.property
|
||||||
|
|
||||||
class LaboratoryLampLight : Block(Properties.of().strength(-1.0F, 3600000.8F).noCollission().noLootTable().replaceable().lightLevel { 15 }) {
|
class LaboratoryLampLight : Block(Properties.of().strength(-1.0F, 3600000.8F).noCollission().noLootTable().replaceable().lightLevel { 15 }) {
|
||||||
override fun createBlockStateDefinition(builder: StateDefinition.Builder<Block, BlockState>) {
|
override fun createBlockStateDefinition(builder: StateDefinition.Builder<Block, BlockState>) {
|
||||||
|
@ -122,8 +122,8 @@ class StorageBusBlockEntity(blockPos: BlockPos, blockState: BlockState) : Matter
|
|||||||
if (isRemoved)
|
if (isRemoved)
|
||||||
return
|
return
|
||||||
|
|
||||||
val front = blockPos + blockState.getValue(BlockRotationFreedom.TWO.property)
|
val front = blockPos + blockState.getValue(BlockRotationFreedom.XZ_XY.property)
|
||||||
val storage = level?.getBlockEntity(front)?.getCapability(ForgeCapabilities.ITEM_HANDLER, -blockState.getValue(BlockRotationFreedom.TWO.property))?.let { if (it.isPresent) it else null }
|
val storage = level?.getBlockEntity(front)?.getCapability(ForgeCapabilities.ITEM_HANDLER, -blockState.getValue(BlockRotationFreedom.XZ_XY.property))?.let { if (it.isPresent) it else null }
|
||||||
|
|
||||||
if (neighbour != storage) {
|
if (neighbour != storage) {
|
||||||
neighbour = storage
|
neighbour = storage
|
||||||
|
@ -2,20 +2,19 @@ package ru.dbotthepony.mc.otm.block.entity.tech
|
|||||||
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.SectionPos
|
import net.minecraft.core.SectionPos
|
||||||
import net.minecraft.network.chat.Component
|
|
||||||
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
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
import net.minecraft.world.level.block.state.BlockState
|
import net.minecraft.world.level.block.state.BlockState
|
||||||
import net.minecraft.world.phys.AABB
|
import net.minecraft.world.phys.AABB
|
||||||
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
|
||||||
import ru.dbotthepony.mc.otm.block.tech.BlockGravitationStabilizerLens
|
import ru.dbotthepony.mc.otm.block.tech.BlockGravitationStabilizerLens
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryDeviceBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.MatteryDeviceBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
||||||
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlackHoleBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlackHoleBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.tech.BlockGravitationStabilizer
|
import ru.dbotthepony.mc.otm.block.tech.BlockGravitationStabilizer
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingTwo
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
|
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
||||||
import ru.dbotthepony.mc.otm.core.math.plus
|
import ru.dbotthepony.mc.otm.core.math.plus
|
||||||
import ru.dbotthepony.mc.otm.core.math.times
|
import ru.dbotthepony.mc.otm.core.math.times
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
@ -27,7 +26,7 @@ class GravitationStabilizerBlockEntity(p_155229_: BlockPos, p_155230_: BlockStat
|
|||||||
|
|
||||||
fun tick(level: Level) {
|
fun tick(level: Level) {
|
||||||
var findBlackHole: BlackHoleBlockEntity? = null
|
var findBlackHole: BlackHoleBlockEntity? = null
|
||||||
val dir = blockState.facingTwo.normal
|
val dir = blockState[BlockRotationFreedom.XZ_XY].normal
|
||||||
|
|
||||||
for (i in 2 .. RANGE) {
|
for (i in 2 .. RANGE) {
|
||||||
val pos = blockPos + dir * i
|
val pos = blockPos + dir * i
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.matter
|
package ru.dbotthepony.mc.otm.block.matter
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext
|
import net.minecraft.world.item.context.BlockPlaceContext
|
||||||
import net.minecraft.world.level.BlockGetter
|
import net.minecraft.world.level.BlockGetter
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
@ -20,7 +19,6 @@ import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
|||||||
import ru.dbotthepony.mc.otm.block.entity.matter.MatterBottlerBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.matter.MatterBottlerBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingOne
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
|
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.MethodsReturnNonnullByDefault
|
|||||||
import javax.annotation.ParametersAreNonnullByDefault
|
import javax.annotation.ParametersAreNonnullByDefault
|
||||||
import net.minecraft.world.level.block.EntityBlock
|
import net.minecraft.world.level.block.EntityBlock
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
|
||||||
import net.minecraft.world.level.block.state.BlockState
|
import net.minecraft.world.level.block.state.BlockState
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity
|
import net.minecraft.world.level.block.entity.BlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.matter.MatterDecomposerBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.matter.MatterDecomposerBlockEntity
|
||||||
@ -20,7 +19,6 @@ import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
|||||||
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
||||||
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingOne
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
|
|
||||||
|
@ -13,9 +13,9 @@ import net.minecraft.world.level.BlockGetter
|
|||||||
import net.minecraft.world.phys.shapes.CollisionContext
|
import net.minecraft.world.phys.shapes.CollisionContext
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext
|
import net.minecraft.world.item.context.BlockPlaceContext
|
||||||
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
||||||
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.BlockRotation
|
import ru.dbotthepony.mc.otm.core.math.BlockRotation
|
||||||
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
||||||
import ru.dbotthepony.mc.otm.core.math.rotationTwo
|
|
||||||
|
|
||||||
class MatterPanelBlock : RotatableMatteryBlock(), EntityBlock {
|
class MatterPanelBlock : RotatableMatteryBlock(), EntityBlock {
|
||||||
override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity {
|
override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity {
|
||||||
@ -25,10 +25,10 @@ class MatterPanelBlock : RotatableMatteryBlock(), EntityBlock {
|
|||||||
private val shapes: ImmutableMap<BlockState, VoxelShape>
|
private val shapes: ImmutableMap<BlockState, VoxelShape>
|
||||||
|
|
||||||
init {
|
init {
|
||||||
registerDefaultState(getStateDefinition().any().setValue(BlockRotationFreedom.TWO.property, BlockRotation.SOUTH))
|
registerDefaultState(getStateDefinition().any().setValue(BlockRotationFreedom.XZ_XY.property, BlockRotation.SOUTH))
|
||||||
|
|
||||||
shapes = getShapeForEachState {
|
shapes = getShapeForEachState {
|
||||||
when (it.rotationTwo.front) {
|
when (it[BlockRotationFreedom.XZ_XY.property].front) {
|
||||||
Direction.NORTH -> Shapes.box(
|
Direction.NORTH -> Shapes.box(
|
||||||
0.0,
|
0.0,
|
||||||
0.0,
|
0.0,
|
||||||
@ -91,10 +91,10 @@ class MatterPanelBlock : RotatableMatteryBlock(), EntityBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun rotationFreedom(): BlockRotationFreedom {
|
override fun rotationFreedom(): BlockRotationFreedom {
|
||||||
return BlockRotationFreedom.TWO
|
return BlockRotationFreedom.XZ_XY
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
|
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
|
||||||
return defaultBlockState().setValue(BlockRotationFreedom.TWO.property, BlockRotation.of(context.clickedFace))
|
return defaultBlockState().setValue(BlockRotationFreedom.XZ_XY.property, BlockRotation.of(context.clickedFace))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.matter
|
package ru.dbotthepony.mc.otm.block.matter
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
|
||||||
import net.minecraft.world.level.BlockGetter
|
import net.minecraft.world.level.BlockGetter
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
@ -18,7 +17,6 @@ import ru.dbotthepony.mc.otm.block.entity.matter.MatterRecyclerBlockEntity
|
|||||||
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
||||||
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingOne
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.matter
|
package ru.dbotthepony.mc.otm.block.matter
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
|
||||||
import net.minecraft.world.level.BlockGetter
|
import net.minecraft.world.level.BlockGetter
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
@ -18,7 +17,6 @@ import ru.dbotthepony.mc.otm.block.entity.matter.MatterReplicatorBlockEntity
|
|||||||
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
||||||
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingOne
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.matter
|
package ru.dbotthepony.mc.otm.block.matter
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
|
||||||
import net.minecraft.world.level.BlockGetter
|
import net.minecraft.world.level.BlockGetter
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
@ -18,7 +17,6 @@ import ru.dbotthepony.mc.otm.block.entity.matter.MatterScannerBlockEntity
|
|||||||
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
||||||
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingOne
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.storage
|
package ru.dbotthepony.mc.otm.block.storage
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.TooltipFlag
|
import net.minecraft.world.item.TooltipFlag
|
||||||
@ -20,7 +19,6 @@ import ru.dbotthepony.mc.otm.block.entity.storage.DriveRackBlockEntity
|
|||||||
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
||||||
import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage
|
import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage
|
||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingOne
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.storage
|
package ru.dbotthepony.mc.otm.block.storage
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.TooltipFlag
|
import net.minecraft.world.item.TooltipFlag
|
||||||
@ -25,7 +24,6 @@ import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
|||||||
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
||||||
import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage
|
import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage
|
||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingOne
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.storage
|
package ru.dbotthepony.mc.otm.block.storage
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.TooltipFlag
|
import net.minecraft.world.item.TooltipFlag
|
||||||
@ -20,7 +19,6 @@ import ru.dbotthepony.mc.otm.block.entity.storage.ItemMonitorBlockEntity
|
|||||||
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
||||||
import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage
|
import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage
|
||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingOne
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
|
|
||||||
|
@ -27,8 +27,6 @@ import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage
|
|||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.BlockRotation
|
import ru.dbotthepony.mc.otm.core.math.BlockRotation
|
||||||
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingTwo
|
|
||||||
import ru.dbotthepony.mc.otm.core.math.rotationTwo
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
import ru.dbotthepony.mc.otm.core.math.unaryMinus
|
import ru.dbotthepony.mc.otm.core.math.unaryMinus
|
||||||
@ -36,7 +34,7 @@ import ru.dbotthepony.mc.otm.oncePre
|
|||||||
|
|
||||||
class StorageBusBlock : RotatableMatteryBlock(), EntityBlock {
|
class StorageBusBlock : RotatableMatteryBlock(), EntityBlock {
|
||||||
override fun rotationFreedom(): BlockRotationFreedom {
|
override fun rotationFreedom(): BlockRotationFreedom {
|
||||||
return BlockRotationFreedom.TWO
|
return BlockRotationFreedom.XZ_XY
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
@ -54,7 +52,7 @@ class StorageBusBlock : RotatableMatteryBlock(), EntityBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
|
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
|
||||||
return super.getStateForPlacement(context)?.setValue(BlockRotationFreedom.TWO.property, BlockRotation.of(-context.clickedFace))
|
return super.getStateForPlacement(context)?.setValue(BlockRotationFreedom.XZ_XY.property, BlockRotation.of(-context.clickedFace))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun appendHoverText(
|
override fun appendHoverText(
|
||||||
|
@ -28,15 +28,13 @@ import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage
|
|||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.BlockRotation
|
import ru.dbotthepony.mc.otm.core.math.BlockRotation
|
||||||
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingTwo
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
import ru.dbotthepony.mc.otm.core.math.unaryMinus
|
import ru.dbotthepony.mc.otm.core.math.unaryMinus
|
||||||
import ru.dbotthepony.mc.otm.oncePre
|
|
||||||
|
|
||||||
class StorageImporterBlock : RotatableMatteryBlock(), EntityBlock {
|
class StorageImporterBlock : RotatableMatteryBlock(), EntityBlock {
|
||||||
override fun rotationFreedom(): BlockRotationFreedom {
|
override fun rotationFreedom(): BlockRotationFreedom {
|
||||||
return BlockRotationFreedom.TWO
|
return BlockRotationFreedom.XZ_XY
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun newBlockEntity(p_153215_: BlockPos, p_153216_: BlockState): BlockEntity {
|
override fun newBlockEntity(p_153215_: BlockPos, p_153216_: BlockState): BlockEntity {
|
||||||
@ -78,7 +76,7 @@ class StorageImporterBlock : RotatableMatteryBlock(), EntityBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
|
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
|
||||||
return super.getStateForPlacement(context)?.setValue(BlockRotationFreedom.TWO.property, BlockRotation.of(-context.clickedFace))
|
return super.getStateForPlacement(context)?.setValue(BlockRotationFreedom.XZ_XY.property, BlockRotation.of(-context.clickedFace))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun appendHoverText(
|
override fun appendHoverText(
|
||||||
@ -118,7 +116,7 @@ class StorageImporterBlock : RotatableMatteryBlock(), EntityBlock {
|
|||||||
|
|
||||||
class StorageExporterBlock : RotatableMatteryBlock(), EntityBlock {
|
class StorageExporterBlock : RotatableMatteryBlock(), EntityBlock {
|
||||||
override fun rotationFreedom(): BlockRotationFreedom {
|
override fun rotationFreedom(): BlockRotationFreedom {
|
||||||
return BlockRotationFreedom.TWO
|
return BlockRotationFreedom.XZ_XY
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun newBlockEntity(p_153215_: BlockPos, p_153216_: BlockState): BlockEntity {
|
override fun newBlockEntity(p_153215_: BlockPos, p_153216_: BlockState): BlockEntity {
|
||||||
@ -171,7 +169,7 @@ class StorageExporterBlock : RotatableMatteryBlock(), EntityBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
|
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
|
||||||
return super.getStateForPlacement(context)?.setValue(BlockRotationFreedom.TWO.property, BlockRotation.of(-context.clickedFace))
|
return super.getStateForPlacement(context)?.setValue(BlockRotationFreedom.XZ_XY.property, BlockRotation.of(-context.clickedFace))
|
||||||
}
|
}
|
||||||
|
|
||||||
private val shapes = getShapeForEachState {
|
private val shapes = getShapeForEachState {
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.storage
|
package ru.dbotthepony.mc.otm.block.storage
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.TooltipFlag
|
import net.minecraft.world.item.TooltipFlag
|
||||||
@ -20,7 +19,6 @@ import ru.dbotthepony.mc.otm.block.entity.storage.StoragePowerSupplierBlockEntit
|
|||||||
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
||||||
import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage
|
import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage
|
||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingOne
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.tech
|
package ru.dbotthepony.mc.otm.block.tech
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
|
||||||
import net.minecraft.world.level.BlockGetter
|
import net.minecraft.world.level.BlockGetter
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraft.world.level.block.EntityBlock
|
import net.minecraft.world.level.block.EntityBlock
|
||||||
@ -17,7 +16,6 @@ import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
|||||||
import ru.dbotthepony.mc.otm.block.entity.tech.EnergyServoBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.tech.EnergyServoBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingOne
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
|
|
||||||
|
@ -26,8 +26,8 @@ import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
|||||||
import ru.dbotthepony.mc.otm.block.entity.tech.GravitationStabilizerBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.tech.GravitationStabilizerBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlackHoleBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlackHoleBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
||||||
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingTwo
|
|
||||||
import ru.dbotthepony.mc.otm.core.math.plus
|
import ru.dbotthepony.mc.otm.core.math.plus
|
||||||
import ru.dbotthepony.mc.otm.core.math.times
|
import ru.dbotthepony.mc.otm.core.math.times
|
||||||
import ru.dbotthepony.mc.otm.oncePre
|
import ru.dbotthepony.mc.otm.oncePre
|
||||||
@ -55,7 +55,7 @@ class BlockGravitationStabilizer : RotatableMatteryBlock(props), EntityBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun rotationFreedom(): BlockRotationFreedom {
|
override fun rotationFreedom(): BlockRotationFreedom {
|
||||||
return BlockRotationFreedom.TWO
|
return BlockRotationFreedom.XZ_XY
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createBlockStateDefinition(builder: StateDefinition.Builder<Block, BlockState>) {
|
override fun createBlockStateDefinition(builder: StateDefinition.Builder<Block, BlockState>) {
|
||||||
@ -68,7 +68,7 @@ class BlockGravitationStabilizer : RotatableMatteryBlock(props), EntityBlock {
|
|||||||
val blockPos = context.clickedPos
|
val blockPos = context.clickedPos
|
||||||
val level = context.level
|
val level = context.level
|
||||||
|
|
||||||
for (face in BlockRotationFreedom.TWO.possibleValues) {
|
for (face in BlockRotationFreedom.XZ_XY.possibleValues) {
|
||||||
val dir = face.normal
|
val dir = face.normal
|
||||||
|
|
||||||
for (i in 1 ..GravitationStabilizerBlockEntity.RANGE) {
|
for (i in 1 ..GravitationStabilizerBlockEntity.RANGE) {
|
||||||
@ -78,14 +78,14 @@ class BlockGravitationStabilizer : RotatableMatteryBlock(props), EntityBlock {
|
|||||||
|
|
||||||
if (!getState.isAir) {
|
if (!getState.isAir) {
|
||||||
if (chunk.getBlockEntity(pos) is BlackHoleBlockEntity) {
|
if (chunk.getBlockEntity(pos) is BlackHoleBlockEntity) {
|
||||||
state = state.setValue(BlockRotationFreedom.TWO.property, face)
|
state = state.setValue(BlockRotationFreedom.XZ_XY.property, face)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val bbPos = blockPos + state.getValue(BlockRotationFreedom.TWO.property).normal
|
val bbPos = blockPos + state.getValue(BlockRotationFreedom.XZ_XY.property).normal
|
||||||
if (!context.level.isInWorldBounds(bbPos)) return null
|
if (!context.level.isInWorldBounds(bbPos)) return null
|
||||||
|
|
||||||
if (!level.getBlockState(bbPos).canBeReplaced(context)) return null
|
if (!level.getBlockState(bbPos).canBeReplaced(context)) return null
|
||||||
@ -103,9 +103,9 @@ class BlockGravitationStabilizer : RotatableMatteryBlock(props), EntityBlock {
|
|||||||
super.setPlacedBy(level, blockPos, blockState, entity, itemStack)
|
super.setPlacedBy(level, blockPos, blockState, entity, itemStack)
|
||||||
|
|
||||||
if (!level.isClientSide) {
|
if (!level.isClientSide) {
|
||||||
val bbPos = blockPos + blockState.getValue(BlockRotationFreedom.TWO.property).normal
|
val bbPos = blockPos + blockState.getValue(BlockRotationFreedom.XZ_XY.property).normal
|
||||||
val newState = MBlocks.GRAVITATION_STABILIZER_LENS.defaultBlockState()
|
val newState = MBlocks.GRAVITATION_STABILIZER_LENS.defaultBlockState()
|
||||||
.setValue(BlockRotationFreedom.TWO.property, blockState.getValue(BlockRotationFreedom.TWO.property))
|
.setValue(BlockRotationFreedom.XZ_XY.property, blockState.getValue(BlockRotationFreedom.XZ_XY.property))
|
||||||
|
|
||||||
level.setBlock(bbPos, newState, UPDATE_ALL)
|
level.setBlock(bbPos, newState, UPDATE_ALL)
|
||||||
}
|
}
|
||||||
@ -137,7 +137,7 @@ class BlockGravitationStabilizer : RotatableMatteryBlock(props), EntityBlock {
|
|||||||
p_60557_: BlockPos,
|
p_60557_: BlockPos,
|
||||||
p_60558_: CollisionContext
|
p_60558_: CollisionContext
|
||||||
): VoxelShape {
|
): VoxelShape {
|
||||||
return SHAPES[p_60555_.facingTwo.ordinal]
|
return SHAPES[p_60555_[BlockRotationFreedom.XZ_XY].ordinal]
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@ -155,14 +155,14 @@ class BlockGravitationStabilizer : RotatableMatteryBlock(props), EntityBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getBoundingBlockPos(blockState: BlockState, blockPos: BlockPos): BlockPos {
|
fun getBoundingBlockPos(blockState: BlockState, blockPos: BlockPos): BlockPos {
|
||||||
return blockPos + blockState.getValue(BlockRotationFreedom.TWO.property).normal
|
return blockPos + blockState.getValue(BlockRotationFreedom.XZ_XY.property).normal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class BlockGravitationStabilizerLens : RotatableMatteryBlock(props) {
|
class BlockGravitationStabilizerLens : RotatableMatteryBlock(props) {
|
||||||
override fun rotationFreedom(): BlockRotationFreedom {
|
override fun rotationFreedom(): BlockRotationFreedom {
|
||||||
return BlockRotationFreedom.TWO
|
return BlockRotationFreedom.XZ_XY
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createBlockStateDefinition(builder: StateDefinition.Builder<Block, BlockState>) {
|
override fun createBlockStateDefinition(builder: StateDefinition.Builder<Block, BlockState>) {
|
||||||
@ -196,7 +196,7 @@ class BlockGravitationStabilizerLens : RotatableMatteryBlock(props) {
|
|||||||
p_60557_: BlockPos,
|
p_60557_: BlockPos,
|
||||||
p_60558_: CollisionContext
|
p_60558_: CollisionContext
|
||||||
): VoxelShape {
|
): VoxelShape {
|
||||||
return SHAPES[p_60555_.facingTwo.ordinal]
|
return SHAPES[p_60555_[BlockRotationFreedom.XZ_XY].front.ordinal]
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@ -205,7 +205,7 @@ class BlockGravitationStabilizerLens : RotatableMatteryBlock(props) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getBoundingBlockPos(blockState: BlockState, blockPos: BlockPos): BlockPos {
|
fun getBoundingBlockPos(blockState: BlockState, blockPos: BlockPos): BlockPos {
|
||||||
return blockPos + blockState.getValue(BlockRotationFreedom.TWO.property).front.opposite.normal
|
return blockPos + blockState.getValue(BlockRotationFreedom.XZ_XY.property).front.opposite.normal
|
||||||
}
|
}
|
||||||
|
|
||||||
private val SHAPES = arrayOf(
|
private val SHAPES = arrayOf(
|
||||||
|
@ -24,15 +24,12 @@ import net.minecraft.world.level.material.MapColor
|
|||||||
import net.minecraft.world.phys.AABB
|
import net.minecraft.world.phys.AABB
|
||||||
import net.minecraft.world.phys.shapes.CollisionContext
|
import net.minecraft.world.phys.shapes.CollisionContext
|
||||||
import net.minecraft.world.phys.shapes.VoxelShape
|
import net.minecraft.world.phys.shapes.VoxelShape
|
||||||
import net.minecraftforge.common.ForgeHooks
|
|
||||||
import net.minecraftforge.event.ForgeEventFactory
|
import net.minecraftforge.event.ForgeEventFactory
|
||||||
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
||||||
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingOne
|
|
||||||
import ru.dbotthepony.mc.otm.core.math.minus
|
import ru.dbotthepony.mc.otm.core.math.minus
|
||||||
import ru.dbotthepony.mc.otm.core.math.plus
|
import ru.dbotthepony.mc.otm.core.math.plus
|
||||||
import ru.dbotthepony.mc.otm.core.math.rotationOne
|
|
||||||
import ru.dbotthepony.mc.otm.once
|
import ru.dbotthepony.mc.otm.once
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlocks
|
import ru.dbotthepony.mc.otm.registry.MBlocks
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.tech
|
package ru.dbotthepony.mc.otm.block.tech
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.TooltipFlag
|
import net.minecraft.world.item.TooltipFlag
|
||||||
@ -22,8 +21,6 @@ import ru.dbotthepony.mc.otm.block.entity.tech.PlatePressBlockEntity
|
|||||||
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
||||||
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
import ru.dbotthepony.mc.otm.block.getShapeForEachState
|
||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingOne
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
|
|
||||||
class PlatePressBlock(properties: Properties = DEFAULT_PROPERTIES, val isTwin: Boolean = false) : RotatableMatteryBlock(properties), EntityBlock {
|
class PlatePressBlock(properties: Properties = DEFAULT_PROPERTIES, val isTwin: Boolean = false) : RotatableMatteryBlock(properties), EntityBlock {
|
||||||
|
@ -23,7 +23,6 @@ import ru.dbotthepony.mc.otm.core.immutableList
|
|||||||
import ru.dbotthepony.mc.otm.core.get
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
||||||
import ru.dbotthepony.mc.otm.core.math.RGBAColor
|
import ru.dbotthepony.mc.otm.core.math.RGBAColor
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingOne
|
|
||||||
import ru.dbotthepony.mc.otm.core.math.rotate
|
import ru.dbotthepony.mc.otm.core.math.rotate
|
||||||
import ru.dbotthepony.mc.otm.core.math.rotateY
|
import ru.dbotthepony.mc.otm.core.math.rotateY
|
||||||
import ru.dbotthepony.mc.otm.nanoTime
|
import ru.dbotthepony.mc.otm.nanoTime
|
||||||
@ -50,7 +49,7 @@ abstract class BankRenderer<T : MatteryDeviceBlockEntity>(private val context: B
|
|||||||
|
|
||||||
stack.pushPose()
|
stack.pushPose()
|
||||||
stack.translate(0.5f, 0.5f, 0.5f)
|
stack.translate(0.5f, 0.5f, 0.5f)
|
||||||
stack.rotate(blockEntity.blockState[BlockRotationFreedom.ONE.property].front)
|
stack.rotate(blockEntity.blockState[BlockRotationFreedom.XZ.property].front)
|
||||||
stack.translate(-0.5f, -0.5f, -0.5f)
|
stack.translate(-0.5f, -0.5f, -0.5f)
|
||||||
|
|
||||||
for ((i, model) in models.withIndex()) {
|
for ((i, model) in models.withIndex()) {
|
||||||
@ -74,7 +73,7 @@ abstract class BankRenderer<T : MatteryDeviceBlockEntity>(private val context: B
|
|||||||
|
|
||||||
stack.pushPose()
|
stack.pushPose()
|
||||||
|
|
||||||
val facing = blockEntity.blockState.facingOne
|
val facing = blockEntity.blockState[BlockRotationFreedom.XZ].front
|
||||||
val rotateFacing = facing == Direction.NORTH || facing == Direction.SOUTH
|
val rotateFacing = facing == Direction.NORTH || facing == Direction.SOUTH
|
||||||
|
|
||||||
if (rotateFacing) {
|
if (rotateFacing) {
|
||||||
|
@ -19,6 +19,7 @@ import ru.dbotthepony.mc.otm.client.ShiftPressedCond
|
|||||||
import ru.dbotthepony.mc.otm.client.minecraft
|
import ru.dbotthepony.mc.otm.client.minecraft
|
||||||
import ru.dbotthepony.mc.otm.client.render.*
|
import ru.dbotthepony.mc.otm.client.render.*
|
||||||
import ru.dbotthepony.mc.otm.core.*
|
import ru.dbotthepony.mc.otm.core.*
|
||||||
|
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
||||||
import ru.dbotthepony.mc.otm.core.math.RGBAColor
|
import ru.dbotthepony.mc.otm.core.math.RGBAColor
|
||||||
import ru.dbotthepony.mc.otm.core.math.VECTOR_DOWN
|
import ru.dbotthepony.mc.otm.core.math.VECTOR_DOWN
|
||||||
import ru.dbotthepony.mc.otm.core.math.VECTOR_FORWARD
|
import ru.dbotthepony.mc.otm.core.math.VECTOR_FORWARD
|
||||||
@ -26,14 +27,12 @@ import ru.dbotthepony.mc.otm.core.math.VECTOR_RIGHT
|
|||||||
import ru.dbotthepony.mc.otm.core.math.VECTOR_UP
|
import ru.dbotthepony.mc.otm.core.math.VECTOR_UP
|
||||||
import ru.dbotthepony.mc.otm.core.math.Vector
|
import ru.dbotthepony.mc.otm.core.math.Vector
|
||||||
import ru.dbotthepony.mc.otm.core.math.asAngle
|
import ru.dbotthepony.mc.otm.core.math.asAngle
|
||||||
import ru.dbotthepony.mc.otm.core.math.facingTwo
|
|
||||||
import ru.dbotthepony.mc.otm.core.math.plus
|
import ru.dbotthepony.mc.otm.core.math.plus
|
||||||
import ru.dbotthepony.mc.otm.core.math.rotateAroundAxis
|
import ru.dbotthepony.mc.otm.core.math.rotateAroundAxis
|
||||||
import ru.dbotthepony.mc.otm.core.math.times
|
import ru.dbotthepony.mc.otm.core.math.times
|
||||||
import ru.dbotthepony.mc.otm.core.util.formatMatter
|
import ru.dbotthepony.mc.otm.core.util.formatMatter
|
||||||
import kotlin.math.PI
|
import kotlin.math.PI
|
||||||
|
|
||||||
@Suppress("PrivatePropertyName")
|
|
||||||
class GravitationStabilizerRenderer(private val context: BlockEntityRendererProvider.Context) : BlockEntityRenderer<GravitationStabilizerBlockEntity> {
|
class GravitationStabilizerRenderer(private val context: BlockEntityRendererProvider.Context) : BlockEntityRenderer<GravitationStabilizerBlockEntity> {
|
||||||
override fun render(
|
override fun render(
|
||||||
tile: GravitationStabilizerBlockEntity,
|
tile: GravitationStabilizerBlockEntity,
|
||||||
@ -48,7 +47,7 @@ class GravitationStabilizerRenderer(private val context: BlockEntityRendererProv
|
|||||||
|
|
||||||
var len = 64.0
|
var len = 64.0
|
||||||
var lenI = 64
|
var lenI = 64
|
||||||
val normal = tile.blockState.facingTwo.normal
|
val normal = tile.blockState[BlockRotationFreedom.XZ_XY].normal
|
||||||
val level = tile.level
|
val level = tile.level
|
||||||
var bhTile: BlackHoleBlockEntity? = null
|
var bhTile: BlackHoleBlockEntity? = null
|
||||||
|
|
||||||
@ -69,7 +68,7 @@ class GravitationStabilizerRenderer(private val context: BlockEntityRendererProv
|
|||||||
poseStack.pushPose()
|
poseStack.pushPose()
|
||||||
poseStack.translate(0.5, 0.5, 0.5)
|
poseStack.translate(0.5, 0.5, 0.5)
|
||||||
|
|
||||||
val facing = tile.blockState.facingTwo
|
val facing = tile.blockState[BlockRotationFreedom.XZ_XY].front
|
||||||
|
|
||||||
val rotateZ: Double
|
val rotateZ: Double
|
||||||
val rotateY: Double
|
val rotateY: Double
|
||||||
|
@ -9,10 +9,10 @@ import ru.dbotthepony.mc.otm.client.font
|
|||||||
import ru.dbotthepony.mc.otm.client.render.DynamicBufferSource
|
import ru.dbotthepony.mc.otm.client.render.DynamicBufferSource
|
||||||
import ru.dbotthepony.mc.otm.client.render.RenderGravity
|
import ru.dbotthepony.mc.otm.client.render.RenderGravity
|
||||||
import ru.dbotthepony.mc.otm.client.render.draw
|
import ru.dbotthepony.mc.otm.client.render.draw
|
||||||
import ru.dbotthepony.mc.otm.core.TextComponent
|
import ru.dbotthepony.mc.otm.core.get
|
||||||
|
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
||||||
import ru.dbotthepony.mc.otm.core.math.RGBAColor
|
import ru.dbotthepony.mc.otm.core.math.RGBAColor
|
||||||
import ru.dbotthepony.mc.otm.core.math.rotateWithBlockFacing
|
import ru.dbotthepony.mc.otm.core.math.rotateWithBlockFacing
|
||||||
import ru.dbotthepony.mc.otm.core.math.rotationThree
|
|
||||||
|
|
||||||
class HoloSignRenderer(private val context: BlockEntityRendererProvider.Context) : BlockEntityRenderer<HoloSignBlockEntity> {
|
class HoloSignRenderer(private val context: BlockEntityRendererProvider.Context) : BlockEntityRenderer<HoloSignBlockEntity> {
|
||||||
override fun render(
|
override fun render(
|
||||||
@ -27,7 +27,7 @@ class HoloSignRenderer(private val context: BlockEntityRendererProvider.Context)
|
|||||||
return
|
return
|
||||||
|
|
||||||
poseStack.pushPose()
|
poseStack.pushPose()
|
||||||
poseStack.rotateWithBlockFacing(tile.blockState.rotationThree)
|
poseStack.rotateWithBlockFacing(tile.blockState[BlockRotationFreedom.XZ_XY_ZY])
|
||||||
poseStack.translate(0.5f, 0.5f, 0.5f)
|
poseStack.translate(0.5f, 0.5f, 0.5f)
|
||||||
poseStack.scale(0.01f, 0.01f, 0.01f)
|
poseStack.scale(0.01f, 0.01f, 0.01f)
|
||||||
|
|
||||||
|
@ -38,6 +38,8 @@ import net.minecraftforge.items.IItemHandler
|
|||||||
import net.minecraftforge.registries.ForgeRegistries
|
import net.minecraftforge.registries.ForgeRegistries
|
||||||
import net.minecraftforge.registries.ForgeRegistry
|
import net.minecraftforge.registries.ForgeRegistry
|
||||||
import net.minecraftforge.registries.IForgeRegistry
|
import net.minecraftforge.registries.IForgeRegistry
|
||||||
|
import ru.dbotthepony.mc.otm.core.math.BlockRotation
|
||||||
|
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
||||||
import ru.dbotthepony.mc.otm.core.math.Vector
|
import ru.dbotthepony.mc.otm.core.math.Vector
|
||||||
import ru.dbotthepony.mc.otm.core.util.readInt
|
import ru.dbotthepony.mc.otm.core.util.readInt
|
||||||
import ru.dbotthepony.mc.otm.core.util.readVarIntLE
|
import ru.dbotthepony.mc.otm.core.util.readVarIntLE
|
||||||
@ -204,6 +206,10 @@ operator fun <T : Comparable<T>> StateHolder<*, *>.get(property: Property<T>): T
|
|||||||
return getValue(property)
|
return getValue(property)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
operator fun StateHolder<*, *>.get(property: BlockRotationFreedom): BlockRotation {
|
||||||
|
return getValue(property.property)
|
||||||
|
}
|
||||||
|
|
||||||
operator fun <S : StateHolder<*, *>, T : Comparable<T>> S.set(property: Property<T>, value: T): S {
|
operator fun <S : StateHolder<*, *>, T : Comparable<T>> S.set(property: Property<T>, value: T): S {
|
||||||
setValue(property, value)
|
setValue(property, value)
|
||||||
return this
|
return this
|
||||||
|
@ -1,30 +1,20 @@
|
|||||||
package ru.dbotthepony.mc.otm.core.math
|
package ru.dbotthepony.mc.otm.core.math
|
||||||
|
|
||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.world.level.block.state.BlockState
|
|
||||||
import net.minecraft.world.level.block.state.properties.EnumProperty
|
import net.minecraft.world.level.block.state.properties.EnumProperty
|
||||||
import ru.dbotthepony.mc.otm.core.get
|
|
||||||
import java.util.EnumMap
|
import java.util.EnumMap
|
||||||
|
|
||||||
internal inline val BlockState.rotationOne: BlockRotation get() = this[BlockRotationFreedom.ONE.property]
|
|
||||||
internal inline val BlockState.rotationTwo: BlockRotation get() = this[BlockRotationFreedom.TWO.property]
|
|
||||||
internal inline val BlockState.rotationThree: BlockRotation get() = this[BlockRotationFreedom.THREE.property]
|
|
||||||
|
|
||||||
internal inline val BlockState.facingOne: Direction get() = this[BlockRotationFreedom.ONE.property].front
|
|
||||||
internal inline val BlockState.facingTwo: Direction get() = this[BlockRotationFreedom.TWO.property].front
|
|
||||||
internal inline val BlockState.facingThree: Direction get() = this[BlockRotationFreedom.THREE.property].front
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controls the rotational freedom of block in space, employing [property] and [of] to get valid value from set of possible values
|
* Controls the rotational freedom of block in space, employing [property] and [of] to get valid value from set of possible values
|
||||||
*/
|
*/
|
||||||
enum class BlockRotationFreedom(vararg values: BlockRotation) {
|
enum class BlockRotationFreedom(vararg values: BlockRotation) {
|
||||||
ONE(
|
XZ(
|
||||||
BlockRotation.NORTH,
|
BlockRotation.NORTH,
|
||||||
BlockRotation.SOUTH,
|
BlockRotation.SOUTH,
|
||||||
BlockRotation.WEST,
|
BlockRotation.WEST,
|
||||||
BlockRotation.EAST,
|
BlockRotation.EAST,
|
||||||
),
|
),
|
||||||
TWO(
|
XZ_XY(
|
||||||
BlockRotation.DOWN,
|
BlockRotation.DOWN,
|
||||||
BlockRotation.UP,
|
BlockRotation.UP,
|
||||||
BlockRotation.NORTH,
|
BlockRotation.NORTH,
|
||||||
@ -32,7 +22,7 @@ enum class BlockRotationFreedom(vararg values: BlockRotation) {
|
|||||||
BlockRotation.WEST,
|
BlockRotation.WEST,
|
||||||
BlockRotation.EAST,
|
BlockRotation.EAST,
|
||||||
),
|
),
|
||||||
THREE(
|
XZ_XY_ZY(
|
||||||
BlockRotation.DOWN,
|
BlockRotation.DOWN,
|
||||||
BlockRotation.UP,
|
BlockRotation.UP,
|
||||||
BlockRotation.NORTH,
|
BlockRotation.NORTH,
|
||||||
|
Loading…
Reference in New Issue
Block a user