From f9e33f9f05001b18d16dbd000e389b7df4f78c02 Mon Sep 17 00:00:00 2001 From: IonutParau Date: Sun, 19 Apr 2026 21:34:18 +0200 Subject: [PATCH] Redstone cards --- .../org/neoflock/neocomputers/item/Items.kt | 3 ++ .../neocomputers/item/RedstoneCard.kt | 41 ++++++++++++++++++ .../org/neoflock/neocomputers/item/Tabs.kt | 3 ++ .../assets/neocomputers/lang/en_us.json | 2 + .../neocomputers/models/item/redio0.json | 6 +++ .../neocomputers/models/item/redio1.json | 6 +++ .../neocomputers/textures/item/redio0.png | Bin 0 -> 394 bytes .../neocomputers/textures/item/redio1.png | Bin 0 -> 417 bytes 8 files changed, 61 insertions(+) create mode 100644 src/main/kotlin/org/neoflock/neocomputers/item/RedstoneCard.kt create mode 100644 src/main/resources/assets/neocomputers/models/item/redio0.json create mode 100644 src/main/resources/assets/neocomputers/models/item/redio1.json create mode 100644 src/main/resources/assets/neocomputers/textures/item/redio0.png create mode 100644 src/main/resources/assets/neocomputers/textures/item/redio1.png diff --git a/src/main/kotlin/org/neoflock/neocomputers/item/Items.kt b/src/main/kotlin/org/neoflock/neocomputers/item/Items.kt index dd86b1d..a3ca2e4 100644 --- a/src/main/kotlin/org/neoflock/neocomputers/item/Items.kt +++ b/src/main/kotlin/org/neoflock/neocomputers/item/Items.kt @@ -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() } } \ No newline at end of file diff --git a/src/main/kotlin/org/neoflock/neocomputers/item/RedstoneCard.kt b/src/main/kotlin/org/neoflock/neocomputers/item/RedstoneCard.kt new file mode 100644 index 0000000..14bee92 --- /dev/null +++ b/src/main/kotlin/org/neoflock/neocomputers/item/RedstoneCard.kt @@ -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 = 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, + 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) \ No newline at end of file diff --git a/src/main/kotlin/org/neoflock/neocomputers/item/Tabs.kt b/src/main/kotlin/org/neoflock/neocomputers/item/Tabs.kt index 529612c..d777947 100644 --- a/src/main/kotlin/org/neoflock/neocomputers/item/Tabs.kt +++ b/src/main/kotlin/org/neoflock/neocomputers/item/Tabs.kt @@ -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()) diff --git a/src/main/resources/assets/neocomputers/lang/en_us.json b/src/main/resources/assets/neocomputers/lang/en_us.json index b32d23a..1c17040 100644 --- a/src/main/resources/assets/neocomputers/lang/en_us.json +++ b/src/main/resources/assets/neocomputers/lang/en_us.json @@ -3,6 +3,8 @@ "neocomputers.cancel": "Cancel", "block.neocomputers.combustgen": "Combustion Generator", "block.neocomputers.redio": "Redstone I/O", + "item.neocomputers.redio0": "Redstone Card (Tier 1)", + "item.neocomputers.redio1": "Redstone Card (Tier 2)", "block.neocomputers.solargen": "Solar Generator", "block.neocomputers.screen": "Screen (Untiered)", "block.neocomputers.capacitor": "Small Capacitor", diff --git a/src/main/resources/assets/neocomputers/models/item/redio0.json b/src/main/resources/assets/neocomputers/models/item/redio0.json new file mode 100644 index 0000000..79a980d --- /dev/null +++ b/src/main/resources/assets/neocomputers/models/item/redio0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "neocomputers:item/redio0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/neocomputers/models/item/redio1.json b/src/main/resources/assets/neocomputers/models/item/redio1.json new file mode 100644 index 0000000..78dca9b --- /dev/null +++ b/src/main/resources/assets/neocomputers/models/item/redio1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "neocomputers:item/redio1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/neocomputers/textures/item/redio0.png b/src/main/resources/assets/neocomputers/textures/item/redio0.png new file mode 100644 index 0000000000000000000000000000000000000000..922988e04f52e67d682dedb9945571f9d2e9bd26 GIT binary patch literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8mH?j+*ZcSH1DV14`mXBgckbK~6cw!S@DLIbl2Mis5E0-N z;Puhg?hOsSdbQ-njT>9Gqyz*6T)leLOH;Ga*O!fp%|=8-%RsBe-=CYGTSHGnOh!yp zN|c?4-AYk$*RH$?;o%oAW*C?oIC?uOYbYBT8O@B1HM295SCi)x;`0pj42TT)|Ns94 zF7c^AN9dFU`2_>H!~%xn*EoBC`cgby978H@^_(~7JD?!o64+G8@_bJ5t>5?0^PUhA z-Cr{+O&~*&*})@T!r}g|yq#;_FJ2%KWF#9};I+X(P34~Ktv?5LHXGhmX{oGbEla!X u$Jp?``rg?YEi4Hl6B{zj{x15;X~5uNuUw?B$i@P+kHOQ`&t;ucLK6U>37mTX literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/neocomputers/textures/item/redio1.png b/src/main/resources/assets/neocomputers/textures/item/redio1.png new file mode 100644 index 0000000000000000000000000000000000000000..3619213c9cadb346c600774bad6240fdf7702ef7 GIT binary patch literal 417 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8t^l79S0H`={(T`Kp)FfdeVH|`uburVpfWZ6T-v!g!lpi0z{=mwG6bb zUcLJN|Nq`@EN&LXq;st3fru?T^c2@Nh&=Gm z`OWTHdwBYRnOSiOQ{=@|{G85)G9=0T{&&W5e}X%Y%`3&y7pL`u+8LM`zB4J^mO3Qj Q544`a)78&qol`;+0OGx@&j0`b literal 0 HcmV?d00001