energy servo collision/shapes (#103)

This commit is contained in:
YuRaNnNzZZ 2022-10-01 04:36:39 +03:00
parent 3bfb247b2c
commit 69eb1b1865
Signed by: YuRaNnNzZZ
GPG Key ID: 5F71738C85A6006D
2 changed files with 59 additions and 0 deletions

View File

@ -541,4 +541,32 @@ public class BlockShapes {
new SimpleCuboid(0.875d, 1.25d, 0.3125d, 1d, 2d, 0.6875d),
new SimpleCuboid(0d, 1.25d, 0.3125d, 0.125d, 2d, 0.6875d)
);
public static final BlockShape ENERGY_SERVO = new BlockShape(
new SimpleCuboid(0d, 0d, 0d, 1d, 0.625d, 0.6875d),
new SimpleCuboid(0.25d, 0.625d, 0d, 0.75d, 1d, 0.4375d),
new SimpleCuboid(0d, 0.625d, 0.4375d, 1d, 1d, 1d),
new SimpleCuboid(0.3125d, 0.125d, 0.6875d, 0.6875d, 0.625d, 1d),
new SimpleCuboid(0d, 0d, 0.6875d, 1d, 0.125d, 1d),
new SimpleCuboid(0.0625d, 0.125d, 0.6875d, 0.3125d, 0.1875d, 0.9375d),
new SimpleCuboid(0.0625d, 0.25d, 0.6875d, 0.3125d, 0.3125d, 0.9375d),
new SimpleCuboid(0.0625d, 0.375d, 0.6875d, 0.3125d, 0.4375d, 0.9375d),
new SimpleCuboid(0.0625d, 0.5d, 0.6875d, 0.3125d, 0.5625d, 0.9375d),
new SimpleCuboid(0.6875d, 0.125d, 0.6875d, 0.9375d, 0.1875d, 0.9375d),
new SimpleCuboid(0.6875d, 0.25d, 0.6875d, 0.9375d, 0.3125d, 0.9375d),
new SimpleCuboid(0.6875d, 0.375d, 0.6875d, 0.9375d, 0.4375d, 0.9375d),
new SimpleCuboid(0.6875d, 0.5d, 0.6875d, 0.9375d, 0.5625d, 0.9375d),
new SimpleCuboid(0.125d, 0.125d, 0.75d, 0.25d, 0.625d, 0.875d),
new SimpleCuboid(0.75d, 0.125d, 0.75d, 0.875d, 0.625d, 0.875d),
new SimpleCuboid(0d, 0.625d, 0d, 0.0625d, 1d, 0.0625d),
new SimpleCuboid(0.9375d, 0.625d, 0d, 1d, 1d, 0.0625d),
new SimpleCuboid(0.95d, 0.6875d, 0.0625d, 0.98125d, 0.75d, 0.4375d),
new SimpleCuboid(0.95d, 0.875d, 0.0625d, 0.98125d, 0.9375d, 0.4375d),
new SimpleCuboid(0.01875d, 0.875d, 0.0625d, 0.05d, 0.9375d, 0.4375d),
new SimpleCuboid(0.01875d, 0.6875d, 0.0625d, 0.05d, 0.75d, 0.4375d),
new SimpleCuboid(0.09375d, 0.625d, 0.0625d, 0.28125d, 0.875d, 0.4375d),
new SimpleCuboid(0.71875d, 0.625d, 0.0625d, 0.90625d, 0.875d, 0.4375d),
new SimpleCuboid(0.03125d, 0.125d, 0.65625d, 0.34375d, 0.625d, 0.96875d),
new SimpleCuboid(0.65625d, 0.125d, 0.65625d, 0.96875d, 0.625d, 0.96875d)
);
}

View File

@ -1,6 +1,8 @@
package ru.dbotthepony.mc.otm.block
import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Level
import net.minecraft.world.level.block.EntityBlock
import net.minecraft.world.level.block.entity.BlockEntity
@ -9,8 +11,11 @@ import net.minecraft.world.level.block.entity.BlockEntityType
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.level.material.Material
import net.minecraft.world.level.material.MaterialColor
import net.minecraft.world.phys.shapes.CollisionContext
import net.minecraft.world.phys.shapes.VoxelShape
import ru.dbotthepony.mc.otm.block.entity.EnergyServoBlockEntity
import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.shapes.BlockShapes
class EnergyServoBlock : RotatableMatteryBlock(Properties.of(Material.METAL, MaterialColor.COLOR_BLUE).explosionResistance(12f).destroyTime(2f)), EntityBlock {
override fun newBlockEntity(p_153215_: BlockPos, p_153216_: BlockState): BlockEntity {
@ -28,4 +33,30 @@ class EnergyServoBlock : RotatableMatteryBlock(Properties.of(Material.METAL, Mat
return null
}
override fun getShape(
p_60555_: BlockState,
p_60556_: BlockGetter,
p_60557_: BlockPos,
p_60558_: CollisionContext
): VoxelShape {
return SHAPES[p_60555_.getValue(FACING).ordinal]
}
companion object {
private val SHAPES: Array<VoxelShape>
init {
val def = BlockShapes.ENERGY_SERVO.computeShape()
SHAPES = arrayOf(
def,
def,
def,
BlockShapes.ENERGY_SERVO.rotate(Direction.NORTH).computeShape(),
BlockShapes.ENERGY_SERVO.rotate(Direction.WEST).computeShape(),
BlockShapes.ENERGY_SERVO.rotate(Direction.EAST).computeShape()
)
}
}
}