|
|
@ -10,6 +10,7 @@ import net.brokenmoon.redcontrol.item.FloppyDisk;
|
|
|
|
import net.fabricmc.api.ModInitializer;
|
|
|
|
import net.fabricmc.api.ModInitializer;
|
|
|
|
|
|
|
|
|
|
|
|
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
|
|
|
|
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
|
|
|
|
|
|
|
|
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
|
|
|
|
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
|
|
|
|
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
|
|
|
|
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
|
|
|
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
|
|
|
import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder;
|
|
|
|
import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder;
|
|
|
@ -19,11 +20,15 @@ import net.minecraft.block.entity.BlockEntity;
|
|
|
|
import net.minecraft.block.entity.BlockEntityType;
|
|
|
|
import net.minecraft.block.entity.BlockEntityType;
|
|
|
|
import net.minecraft.item.BlockItem;
|
|
|
|
import net.minecraft.item.BlockItem;
|
|
|
|
import net.minecraft.item.Item;
|
|
|
|
import net.minecraft.item.Item;
|
|
|
|
|
|
|
|
import net.minecraft.item.ItemGroup;
|
|
|
|
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
|
|
|
|
import net.minecraft.nbt.NbtCompound;
|
|
|
|
import net.minecraft.registry.Registry;
|
|
|
|
import net.minecraft.registry.Registry;
|
|
|
|
import net.minecraft.registry.Registries;
|
|
|
|
import net.minecraft.registry.Registries;
|
|
|
|
import net.minecraft.resource.Resource;
|
|
|
|
import net.minecraft.resource.Resource;
|
|
|
|
import net.minecraft.resource.ResourceManager;
|
|
|
|
import net.minecraft.resource.ResourceManager;
|
|
|
|
import net.minecraft.resource.ResourceType;
|
|
|
|
import net.minecraft.resource.ResourceType;
|
|
|
|
|
|
|
|
import net.minecraft.text.Text;
|
|
|
|
import net.minecraft.util.Identifier;
|
|
|
|
import net.minecraft.util.Identifier;
|
|
|
|
import net.minecraft.util.math.BlockPos;
|
|
|
|
import net.minecraft.util.math.BlockPos;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.Logger;
|
|
|
@ -47,14 +52,54 @@ public class RedControl implements ModInitializer {
|
|
|
|
|
|
|
|
|
|
|
|
//Items
|
|
|
|
//Items
|
|
|
|
public static final FloppyDisk FLOPPY_ITEM = new FloppyDisk(new FabricItemSettings().maxCount(1));
|
|
|
|
public static final FloppyDisk FLOPPY_ITEM = new FloppyDisk(new FabricItemSettings().maxCount(1));
|
|
|
|
|
|
|
|
public static final Item SQUEAKY_HAMMER = new Item(new FabricItemSettings());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Item Stacks
|
|
|
|
|
|
|
|
public static final ItemStack BASIC_DISK = new ItemStack(FLOPPY_ITEM);
|
|
|
|
|
|
|
|
public static final NbtCompound BASIC_NBT = new NbtCompound();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static final ItemStack SLIDESHOW_DISK = new ItemStack(FLOPPY_ITEM);
|
|
|
|
|
|
|
|
public static final NbtCompound SLIDESHOW_NBT = new NbtCompound();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Item group
|
|
|
|
|
|
|
|
public static final ItemGroup ITEM_GROUP = FabricItemGroup.builder()
|
|
|
|
|
|
|
|
.icon(() -> new ItemStack(CPU))
|
|
|
|
|
|
|
|
.displayName(Text.translatable("itemGroup.redControl.group"))
|
|
|
|
|
|
|
|
.entries(((displayContext, entries) -> {
|
|
|
|
|
|
|
|
//Peripherals
|
|
|
|
|
|
|
|
entries.add(CPU);
|
|
|
|
|
|
|
|
entries.add(TERMINAL);
|
|
|
|
|
|
|
|
entries.add(DRIVE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Tools
|
|
|
|
|
|
|
|
entries.add(SQUEAKY_HAMMER);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Disks
|
|
|
|
|
|
|
|
//Blank
|
|
|
|
|
|
|
|
entries.add(FLOPPY_ITEM);
|
|
|
|
|
|
|
|
//Basic
|
|
|
|
|
|
|
|
BASIC_NBT.putString("uri", "img://basic.img");
|
|
|
|
|
|
|
|
BASIC_NBT.putString("serial", "BASIC");
|
|
|
|
|
|
|
|
BASIC_NBT.putInt("CustomModelData", 1);
|
|
|
|
|
|
|
|
BASIC_DISK.setNbt(BASIC_NBT);
|
|
|
|
|
|
|
|
BASIC_DISK.setCustomName(Text.literal("Basic boot disk"));
|
|
|
|
|
|
|
|
entries.add(BASIC_DISK);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Slideshow
|
|
|
|
|
|
|
|
SLIDESHOW_NBT.putString("uri", "img://slideshow.img");
|
|
|
|
|
|
|
|
SLIDESHOW_NBT.putString("serial", "SLIDESHOW");
|
|
|
|
|
|
|
|
SLIDESHOW_NBT.putInt("CustomModelData", 2);
|
|
|
|
|
|
|
|
SLIDESHOW_DISK.setNbt(SLIDESHOW_NBT);
|
|
|
|
|
|
|
|
SLIDESHOW_DISK.setCustomName(Text.literal("Slideshow disk"));
|
|
|
|
|
|
|
|
entries.add(SLIDESHOW_DISK);
|
|
|
|
|
|
|
|
}))
|
|
|
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
|
|
//Block Entities
|
|
|
|
//Block Entities
|
|
|
|
public static final BlockEntityType<CpuEntity> CPU_BLOCK_ENTITY = Registry.register(Registries.BLOCK_ENTITY_TYPE, modloc("cpu_block_entity"), FabricBlockEntityTypeBuilder.create(CpuEntity::new, CPU).build());
|
|
|
|
public static final BlockEntityType<CpuEntity> CPU_BLOCK_ENTITY = Registry.register(Registries.BLOCK_ENTITY_TYPE, modloc("cpu_block_entity"), FabricBlockEntityTypeBuilder.create(CpuEntity::new, CPU).build());
|
|
|
|
public static final BlockEntityType<TerminalEntity> TERMINAL_BLOCK_ENTITY = Registry.register(Registries.BLOCK_ENTITY_TYPE, modloc("monitor_block_entity"), FabricBlockEntityTypeBuilder.create(TerminalEntity::new, TERMINAL).build());
|
|
|
|
public static final BlockEntityType<TerminalEntity> TERMINAL_BLOCK_ENTITY = Registry.register(Registries.BLOCK_ENTITY_TYPE, modloc("monitor_block_entity"), FabricBlockEntityTypeBuilder.create(TerminalEntity::new, TERMINAL).build());
|
|
|
|
public static final BlockEntityType<DriveEntity> DRIVE_BLOCK_ENTITY = Registry.register(Registries.BLOCK_ENTITY_TYPE, modloc("drive_block_entity"), FabricBlockEntityTypeBuilder.create(DriveEntity::new, DRIVE).build());
|
|
|
|
public static final BlockEntityType<DriveEntity> DRIVE_BLOCK_ENTITY = Registry.register(Registries.BLOCK_ENTITY_TYPE, modloc("drive_block_entity"), FabricBlockEntityTypeBuilder.create(DriveEntity::new, DRIVE).build());
|
|
|
|
|
|
|
|
|
|
|
|
public static final Item SQUEAKY_HAMMER = new Item(new FabricItemSettings());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onInitialize() {
|
|
|
|
public void onInitialize() {
|
|
|
|
// This code runs as soon as Minecraft is in a mod-load-ready state.
|
|
|
|
// This code runs as soon as Minecraft is in a mod-load-ready state.
|
|
|
@ -92,6 +137,7 @@ public class RedControl implements ModInitializer {
|
|
|
|
Registry.register(Registries.ITEM, modloc("disk_drive"), new BlockItem(DRIVE, new FabricItemSettings()));
|
|
|
|
Registry.register(Registries.ITEM, modloc("disk_drive"), new BlockItem(DRIVE, new FabricItemSettings()));
|
|
|
|
Registry.register(Registries.ITEM, modloc("squeaky_hammer"), SQUEAKY_HAMMER);
|
|
|
|
Registry.register(Registries.ITEM, modloc("squeaky_hammer"), SQUEAKY_HAMMER);
|
|
|
|
Registry.register(Registries.ITEM, modloc("floppy_disk"), FLOPPY_ITEM);
|
|
|
|
Registry.register(Registries.ITEM, modloc("floppy_disk"), FLOPPY_ITEM);
|
|
|
|
|
|
|
|
Registry.register(Registries.ITEM_GROUP, modloc("item_group"), ITEM_GROUP);
|
|
|
|
|
|
|
|
|
|
|
|
//Packets
|
|
|
|
//Packets
|
|
|
|
ServerPlayNetworking.registerGlobalReceiver(RedControlNetworking.CPU_START, ((server, player, handler, buf, responseSender) -> server.execute(() -> {
|
|
|
|
ServerPlayNetworking.registerGlobalReceiver(RedControlNetworking.CPU_START, ((server, player, handler, buf, responseSender) -> server.execute(() -> {
|
|
|
|