Use powered property for Redstone Controller instead of lit
This commit is contained in:
parent
e2fa31b680
commit
4fe6391e69
|
@ -26,10 +26,9 @@ class RedstoneControllerBlock: FaceDeviceBlock<RedstoneControllerBlockEntity>(
|
|||
|
||||
companion object {
|
||||
val ID = Identifier(PhysicalConnectivity.MODID, "redstone_controller")
|
||||
val LIT = Properties.LIT
|
||||
val POWERED = Properties.POWERED
|
||||
}
|
||||
|
||||
// todo: don't just copy this from the Interface block
|
||||
override val faceThickness = 3.0
|
||||
override val faceShapes = mapOf(
|
||||
Direction.DOWN to createCuboidShape(0.0, 0.0, 0.0, 16.0, 3.0, 16.0),
|
||||
|
@ -42,20 +41,20 @@ class RedstoneControllerBlock: FaceDeviceBlock<RedstoneControllerBlockEntity>(
|
|||
|
||||
override fun appendProperties(builder: StateManager.Builder<Block, BlockState>) {
|
||||
super.appendProperties(builder)
|
||||
builder.add(LIT)
|
||||
builder.add(POWERED)
|
||||
}
|
||||
|
||||
override fun createBlockEntity(world: BlockView) = RedstoneControllerBlockEntity()
|
||||
|
||||
override fun getPlacementState(context: ItemPlacementContext): BlockState {
|
||||
val state = super.getPlacementState(context)
|
||||
return state.with(LIT, isPowered(context.world, context.blockPos, state[FACING]))
|
||||
return state.with(POWERED, isPowered(context.world, context.blockPos, state[FACING]))
|
||||
}
|
||||
|
||||
override fun neighborUpdate(state: BlockState, world: World, pos: BlockPos, neighborBlock: Block, neighborPos: BlockPos, bl: Boolean) {
|
||||
// this can't be done in getStateForNeighborUpdate because getEmittedRedstonePower is defined in World not WorldAccess
|
||||
if (!world.isClient) {
|
||||
val wasLit = state[LIT]
|
||||
val wasLit = state[POWERED]
|
||||
val isLit = isPowered(world, pos, state[FACING])
|
||||
if (wasLit != isLit) {
|
||||
toggleLit(state, world, pos)
|
||||
|
@ -69,7 +68,7 @@ class RedstoneControllerBlock: FaceDeviceBlock<RedstoneControllerBlockEntity>(
|
|||
}
|
||||
|
||||
private fun toggleLit(state: BlockState, world: World, pos: BlockPos) {
|
||||
world.setBlockState(pos, state.cycle(LIT), 2)
|
||||
world.setBlockState(pos, state.cycle(POWERED), 2)
|
||||
getBlockEntity(world, pos)!!.redstoneStateChanged()
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ class RedstoneControllerBlockEntity: DeviceBlockEntity(PhyBlockEntities.REDSTONE
|
|||
|
||||
fun redstoneStateChanged() {
|
||||
val oldPowered = redstonePowered
|
||||
redstonePowered = cachedState[RedstoneControllerBlock.LIT]
|
||||
redstonePowered = cachedState[RedstoneControllerBlock.POWERED]
|
||||
|
||||
val mode: RemoteActivationPacket.Mode? = when (redstoneMode) {
|
||||
RedstoneMode.TOGGLE -> if (oldPowered != redstonePowered) RemoteActivationPacket.Mode.SINGLE else null
|
||||
|
|
|
@ -4,51 +4,51 @@
|
|||
"apply": { "model": "phycon:block/cable_center" }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "down", "lit": "false" },
|
||||
"when": { "facing": "down", "powered": "false" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_off" }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "up", "lit": "false" },
|
||||
"when": { "facing": "up", "powered": "false" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_off", "x": 180 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "north", "lit": "false" },
|
||||
"when": { "facing": "north", "powered": "false" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_off", "x": 270 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "south", "lit": "false" },
|
||||
"when": { "facing": "south", "powered": "false" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_off", "x": 90 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "west", "lit": "false" },
|
||||
"when": { "facing": "west", "powered": "false" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_off", "x": 90, "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "east", "lit": "false" },
|
||||
"when": { "facing": "east", "powered": "false" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_off", "x": 90, "y": 270 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "down", "lit": "true" },
|
||||
"when": { "facing": "down", "powered": "true" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_on" }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "up", "lit": "true" },
|
||||
"when": { "facing": "up", "powered": "true" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_on", "x": 180 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "north", "lit": "true" },
|
||||
"when": { "facing": "north", "powered": "true" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_on", "x": 270 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "south", "lit": "true" },
|
||||
"when": { "facing": "south", "powered": "true" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_on", "x": 90 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "west", "lit": "true" },
|
||||
"when": { "facing": "west", "powered": "true" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_on", "x": 90, "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "east", "lit": "true" },
|
||||
"when": { "facing": "east", "powered": "true" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_on", "x": 90, "y": 270 }
|
||||
},
|
||||
|
||||
|
|
Loading…
Reference in New Issue