Redstone cards

This commit is contained in:
2026-04-19 21:34:18 +02:00
parent 0416ddd4a5
commit f9e33f9f05
8 changed files with 61 additions and 0 deletions

View File

@@ -43,4 +43,7 @@ object Items {
val HDD0 = ITEMS.register("hdd0") { HardDisk0() }
val HDD1 = ITEMS.register("hdd1") { HardDisk1() }
val HDD2 = ITEMS.register("hdd2") { HardDisk2() }
val REDIO0 = ITEMS.register("redio0") { RedstoneCard0() }
val REDIO1 = ITEMS.register("redio1") { RedstoneCard1() }
}

View File

@@ -0,0 +1,41 @@
package org.neoflock.neocomputers.item
import net.minecraft.network.chat.Component
import net.minecraft.world.item.Item
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.TooltipFlag
import org.neoflock.neocomputers.gui.widget.ComponentRoles
import org.neoflock.neocomputers.network.Networking
// Note: We'll prob want to replace them with NN component configs later on
open class RedstoneCard(val tier: Int): Item(Properties()), ComponentItem {
override fun getComponentRoles(itemStack: ItemStack): Set<String> = setOf(ComponentRoles.CARD)
override fun getComponentTier(itemStack: ItemStack): Int = tier
override fun whenComponentPlaced(itemStack: ItemStack, newRole: String) {
ensureHasAddress(itemStack)
super.whenComponentPlaced(itemStack, newRole)
}
// TODO: Redstone Component
override fun toComponentNode(itemStack: ItemStack): Networking.Node? = null
override fun appendHoverText(
itemStack: ItemStack,
tooltipContext: TooltipContext,
list: MutableList<Component?>,
tooltipFlag: TooltipFlag
) {
if(tooltipFlag.isAdvanced) {
val addr = itemStack.get(DataComponents.ADDRESS)
val addrComp = if(addr == null) Component.translatable("neocomputers.noaddr") else Component.literal(addr)
// TODO: show redstone and whatnot
}
super.appendHoverText(itemStack, tooltipContext, list, tooltipFlag)
}
}
class RedstoneCard0: RedstoneCard(1)
class RedstoneCard1: RedstoneCard(2)

View File

@@ -48,6 +48,9 @@ object Tabs {
output.accept(ItemStack(Items.WLAN0.get()))
output.accept(ItemStack(Items.WLAN1.get()))
output.accept(ItemStack(Items.REDIO0.get()))
output.accept(ItemStack(Items.REDIO1.get()))
output.accept(ItemStack(Items.EE0.get()))
val luaBios = ItemStack(Items.EE0.get())