This commit is contained in:
2025-06-22 09:55:01 +03:00
parent dd80dd5859
commit 0e57b3e1bb
11 changed files with 99 additions and 6 deletions

View File

@ -3,6 +3,7 @@ package io.p2vman.vmodextras.cc;
import io.p2vman.vmodextras.cc.block.BlockNetworkModem; import io.p2vman.vmodextras.cc.block.BlockNetworkModem;
import io.p2vman.vmodextras.cc.block.WireNetworkHubBlock; import io.p2vman.vmodextras.cc.block.WireNetworkHubBlock;
import io.p2vman.vmodextras.cc.block.entity.NetworkModemEntity; import io.p2vman.vmodextras.cc.block.entity.NetworkModemEntity;
import io.p2vman.vmodextras.util.HoverBlockItem;
import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.Rarity; import net.minecraft.world.item.Rarity;
@ -30,7 +31,7 @@ public class ComputerCraftCompact {
NETWORK_MODEM.block(() -> new BlockNetworkModem(BlockBehaviour.Properties.of().mapColor(MapColor.STONE))); NETWORK_MODEM.block(() -> new BlockNetworkModem(BlockBehaviour.Properties.of().mapColor(MapColor.STONE)));
NETWORK_MODEM.entity(() -> BlockEntityType.Builder.of(NetworkModemEntity::new, NETWORK_MODEM.getBlock().get()).build(null)); NETWORK_MODEM.entity(() -> BlockEntityType.Builder.of(NetworkModemEntity::new, NETWORK_MODEM.getBlock().get()).build(null));
NETWORK_MODEM.item(() -> new BlockItem(NETWORK_MODEM.getBlock().get(), new Item.Properties().rarity(Rarity.EPIC))); NETWORK_MODEM.item(() -> new HoverBlockItem(NETWORK_MODEM.getBlock().get(), new Item.Properties().rarity(Rarity.EPIC)));
Utils.executeIsModEnable("trackwork", () -> { Utils.executeIsModEnable("trackwork", () -> {
TRACK_WORK_CONTROLLER_BLOCK = REGISTRY.BLOCKS.register("track_work_controller", () -> new TrackWorkController(BlockBehaviour.Properties.of().mapColor(MapColor.STONE))); TRACK_WORK_CONTROLLER_BLOCK = REGISTRY.BLOCKS.register("track_work_controller", () -> new TrackWorkController(BlockBehaviour.Properties.of().mapColor(MapColor.STONE)));
@ -47,7 +48,7 @@ public class ComputerCraftCompact {
builder.push((registry) -> { builder.push((registry) -> {
Utils.executeIsModEnable("trackwork", () -> { Utils.executeIsModEnable("trackwork", () -> {
TRACK_WORK_CONTROLLER_ITEM = registry.register("track_work_controller", () -> new BlockItem(TRACK_WORK_CONTROLLER_BLOCK.get(), new Item.Properties().rarity(Rarity.EPIC))); TRACK_WORK_CONTROLLER_ITEM = registry.register("track_work_controller", () -> new HoverBlockItem(TRACK_WORK_CONTROLLER_BLOCK.get(), new Item.Properties().rarity(Rarity.EPIC)));
}); });
//Utils.executeIsModEnable("drivebywire", () -> { //Utils.executeIsModEnable("drivebywire", () -> {

View File

@ -1,5 +1,6 @@
package io.p2vman.vmodextras.trackwork; package io.p2vman.vmodextras.trackwork;
import io.p2vman.vmodextras.util.HoverBlockItem;
import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.Rarity; import net.minecraft.world.item.Rarity;
@ -37,9 +38,9 @@ public class TrackWorkCompact
COMPACT_BACKUP_BLOCK_ENTITY = REGISTRY.BLOCK_ENTITIES.register("compact_backup", () -> BlockEntityType.Builder.of(CompactBackupBlockEntity::new, COMPACT_BACKUP.get()).build(null)); COMPACT_BACKUP_BLOCK_ENTITY = REGISTRY.BLOCK_ENTITIES.register("compact_backup", () -> BlockEntityType.Builder.of(CompactBackupBlockEntity::new, COMPACT_BACKUP.get()).build(null));
builder.push((registry) -> { builder.push((registry) -> {
MY_BLOCK_ITEM = registry.register("track_backup", () -> new BlockItem(TRAK_BUK.get(), new Item.Properties().rarity(Rarity.EPIC))); MY_BLOCK_ITEM = registry.register("track_backup", () -> new HoverBlockItem(TRAK_BUK.get(), new Item.Properties().rarity(Rarity.EPIC)));
SHIP_VOID_ITEM = registry.register("ship_void", () -> new BlockItem(SHIP_VOID_BLOCK.get(), new Item.Properties())); SHIP_VOID_ITEM = registry.register("ship_void", () -> new HoverBlockItem(SHIP_VOID_BLOCK.get(), new Item.Properties()));
COMPACT_BACKUP_ITEM = registry.register("compact_backup", () -> new BlockItem(COMPACT_BACKUP.get(), new Item.Properties().rarity(Rarity.EPIC))); COMPACT_BACKUP_ITEM = registry.register("compact_backup", () -> new HoverBlockItem(COMPACT_BACKUP.get(), new Item.Properties().rarity(Rarity.EPIC)));
}); });
} }
} }

View File

@ -0,0 +1,47 @@
package io.p2vman.vmodextras.util;
import net.minecraft.ChatFormatting;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.jetbrains.annotations.Nullable;
import java.util.List;
public class HoverBlockItem extends BlockItem {
@OnlyIn(Dist.CLIENT)
private Hover hover = null;
public HoverBlockItem(String id, Block block, Properties properties) {
super(block, properties);
}
public HoverBlockItem(Block block, Properties properties) {
super(block, properties);
}
@Override
@OnlyIn(Dist.CLIENT)
public void appendHoverText(ItemStack p_41421_, @Nullable Level p_41422_, List<Component> tooltip, TooltipFlag p_41424_) {
if (hover != null) {
if (Screen.hasShiftDown()) {
tooltip.addAll(hover.detail);
} else {
tooltip.addAll(hover.tooltip);
tooltip.add(Component.translatable("tooltip.vmodextras.hint").withStyle(ChatFormatting.YELLOW));
}
} else {
tooltip.add(Component.literal("Missing tooltip data").withStyle(ChatFormatting.RED));
}
}
public record Hover(List<Component> detail, List<Component> tooltip) {
}
}

View File

@ -0,0 +1,16 @@
{
"variants": {
"facing=down,on=false": {"model": "vmodextras:block/network_modem_off", "x": 90, "y": 0},
"facing=down,on=true": {"model": "vmodextras:block/network_modem_on", "x": 90, "y": 0},
"facing=east,on=false": {"model": "vmodextras:block/network_modem_off", "x": 0, "y": 90},
"facing=east,on=true": {"model": "vmodextras:block/network_modem_on", "x": 0, "y": 90},
"facing=north,on=false": {"model": "vmodextras:block/network_modem_off", "x": 0, "y": 0},
"facing=north,on=true": {"model": "vmodextras:block/network_modem_on", "x": 0, "y": 0},
"facing=south,on=false": {"model": "vmodextras:block/network_modem_off", "x": 0, "y": 180},
"facing=south,on=true": {"model": "vmodextras:block/network_modem_on", "x": 0, "y": 180},
"facing=up,on=false": {"model": "vmodextras:block/network_modem_off", "x": 270, "y": 0},
"facing=up,on=true": {"model": "vmodextras:block/network_modem_on", "x": 270, "y": 0},
"facing=west,on=false": {"model": "vmodextras:block/network_modem_off", "x": 0, "y": 270},
"facing=west,on=true": {"model": "vmodextras:block/network_modem_on", "x": 0, "y": 270}
}
}

View File

@ -1,4 +1,8 @@
{ {
"block.vmodextras.track_backup": "Track Backup", "block.vmodextras.track_backup": "Track Backup",
"block.vmodextras.ship_void": "Ship Void" "block.vmodextras.ship_void": "Ship Void",
"block.vmodextras.track_work_controller": "Track Work Controler",
"block.vmodextras.network_modem": "Network Modem",
"block.vmodextras.compact_backup": "Compact Backup",
"tooltip.vmodextras.hint": "Hold SHIFT for more information"
} }

View File

@ -0,0 +1,7 @@
{
"parent": "computercraft:block/modem",
"textures": {
"back": "computercraft:block/modem_back",
"front": "vmodextras:block/network_modem_face"
}
}

View File

@ -0,0 +1,7 @@
{
"parent": "computercraft:block/modem",
"textures": {
"back": "computercraft:block/modem_back",
"front": "vmodextras:block/network_modem_face_on"
}
}

View File

@ -0,0 +1 @@
{"parent": "vmodextras:block/network_modem_off"}

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

View File

@ -0,0 +1,9 @@
{
"tooltip": [
{ "text": "This block looks old.", "color": "gray" }
],
"detail": [
{ "text": "Crafted by ancient builders.", "italic": true, "color": "dark_gray" },
{ "text": "Can be used to summon bosses!", "bold": true, "color": "red" }
]
}