Compare commits

..

2 Commits

Author SHA1 Message Date
8fb4921e30 cases can do stuff now 2026-04-28 21:35:58 +03:00
86b3486622 fixed the worst oversight of mankind 2026-04-28 21:34:18 +03:00
4 changed files with 14 additions and 4 deletions

View File

@@ -59,6 +59,8 @@ class CaseBlock() : DeviceBlock(Properties.of().sound(SoundType.METAL).lightLeve
return level.getBlockEntity(blockPos) as CaseBlockEntity return level.getBlockEntity(blockPos) as CaseBlockEntity
} }
override fun isSignalSource(state: BlockState): Boolean = true
override fun getSignal( override fun getSignal(
blockState: BlockState, blockState: BlockState,
blockGetter: BlockGetter, blockGetter: BlockGetter,

View File

@@ -67,7 +67,7 @@ class RelayEntity(blockPos: BlockPos, blockState: BlockState): SingleDeviceBlock
override fun received(message: Networking.Message) { override fun received(message: Networking.Message) {
super.received(message) super.received(message)
if(message.sender == this) return if(message.sender == this) return
if(message is Networking.ClassicPacket && message.hopCount <= 5 && queue.size < computeRelayCapacity()) { if(message is Networking.ClassicPacket && message.hopCount < 5 && queue.size < computeRelayCapacity()) {
queue.addLast(message) queue.addLast(message)
} }
} }
@@ -103,7 +103,7 @@ class RelayEntity(blockPos: BlockPos, blockState: BlockState): SingleDeviceBlock
if(connection is ConventionalNetworkDevice) { if(connection is ConventionalNetworkDevice) {
connection.sendClassicPacket(hopped) connection.sendClassicPacket(hopped)
} else { } else {
Networking.emitMessage(connection, hopped) Networking.emitMessage(connection, hopped, setOf(deviceNode))
} }
} }
} }

View File

@@ -106,6 +106,13 @@ class CaseBlockEntity(blockPos: BlockPos, blockState: BlockState): SingleDeviceB
} }
} }
} }
override fun received(message: Networking.Message) {
super.received(message)
if(message is Networking.ClassicPacket) {
NeoComputers.LOGGER.info("machine $address got $message")
}
}
} }
val redstoneIn = Array(Direction.entries.size) {0} val redstoneIn = Array(Direction.entries.size) {0}
@@ -170,6 +177,7 @@ class CaseBlockEntity(blockPos: BlockPos, blockState: BlockState): SingleDeviceB
} }
// Server-side stuff!! // Server-side stuff!!
sendMachineEvent(MachinePowerEvent(this, isOn)) sendMachineEvent(MachinePowerEvent(this, isOn))
Networking.emitMessage(deviceNode, Networking.ClassicPacket(deviceNode, deviceNode.address.toString(), "fuck you", 1, listOf(), 0))
} }
override fun start(): Boolean { override fun start(): Boolean {

View File

@@ -50,8 +50,8 @@ object Networking {
// node may differ from message.sender in the case of relays, // node may differ from message.sender in the case of relays,
// as they might have DIRECT reachability but // as they might have DIRECT reachability but
fun emitMessage(deviceNode: DeviceNode, message: Message) { fun emitMessage(deviceNode: DeviceNode, message: Message, exclude: Set<DeviceNode> = setOf()) {
deviceNode.getReachable().forEach { it.received(message) } deviceNode.getReachable().forEach { if(it !in exclude) it.received(message) }
} }
fun computeRangeAllowedByHardness(src: BlockPos, dst: BlockPos): Double { fun computeRangeAllowedByHardness(src: BlockPos, dst: BlockPos): Double {