diff --git a/src/main/java/dan200/computercraft/ComputerCraft.java b/src/main/java/dan200/computercraft/ComputerCraft.java index 194c72571..bc9718dfa 100644 --- a/src/main/java/dan200/computercraft/ComputerCraft.java +++ b/src/main/java/dan200/computercraft/ComputerCraft.java @@ -6,6 +6,8 @@ package dan200.computercraft; +import static dan200.computercraft.shared.Registry.*; + import java.util.Collections; import java.util.EnumSet; import java.util.List; @@ -19,7 +21,6 @@ import dan200.computercraft.core.apis.http.options.Action; import dan200.computercraft.core.apis.http.options.AddressRule; import dan200.computercraft.core.asm.GenericSource; import dan200.computercraft.shared.Config; -import dan200.computercraft.shared.Registry; import dan200.computercraft.shared.computer.core.ClientComputerRegistry; import dan200.computercraft.shared.computer.core.ServerComputerRegistry; import dan200.computercraft.shared.peripheral.monitor.MonitorRenderer; @@ -79,10 +80,10 @@ public final class ComputerCraft implements ModInitializer { public static int httpMaxWebsockets = 4; public static boolean enableCommandBlock = false; - public static int modemRange = 64; - public static int modemHighAltitudeRange = 384; - public static int modemRangeDuringStorm = 64; - public static int modemHighAltitudeRangeDuringStorm = 384; + public static int emRange = 64; + public static int emHighAltitudeRange = 384; + public static int emRangeDuringStorm = 64; + public static int emHighAltitudeRangeDuringStorm = 384; public static int maxNotesPerTick = 8; public static MonitorRenderer monitorRenderer = MonitorRenderer.BEST; public static double monitorDistanceSq = 4096; @@ -110,8 +111,8 @@ public final class ComputerCraft implements ModInitializer { public static int monitorHeight = 6; public static final class TurtleUpgrades { - public static TurtleModem wirelessModemNormal; - public static TurtleModem wirelessModemAdvanced; + public static TurtleModem wirelessemNormal; + public static TurtleModem wirelessemAdvanced; public static TurtleSpeaker speaker; public static TurtleCraftingTable craftingTable; @@ -123,8 +124,8 @@ public final class ComputerCraft implements ModInitializer { } public static final class PocketUpgrades { - public static PocketModem wirelessModemNormal; - public static PocketModem wirelessModemAdvanced; + public static PocketModem wirelessemNormal; + public static PocketModem wirelessemAdvanced; public static PocketSpeaker speaker; } @@ -139,7 +140,9 @@ public final class ComputerCraft implements ModInitializer { @Override public void onInitialize() { Config.setup(); - Registry.setup(); GenericSource.setup(() -> ServiceUtil.loadServicesForge(GenericSource.class)); + init(); } + + } diff --git a/src/main/java/dan200/computercraft/client/ClientRegistry.java b/src/main/java/dan200/computercraft/client/ClientRegistry.java index a47f739a7..99165fc8f 100644 --- a/src/main/java/dan200/computercraft/client/ClientRegistry.java +++ b/src/main/java/dan200/computercraft/client/ClientRegistry.java @@ -73,6 +73,7 @@ public final class ClientRegistry } } + @SuppressWarnings ("NewExpressionSideOnly") public static void onModelBakeEvent(ResourceManager manager, Consumer out) { for (String model : EXTRA_MODELS) { out.accept(new ModelIdentifier(new Identifier(ComputerCraft.MOD_ID, model), "inventory")); @@ -81,7 +82,7 @@ public final class ClientRegistry public static void onItemColours() { ColorProviderRegistry.ITEM.register((stack, layer) -> { - return layer == 1 ? ((ItemDisk) stack.getItem()).getColour(stack) : 0xFFFFFF, Registry.ModItems.DISK); + return layer == 1 ? ((ItemDisk) stack.getItem()).getColour(stack) : 0xFFFFFF; }); ColorProviderRegistry.ITEM.register((stack, layer) -> { diff --git a/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java b/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java index a1f401e0b..91e417bea 100644 --- a/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java +++ b/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java @@ -85,11 +85,11 @@ public final class ComputerCraftProxyClient HandledScreens.>register( Registry.ModContainers.COMPUTER.get(), GuiComputer::create ); HandledScreens.>register( Registry.ModContainers.POCKET_COMPUTER.get(), GuiComputer::createPocket ); - HandledScreens.register( Registry.ModContainers.TURTLE.get(), GuiTurtle::new ); + HandledScreens.register( Registry.ModContainers.TURTLE, GuiTurtle::new ); - HandledScreens.register( Registry.ModContainers.PRINTER.get(), GuiPrinter::new ); - HandledScreens.register( Registry.ModContainers.DISK_DRIVE.get(), GuiDiskDrive::new ); - HandledScreens.register( Registry.ModContainers.PRINTOUT.get(), GuiPrintout::new ); + HandledScreens.register( Registry.ModContainers.PRINTER, GuiPrinter::new ); + HandledScreens.register( Registry.ModContainers.DISK_DRIVE, GuiDiskDrive::new ); + HandledScreens.register( Registry.ModContainers.PRINTOUT, GuiPrintout::new ); HandledScreens.>register( Registry.ModContainers.VIEW_COMPUTER.get(), GuiComputer::createView ); } diff --git a/src/main/java/dan200/computercraft/shared/Registry.java b/src/main/java/dan200/computercraft/shared/Registry.java index 0c2250b3e..3427fb2a0 100644 --- a/src/main/java/dan200/computercraft/shared/Registry.java +++ b/src/main/java/dan200/computercraft/shared/Registry.java @@ -5,9 +5,12 @@ */ package dan200.computercraft.shared; +import static net.minecraft.util.registry.Registry.BLOCK_ENTITY_TYPE; + +import java.util.function.BiFunction; +import java.util.function.Function; + import dan200.computercraft.ComputerCraft; -import dan200.computercraft.api.ComputerCraftAPI; -import dan200.computercraft.shared.common.ColourableRecipe; import dan200.computercraft.shared.common.ContainerHeldItem; import dan200.computercraft.shared.computer.blocks.BlockComputer; import dan200.computercraft.shared.computer.blocks.TileCommandComputer; @@ -16,12 +19,9 @@ import dan200.computercraft.shared.computer.core.ComputerFamily; import dan200.computercraft.shared.computer.inventory.ContainerComputer; import dan200.computercraft.shared.computer.inventory.ContainerViewComputer; import dan200.computercraft.shared.computer.items.ItemComputer; -import dan200.computercraft.shared.computer.recipe.ComputerUpgradeRecipe; import dan200.computercraft.shared.media.items.ItemDisk; import dan200.computercraft.shared.media.items.ItemPrintout; import dan200.computercraft.shared.media.items.ItemTreasureDisk; -import dan200.computercraft.shared.media.recipes.DiskRecipe; -import dan200.computercraft.shared.media.recipes.PrintoutRecipe; import dan200.computercraft.shared.network.container.ComputerContainerData; import dan200.computercraft.shared.network.container.ContainerData; import dan200.computercraft.shared.network.container.HeldItemContainerData; @@ -29,7 +29,11 @@ import dan200.computercraft.shared.network.container.ViewComputerContainerData; import dan200.computercraft.shared.peripheral.diskdrive.BlockDiskDrive; import dan200.computercraft.shared.peripheral.diskdrive.ContainerDiskDrive; import dan200.computercraft.shared.peripheral.diskdrive.TileDiskDrive; -import dan200.computercraft.shared.peripheral.modem.wired.*; +import dan200.computercraft.shared.peripheral.modem.wired.BlockCable; +import dan200.computercraft.shared.peripheral.modem.wired.BlockWiredModemFull; +import dan200.computercraft.shared.peripheral.modem.wired.ItemBlockCable; +import dan200.computercraft.shared.peripheral.modem.wired.TileCable; +import dan200.computercraft.shared.peripheral.modem.wired.TileWiredModemFull; import dan200.computercraft.shared.peripheral.modem.wireless.BlockWirelessModem; import dan200.computercraft.shared.peripheral.modem.wireless.TileWirelessModem; import dan200.computercraft.shared.peripheral.monitor.BlockMonitor; @@ -41,21 +45,14 @@ import dan200.computercraft.shared.peripheral.speaker.BlockSpeaker; import dan200.computercraft.shared.peripheral.speaker.TileSpeaker; import dan200.computercraft.shared.pocket.inventory.ContainerPocketComputer; import dan200.computercraft.shared.pocket.items.ItemPocketComputer; -import dan200.computercraft.shared.pocket.peripherals.PocketModem; -import dan200.computercraft.shared.pocket.peripherals.PocketSpeaker; -import dan200.computercraft.shared.pocket.recipes.PocketComputerUpgradeRecipe; import dan200.computercraft.shared.turtle.blocks.BlockTurtle; import dan200.computercraft.shared.turtle.blocks.TileTurtle; import dan200.computercraft.shared.turtle.core.TurtlePlayer; import dan200.computercraft.shared.turtle.inventory.ContainerTurtle; import dan200.computercraft.shared.turtle.items.ItemTurtle; -import dan200.computercraft.shared.turtle.recipes.TurtleRecipe; -import dan200.computercraft.shared.turtle.recipes.TurtleUpgradeRecipe; -import dan200.computercraft.shared.turtle.upgrades.*; import dan200.computercraft.shared.util.CreativeTabMain; import dan200.computercraft.shared.util.FixedPointTileEntityType; -import dan200.computercraft.shared.util.ImpostorRecipe; -import dan200.computercraft.shared.util.ImpostorShapelessRecipe; + import net.minecraft.block.Block; import net.minecraft.block.Material; import net.minecraft.block.entity.BlockEntity; @@ -65,247 +62,202 @@ import net.minecraft.entity.SpawnGroup; import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; -import net.minecraft.item.Items; -import net.minecraft.recipe.RecipeSerializer; +import net.minecraft.screen.ScreenHandler; import net.minecraft.screen.ScreenHandlerType; import net.minecraft.util.Identifier; -import net.minecraft.util.registry.MutableRegistry; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.RegistryObject; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import java.util.function.BiFunction; -import java.util.function.Function; +public final class Registry { + public static final String MOD_ID = ComputerCraft.MOD_ID; -@Mod.EventBusSubscriber( modid = ComputerCraft.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD ) -public final class Registry -{ - private static final ItemGroup mainItemGroup = new CreativeTabMain(); + public static void init() { + Object[] o = {ModBlocks.CABLE, ModTiles.CABLE, ModItems.CABLE, ModEntities.TURTLE_PLAYER, ModContainers.COMPUTER}; + } + public static final class ModBlocks { + private static Block.Settings properties() { + return Block.Settings.of(Material.STONE) + .strength(2); + } - private Registry() - { + private static Block.Settings turtleProperties() { + return Block.Settings.of(Material.STONE) + .strength(2.5f); + } + + private static Block.Settings emProperties() { + return Block.Settings.of(Material.STONE) + .strength(1.5f); + } + + public static final BlockComputer COMPUTER_NORMAL = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, + new Identifier(MOD_ID, "computer_normal"), + new BlockComputer(properties(), ComputerFamily.NORMAL, ModTiles.COMPUTER_NORMAL)); + public static final BlockComputer COMPUTER_ADVANCED = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, + "computer_advanced", + new BlockComputer(properties(), + ComputerFamily.ADVANCED, + ModTiles.COMPUTER_ADVANCED)); + + public static final BlockComputer COMPUTER_COMMAND = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, + "computer_command", + new BlockComputer(Block.Settings.of(Material.STONE) + .strength(-1, 6000000.0F), + ComputerFamily.COMMAND, + ModTiles.COMPUTER_COMMAND)); + + public static final BlockTurtle TURTLE_NORMAL = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, + "turtle_normal", + new BlockTurtle(turtleProperties(), ComputerFamily.NORMAL, ModTiles.TURTLE_NORMAL)); + public static final BlockTurtle TURTLE_ADVANCED = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, + "turtle_advanced", + new BlockTurtle(turtleProperties(), + ComputerFamily.ADVANCED, + ModTiles.TURTLE_ADVANCED)); + + public static final BlockSpeaker SPEAKER = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, "speaker", + new BlockSpeaker(properties())); + public static final BlockDiskDrive DISK_DRIVE = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, "disk_drive", new BlockDiskDrive(properties())); + public static final BlockPrinter PRINTER = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, "printer", new BlockPrinter(properties())); + + public static final BlockMonitor MONITOR_NORMAL = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, + "monitor_normal", + new BlockMonitor(properties(), ModTiles.MONITOR_NORMAL)); + public static final BlockMonitor MONITOR_ADVANCED = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, + "monitor_advanced", + new BlockMonitor(properties(), ModTiles.MONITOR_ADVANCED)); + + public static final BlockWirelessModem WIRELESS_EM_NORMAL = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, + "wireless_em_normal", + new BlockWirelessModem(properties(), ModTiles.WIRELESS_MODEM_NORMAL)); + public static final BlockWirelessModem WIRELESS_EM_ADVANCED = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, + "wireless_em_advanced", + new BlockWirelessModem(properties(), + ModTiles.WIRELESS_MODEM_ADVANCED)); + + public static final BlockWiredModemFull WIRED_MODEM_FULL = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, + "wired_em_full", + new BlockWiredModemFull(emProperties(), ModTiles.WIRED_MODEM_FULL)); + public static final BlockCable CABLE = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.BLOCK, "cable", new BlockCable(emProperties())); } - public static void registerBlocks(MutableRegistry registry) { - // Computers - ComputerCraft.Blocks.computerNormal = new BlockComputer(FabricBlockSettings.of(Material.STONE) - .hardness(2.0f) - .build(), ComputerFamily.NORMAL, TileComputer.FACTORY_NORMAL); + public static class ModTiles { - ComputerCraft.Blocks.computerAdvanced = new BlockComputer(FabricBlockSettings.of(Material.STONE) - .hardness(2.0f) - .build(), ComputerFamily.Advanced, TileComputer.FACTORY_ADVANCED); + private static BlockEntityType ofBlock(Block block, Function, T> factory) { + return net.minecraft.util.registry.Registry.register(BLOCK_ENTITY_TYPE, net.minecraft.util.registry.Registry.BLOCK.getId(block), FixedPointTileEntityType.create(block, factory)); + } - ComputerCraft.Blocks.computerCommand = new BlockComputer(FabricBlockSettings.of(Material.STONE) - .strength(-1, 6000000.0F) - .build(), ComputerFamily.Command, TileCommandComputer.FACTORY); + public static final BlockEntityType MONITOR_NORMAL = ofBlock(ModBlocks.MONITOR_NORMAL, f -> new TileMonitor(f, false)); + public static final BlockEntityType MONITOR_ADVANCED = ofBlock(ModBlocks.MONITOR_ADVANCED, f -> new TileMonitor(f, true)); - registry.add(new Identifier(ComputerCraft.MOD_ID, "computer_normal"), ComputerCraft.Blocks.computerNormal); - registry.add(new Identifier(ComputerCraft.MOD_ID, "computer_advanced"), ComputerCraft.Blocks.computerAdvanced); - registry.add(new Identifier(ComputerCraft.MOD_ID, "computer_command"), ComputerCraft.Blocks.computerCommand); + public static final BlockEntityType COMPUTER_NORMAL = ofBlock(ModBlocks.COMPUTER_NORMAL, + f -> new TileComputer(ComputerFamily.NORMAL, f)); + public static final BlockEntityType COMPUTER_ADVANCED = ofBlock(ModBlocks.COMPUTER_ADVANCED, + f -> new TileComputer(ComputerFamily.ADVANCED, f)); + public static final BlockEntityType COMPUTER_COMMAND = ofBlock(ModBlocks.COMPUTER_COMMAND, + f -> new TileCommandComputer(ComputerFamily.COMMAND, f)); - // Turtles - ComputerCraft.Blocks.turtleNormal = new BlockTurtle(FabricBlockSettings.of(Material.STONE) - .hardness(2.5f) - .build(), ComputerFamily.Normal, TileTurtle.FACTORY_NORMAL); + public static final BlockEntityType TURTLE_NORMAL = ofBlock(ModBlocks.TURTLE_NORMAL, f -> new TileTurtle(f, ComputerFamily.NORMAL)); + public static final BlockEntityType TURTLE_ADVANCED = ofBlock(ModBlocks.TURTLE_ADVANCED, f -> new TileTurtle(f, ComputerFamily.ADVANCED)); - ComputerCraft.Blocks.turtleAdvanced = new BlockTurtle(FabricBlockSettings.of(Material.STONE) - .hardness(2.5f) - .build(), ComputerFamily.Advanced, TileTurtle.FACTORY_ADVANCED); + public static final BlockEntityType SPEAKER = ofBlock(ModBlocks.SPEAKER, TileSpeaker::new); + public static final BlockEntityType DISK_DRIVE = ofBlock(ModBlocks.DISK_DRIVE, TileDiskDrive::new); + public static final BlockEntityType PRINTER = ofBlock(ModBlocks.PRINTER, TilePrinter::new); + public static final BlockEntityType WIRED_MODEM_FULL = ofBlock(ModBlocks.WIRED_MODEM_FULL, TileWiredModemFull::new); + public static final BlockEntityType CABLE = ofBlock(ModBlocks.CABLE, TileCable::new); - registry.add(new Identifier(ComputerCraft.MOD_ID, "turtle_normal"), ComputerCraft.Blocks.turtleNormal); - registry.add(new Identifier(ComputerCraft.MOD_ID, "turtle_advanced"), ComputerCraft.Blocks.turtleAdvanced); - - // Peripherals - ComputerCraft.Blocks.speaker = new BlockSpeaker(FabricBlockSettings.of(Material.STONE) - .hardness(2) - .build()); - - ComputerCraft.Blocks.diskDrive = new BlockDiskDrive(FabricBlockSettings.of(Material.STONE) - .hardness(2) - .build()); - - ComputerCraft.Blocks.monitorNormal = new BlockMonitor(FabricBlockSettings.of(Material.STONE) - .hardness(2) - .build(), TileMonitor.FACTORY_NORMAL); - - ComputerCraft.Blocks.monitorAdvanced = new BlockMonitor(FabricBlockSettings.of(Material.STONE) - .hardness(2) - .build(), TileMonitor.FACTORY_ADVANCED); - - ComputerCraft.Blocks.printer = new BlockPrinter(FabricBlockSettings.of(Material.STONE) - .hardness(2) - .build()); - - ComputerCraft.Blocks.wirelessModemNormal = new BlockWirelessModem(FabricBlockSettings.of(Material.STONE) - .hardness(2) - .build(), TileWirelessModem.FACTORY_NORMAL); - - ComputerCraft.Blocks.wirelessModemAdvanced = new BlockWirelessModem(FabricBlockSettings.of(Material.STONE) - .hardness(2) - .build(), TileWirelessModem.FACTORY_ADVANCED); - - ComputerCraft.Blocks.wiredModemFull = new BlockWiredModemFull(FabricBlockSettings.of(Material.STONE) - .hardness(1.5f) - .build()); - - ComputerCraft.Blocks.cable = new BlockCable(FabricBlockSettings.of(Material.STONE) - .hardness(1.5f) - .build()); - - registry.add(new Identifier(ComputerCraft.MOD_ID, "speaker"), ComputerCraft.Blocks.speaker); - registry.add(new Identifier(ComputerCraft.MOD_ID, "disk_drive"), ComputerCraft.Blocks.diskDrive); - registry.add(new Identifier(ComputerCraft.MOD_ID, "monitor_normal"), ComputerCraft.Blocks.monitorNormal); - registry.add(new Identifier(ComputerCraft.MOD_ID, "monitor_advanced"), ComputerCraft.Blocks.monitorAdvanced); - registry.add(new Identifier(ComputerCraft.MOD_ID, "printer"), ComputerCraft.Blocks.printer); - registry.add(new Identifier(ComputerCraft.MOD_ID, "wireless_modem_normal"), ComputerCraft.Blocks.wirelessModemNormal); - registry.add(new Identifier(ComputerCraft.MOD_ID, "wireless_modem_advanced"), ComputerCraft.Blocks.wirelessModemAdvanced); - registry.add(new Identifier(ComputerCraft.MOD_ID, "wired_modem_full"), ComputerCraft.Blocks.wiredModemFull); - registry.add(new Identifier(ComputerCraft.MOD_ID, "cable"), ComputerCraft.Blocks.cable); + public static final BlockEntityType WIRELESS_MODEM_NORMAL = ofBlock(ModBlocks.WIRELESS_EM_NORMAL, f -> new TileWirelessModem(f, + false)); + public static final BlockEntityType WIRELESS_MODEM_ADVANCED = ofBlock(ModBlocks.WIRELESS_EM_ADVANCED, f -> new TileWirelessModem(f, true)); } - public static void registerTileEntities(MutableRegistry> registry) { - // Computers - registry.add(TileComputer.FACTORY_NORMAL.getId(), TileComputer.FACTORY_NORMAL); - registry.add(TileComputer.FACTORY_ADVANCED.getId(), TileComputer.FACTORY_ADVANCED); - registry.add(TileCommandComputer.FACTORY.getId(), TileCommandComputer.FACTORY); + public static final class ModItems { + private static final ItemGroup mainItemGroup = new CreativeTabMain(); - // Turtles - registry.add(TileTurtle.FACTORY_NORMAL.getId(), TileTurtle.FACTORY_NORMAL); - registry.add(TileTurtle.FACTORY_ADVANCED.getId(), TileTurtle.FACTORY_ADVANCED); + private static Item.Settings properties() { + return new Item.Settings().group(mainItemGroup); + } - // Peripherals - registry.add(TileSpeaker.FACTORY.getId(), TileSpeaker.FACTORY); - registry.add(TileDiskDrive.FACTORY.getId(), TileDiskDrive.FACTORY); - registry.add(TilePrinter.FACTORY.getId(), TilePrinter.FACTORY); + private static I ofBlock(B parent, BiFunction supplier) { + return net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.ITEM, net.minecraft.util.registry.Registry.BLOCK.getId(parent), supplier.apply(parent, properties())); + } - registry.add(TileMonitor.FACTORY_NORMAL.getId(), TileMonitor.FACTORY_NORMAL); - registry.add(TileMonitor.FACTORY_ADVANCED.getId(), TileMonitor.FACTORY_ADVANCED); + public static final ItemComputer COMPUTER_NORMAL = ofBlock(ModBlocks.COMPUTER_NORMAL, ItemComputer::new); + public static final ItemComputer COMPUTER_ADVANCED = ofBlock(ModBlocks.COMPUTER_ADVANCED, ItemComputer::new); + public static final ItemComputer COMPUTER_COMMAND = ofBlock(ModBlocks.COMPUTER_COMMAND, ItemComputer::new); + private static T register(String id, T item) { + return net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.ITEM, new Identifier(MOD_ID, id), item); + } - registry.add(TileWirelessModem.FACTORY_NORMAL.getId(), TileWirelessModem.FACTORY_NORMAL); - registry.add(TileWirelessModem.FACTORY_ADVANCED.getId(), TileWirelessModem.FACTORY_ADVANCED); - registry.add(TileCable.FACTORY.getId(), TileCable.FACTORY); - registry.add(TileWiredModemFull.FACTORY.getId(), TileWiredModemFull.FACTORY); + public static final ItemPocketComputer POCKET_COMPUTER_NORMAL = register("pocket_computer_normal", + new ItemPocketComputer(properties().maxCount(1), + ComputerFamily.NORMAL)); + public static final ItemPocketComputer POCKET_COMPUTER_ADVANCED = register("pocket_computer_advanced", + new ItemPocketComputer(properties().maxCount(1), + ComputerFamily.ADVANCED)); + + public static final ItemTurtle TURTLE_NORMAL = ofBlock(ModBlocks.TURTLE_NORMAL, ItemTurtle::new); + public static final ItemTurtle TURTLE_ADVANCED = ofBlock(ModBlocks.TURTLE_ADVANCED, ItemTurtle::new); + + public static final ItemDisk DISK = register("disk", new ItemDisk(properties().maxCount(1))); + public static final ItemTreasureDisk TREASURE_DISK = register("treasure_disk", new ItemTreasureDisk(properties().maxCount(1))); + + public static final ItemPrintout PRINTED_PAGE = register("printed_page", new ItemPrintout(properties().maxCount(1), ItemPrintout.Type.PAGE)); + public static final ItemPrintout PRINTED_PAGES = register("printed_pages", + new ItemPrintout(properties().maxCount(1), ItemPrintout.Type.PAGES)); + public static final ItemPrintout PRINTED_BOOK = register("printed_book", new ItemPrintout(properties().maxCount(1), ItemPrintout.Type.BOOK)); + + public static final BlockItem SPEAKER = ofBlock(ModBlocks.SPEAKER, BlockItem::new); + public static final BlockItem DISK_DRIVE = ofBlock(ModBlocks.DISK_DRIVE, BlockItem::new); + public static final BlockItem PRINTER = ofBlock(ModBlocks.PRINTER, BlockItem::new); + public static final BlockItem MONITOR_NORMAL = ofBlock(ModBlocks.MONITOR_NORMAL, BlockItem::new); + public static final BlockItem MONITOR_ADVANCED = ofBlock(ModBlocks.MONITOR_ADVANCED, BlockItem::new); + public static final BlockItem WIRELESS_EM_NORMAL = ofBlock(ModBlocks.WIRELESS_EM_NORMAL, BlockItem::new); + public static final BlockItem WIRELESS_EM_ADVANCED = ofBlock(ModBlocks.WIRELESS_EM_ADVANCED, BlockItem::new); + public static final BlockItem WIRED_EM_FULL = ofBlock(ModBlocks.WIRED_MODEM_FULL, BlockItem::new); + + public static final ItemBlockCable.Cable CABLE = register("cable", new ItemBlockCable.Cable(ModBlocks.CABLE, properties())); + public static final ItemBlockCable.WiredModem WIRED_EM = register("wired_em", new ItemBlockCable.WiredModem(ModBlocks.CABLE, properties())); } - public static void registerItems(MutableRegistry registry) { - // Computer - ComputerCraft.Items.computerNormal = new ItemComputer(ComputerCraft.Blocks.computerNormal, defaultItem()); - ComputerCraft.Items.computerAdvanced = new ItemComputer(ComputerCraft.Blocks.computerAdvanced, defaultItem()); - ComputerCraft.Items.computerCommand = new ItemComputer(ComputerCraft.Blocks.computerCommand, defaultItem()); - - registerItemBlock(registry, ComputerCraft.Items.computerNormal); - registerItemBlock(registry, ComputerCraft.Items.computerAdvanced); - registerItemBlock(registry, ComputerCraft.Items.computerCommand); - - // Turtle - ComputerCraft.Items.turtleNormal = new ItemTurtle(ComputerCraft.Blocks.turtleNormal, defaultItem()); - ComputerCraft.Items.turtleAdvanced = new ItemTurtle(ComputerCraft.Blocks.turtleAdvanced, defaultItem()); - - registerItemBlock(registry, ComputerCraft.Items.turtleNormal); - registerItemBlock(registry, ComputerCraft.Items.turtleAdvanced); - - // Pocket computer - ComputerCraft.Items.pocketComputerNormal = new ItemPocketComputer(defaultItem().maxCount(1), ComputerFamily.Normal); - ComputerCraft.Items.pocketComputerAdvanced = new ItemPocketComputer(defaultItem().maxCount(1), ComputerFamily.Advanced); - - registry.add(new Identifier(ComputerCraft.MOD_ID, "pocket_computer_normal"), ComputerCraft.Items.pocketComputerNormal); - registry.add(new Identifier(ComputerCraft.MOD_ID, "pocket_computer_advanced"), ComputerCraft.Items.pocketComputerAdvanced); - - // Floppy disk - ComputerCraft.Items.disk = new ItemDisk(defaultItem().maxCount(1)); - ComputerCraft.Items.treasureDisk = new ItemTreasureDisk(defaultItem().maxCount(1)); - - registry.add(new Identifier(ComputerCraft.MOD_ID, "disk"), ComputerCraft.Items.disk); - registry.add(new Identifier(ComputerCraft.MOD_ID, "treasure_disk"), ComputerCraft.Items.treasureDisk); - - // Printouts - ComputerCraft.Items.printedPage = new ItemPrintout(defaultItem().maxCount(1), ItemPrintout.Type.PAGE); - ComputerCraft.Items.printedPages = new ItemPrintout(defaultItem().maxCount(1), ItemPrintout.Type.PAGES); - ComputerCraft.Items.printedBook = new ItemPrintout(defaultItem().maxCount(1), ItemPrintout.Type.BOOK); - - registry.add(new Identifier(ComputerCraft.MOD_ID, "printed_page"), ComputerCraft.Items.printedPage); - registry.add(new Identifier(ComputerCraft.MOD_ID, "printed_pages"), ComputerCraft.Items.printedPages); - registry.add(new Identifier(ComputerCraft.MOD_ID, "printed_book"), ComputerCraft.Items.printedBook); - - // Peripherals - registerItemBlock(registry, new BlockItem(ComputerCraft.Blocks.speaker, defaultItem())); - registerItemBlock(registry, new BlockItem(ComputerCraft.Blocks.diskDrive, defaultItem())); - registerItemBlock(registry, new BlockItem(ComputerCraft.Blocks.printer, defaultItem())); - registerItemBlock(registry, new BlockItem(ComputerCraft.Blocks.monitorNormal, defaultItem())); - registerItemBlock(registry, new BlockItem(ComputerCraft.Blocks.monitorAdvanced, defaultItem())); - registerItemBlock(registry, new BlockItem(ComputerCraft.Blocks.wirelessModemNormal, defaultItem())); - registerItemBlock(registry, new BlockItem(ComputerCraft.Blocks.wirelessModemAdvanced, defaultItem())); - registerItemBlock(registry, new BlockItem(ComputerCraft.Blocks.wiredModemFull, defaultItem())); - - ComputerCraft.Items.cable = new ItemBlockCable.Cable(ComputerCraft.Blocks.cable, defaultItem()); - ComputerCraft.Items.wiredModem = new ItemBlockCable.WiredModem(ComputerCraft.Blocks.cable, defaultItem()); - - registry.add(new Identifier(ComputerCraft.MOD_ID, "cable"), ComputerCraft.Items.cable); - registry.add(new Identifier(ComputerCraft.MOD_ID, "wired_modem"), ComputerCraft.Items.wiredModem); - - registerTurtleUpgrades(); - registerPocketUpgrades(); + public static class ModEntities { + public static final EntityType TURTLE_PLAYER = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.ENTITY_TYPE, new Identifier(MOD_ID, "turtle_player"), EntityType.Builder.create( + SpawnGroup.MISC).disableSaving() + .disableSummon() + .setDimensions( + 0, + 0) + .build( + ComputerCraft.MOD_ID + ":turtle_player")); } - private static Item.Settings defaultItem() { - return new Item.Settings().group(mainItemGroup); - } + public static class ModContainers { + private static > T register(String id, T item) { + return net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.SCREEN_HANDLER, new Identifier(MOD_ID, id), item); + } - private static void registerItemBlock(MutableRegistry registry, BlockItem item) { - registry.add(net.minecraft.util.registry.Registry.BLOCK.getId(item.getBlock()), item); - } + public static final ScreenHandlerType COMPUTER = register("computer", + ContainerData.toType(ComputerContainerData::new, + ContainerComputer::new)); - private static void registerTurtleUpgrades() { - // Upgrades - ComputerCraft.TurtleUpgrades.wirelessModemNormal = new TurtleModem(false, new Identifier(ComputerCraft.MOD_ID, "wireless_modem_normal")); - ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.wirelessModemNormal); + public static final ScreenHandlerType POCKET_COMPUTER = register("pocket_computer", + ContainerData.toType(ComputerContainerData::new, + ContainerPocketComputer::new)); - ComputerCraft.TurtleUpgrades.wirelessModemAdvanced = new TurtleModem(true, new Identifier(ComputerCraft.MOD_ID, "wireless_modem_advanced")); - ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.wirelessModemAdvanced); + public static final ScreenHandlerType TURTLE = register("turtle", + ContainerData.toType(ComputerContainerData::new, + ContainerTurtle::new)); - ComputerCraft.TurtleUpgrades.speaker = new TurtleSpeaker(new Identifier(ComputerCraft.MOD_ID, "speaker")); - ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.speaker); - ComputerCraft.TurtleUpgrades.craftingTable = new TurtleCraftingTable(new Identifier("minecraft", "crafting_table")); - ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.craftingTable); + public static final ScreenHandlerType DISK_DRIVE = register("disk_drive", + new ScreenHandlerType<>(ContainerDiskDrive::new)); - ComputerCraft.TurtleUpgrades.diamondSword = new TurtleSword(new Identifier("minecraft", "diamond_sword"), Items.DIAMOND_SWORD); - ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.diamondSword); + public static final ScreenHandlerType PRINTER = register("printer", new ScreenHandlerType<>(ContainerPrinter::new)); - ComputerCraft.TurtleUpgrades.diamondShovel = new TurtleShovel(new Identifier("minecraft", "diamond_shovel"), Items.DIAMOND_SHOVEL); - ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.diamondShovel); + public static final ScreenHandlerType PRINTOUT = register("printout", + ContainerData.toType(HeldItemContainerData::new, + ContainerHeldItem::createPrintout)); - ComputerCraft.TurtleUpgrades.diamondPickaxe = new TurtleTool(new Identifier("minecraft", "diamond_pickaxe"), Items.DIAMOND_PICKAXE); - ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.diamondPickaxe); - - ComputerCraft.TurtleUpgrades.diamondAxe = new TurtleAxe(new Identifier("minecraft", "diamond_axe"), Items.DIAMOND_AXE); - ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.diamondAxe); - - ComputerCraft.TurtleUpgrades.diamondHoe = new TurtleHoe(new Identifier("minecraft", "diamond_hoe"), Items.DIAMOND_HOE); - ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.diamondHoe); - } - - private static void registerPocketUpgrades() { - ComputerCraftAPI.registerPocketUpgrade(ComputerCraft.PocketUpgrades.wirelessModemNormal = new PocketModem(false)); - ComputerCraftAPI.registerPocketUpgrade(ComputerCraft.PocketUpgrades.wirelessModemAdvanced = new PocketModem(true)); - ComputerCraftAPI.registerPocketUpgrade(ComputerCraft.PocketUpgrades.speaker = new PocketSpeaker()); - } - - public static void registerRecipes(MutableRegistry> registry) { - registry.add(new Identifier(ComputerCraft.MOD_ID, "colour"), ColourableRecipe.SERIALIZER); - registry.add(new Identifier(ComputerCraft.MOD_ID, "computer_upgrade"), ComputerUpgradeRecipe.SERIALIZER); - registry.add(new Identifier(ComputerCraft.MOD_ID, "pocket_computer_upgrade"), PocketComputerUpgradeRecipe.SERIALIZER); - registry.add(new Identifier(ComputerCraft.MOD_ID, "disk"), DiskRecipe.SERIALIZER); - registry.add(new Identifier(ComputerCraft.MOD_ID, "printout"), PrintoutRecipe.SERIALIZER); - registry.add(new Identifier(ComputerCraft.MOD_ID, "turtle"), TurtleRecipe.SERIALIZER); - registry.add(new Identifier(ComputerCraft.MOD_ID, "turtle_upgrade"), TurtleUpgradeRecipe.SERIALIZER); - registry.add(new Identifier(ComputerCraft.MOD_ID, "impostor_shaped"), ImpostorRecipe.SERIALIZER); - registry.add(new Identifier(ComputerCraft.MOD_ID, "impostor_shapeless"), ImpostorShapelessRecipe.SERIALIZER); + public static final ScreenHandlerType VIEW_COMPUTER = register("view_computer", + ContainerData.toType(ViewComputerContainerData::new, + ContainerViewComputer::new)); } } diff --git a/src/main/java/dan200/computercraft/shared/common/BlockGeneric.java b/src/main/java/dan200/computercraft/shared/common/BlockGeneric.java index 2de987572..fb1044e97 100644 --- a/src/main/java/dan200/computercraft/shared/common/BlockGeneric.java +++ b/src/main/java/dan200/computercraft/shared/common/BlockGeneric.java @@ -26,9 +26,9 @@ import java.util.Random; public abstract class BlockGeneric extends Block { - private final RegistryObject> type; + private final BlockEntityType type; - public BlockGeneric( Settings settings, RegistryObject> type ) + public BlockGeneric( Settings settings, BlockEntityType type ) { super( settings ); this.type = type; diff --git a/src/main/java/dan200/computercraft/shared/computer/blocks/BlockComputer.java b/src/main/java/dan200/computercraft/shared/computer/blocks/BlockComputer.java index 52cbb4e4f..48c2d97de 100644 --- a/src/main/java/dan200/computercraft/shared/computer/blocks/BlockComputer.java +++ b/src/main/java/dan200/computercraft/shared/computer/blocks/BlockComputer.java @@ -28,7 +28,7 @@ public class BlockComputer extends BlockComputerBase public static final EnumProperty STATE = EnumProperty.of( "state", ComputerState.class ); public static final DirectionProperty FACING = Properties.HORIZONTAL_FACING; - public BlockComputer( Settings settings, ComputerFamily family, RegistryObject> type ) + public BlockComputer( Settings settings, ComputerFamily family, BlockEntityType type ) { super( settings, family, type ); setDefaultState( getDefaultState() diff --git a/src/main/java/dan200/computercraft/shared/computer/blocks/BlockComputerBase.java b/src/main/java/dan200/computercraft/shared/computer/blocks/BlockComputerBase.java index 9fd767725..658eee05f 100644 --- a/src/main/java/dan200/computercraft/shared/computer/blocks/BlockComputerBase.java +++ b/src/main/java/dan200/computercraft/shared/computer/blocks/BlockComputerBase.java @@ -40,7 +40,7 @@ public abstract class BlockComputerBase extends Bloc private final ComputerFamily family; - protected BlockComputerBase( Settings settings, ComputerFamily family, RegistryObject> type ) + protected BlockComputerBase( Settings settings, ComputerFamily family, BlockEntityType type ) { super( settings, type ); this.family = family; diff --git a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockWiredModemFull.java b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockWiredModemFull.java index 14448a42f..c292de160 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockWiredModemFull.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockWiredModemFull.java @@ -7,8 +7,11 @@ package dan200.computercraft.shared.peripheral.modem.wired; import dan200.computercraft.shared.Registry; import dan200.computercraft.shared.common.BlockGeneric; +import dan200.computercraft.shared.peripheral.monitor.TileMonitor; + import net.minecraft.block.Block; import net.minecraft.block.BlockState; +import net.minecraft.block.entity.BlockEntityType; import net.minecraft.state.StateManager; import net.minecraft.state.property.BooleanProperty; @@ -17,9 +20,9 @@ public class BlockWiredModemFull extends BlockGeneric public static final BooleanProperty MODEM_ON = BooleanProperty.of( "modem" ); public static final BooleanProperty PERIPHERAL_ON = BooleanProperty.of( "peripheral" ); - public BlockWiredModemFull( Settings settings ) + public BlockWiredModemFull( Settings settings , BlockEntityType type ) { - super( settings, Registry.ModTiles.WIRED_MODEM_FULL ); + super( settings, type); setDefaultState( getStateManager().getDefaultState() .with( MODEM_ON, false ) .with( PERIPHERAL_ON, false ) diff --git a/src/main/java/dan200/computercraft/shared/peripheral/modem/wireless/BlockWirelessModem.java b/src/main/java/dan200/computercraft/shared/peripheral/modem/wireless/BlockWirelessModem.java index 8151d4664..de67d232c 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/modem/wireless/BlockWirelessModem.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/modem/wireless/BlockWirelessModem.java @@ -5,8 +5,17 @@ */ package dan200.computercraft.shared.peripheral.modem.wireless; +import static dan200.computercraft.shared.util.WaterloggableHelpers.WATERLOGGED; +import static dan200.computercraft.shared.util.WaterloggableHelpers.getWaterloggedFluidState; +import static dan200.computercraft.shared.util.WaterloggableHelpers.getWaterloggedStateForPlacement; +import static dan200.computercraft.shared.util.WaterloggableHelpers.updateWaterloggedPostPlacement; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + import dan200.computercraft.shared.common.BlockGeneric; import dan200.computercraft.shared.peripheral.modem.ModemShapes; + import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.ShapeContext; @@ -24,19 +33,13 @@ import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -import net.minecraftforge.fml.RegistryObject; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -import static dan200.computercraft.shared.util.WaterloggableHelpers.*; public class BlockWirelessModem extends BlockGeneric implements Waterloggable { public static final DirectionProperty FACING = Properties.FACING; public static final BooleanProperty ON = BooleanProperty.of( "on" ); - public BlockWirelessModem( Settings settings, RegistryObject> type ) + public BlockWirelessModem( Settings settings, BlockEntityType type ) { super( settings, type ); setDefaultState( getStateManager().getDefaultState() diff --git a/src/main/java/dan200/computercraft/shared/peripheral/monitor/BlockMonitor.java b/src/main/java/dan200/computercraft/shared/peripheral/monitor/BlockMonitor.java index f80a02327..3233e8468 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/monitor/BlockMonitor.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/monitor/BlockMonitor.java @@ -34,7 +34,7 @@ public class BlockMonitor extends BlockGeneric static final EnumProperty STATE = EnumProperty.of( "state", MonitorEdgeState.class ); - public BlockMonitor( Settings settings, RegistryObject> type ) + public BlockMonitor( Settings settings, BlockEntityType type ) { super( settings, type ); // TODO: Test underwater - do we need isSolid at all? diff --git a/src/main/java/dan200/computercraft/shared/peripheral/printer/ContainerPrinter.java b/src/main/java/dan200/computercraft/shared/peripheral/printer/ContainerPrinter.java index dd76940f5..91701de97 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/printer/ContainerPrinter.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/printer/ContainerPrinter.java @@ -26,7 +26,7 @@ public class ContainerPrinter extends ScreenHandler private ContainerPrinter( int id, PlayerInventory player, Inventory inventory, PropertyDelegate properties ) { - super( Registry.ModContainers.PRINTER.get(), id ); + super( Registry.ModContainers.PRINTER, id ); this.properties = properties; this.inventory = inventory; diff --git a/src/main/java/dan200/computercraft/shared/turtle/blocks/BlockTurtle.java b/src/main/java/dan200/computercraft/shared/turtle/blocks/BlockTurtle.java index 7b50c614f..61c273567 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/blocks/BlockTurtle.java +++ b/src/main/java/dan200/computercraft/shared/turtle/blocks/BlockTurtle.java @@ -56,7 +56,7 @@ public class BlockTurtle extends BlockComputerBase implements Waterl 0.875, 0.875, 0.875 ); - public BlockTurtle( Settings settings, ComputerFamily family, RegistryObject> type ) + public BlockTurtle( Settings settings, ComputerFamily family, BlockEntityType type ) { super( settings, family, type ); setDefaultState( getStateManager().getDefaultState() diff --git a/src/main/java/dan200/computercraft/shared/turtle/core/TurtlePlayer.java b/src/main/java/dan200/computercraft/shared/turtle/core/TurtlePlayer.java index 0a11b3545..5db80090e 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/core/TurtlePlayer.java +++ b/src/main/java/dan200/computercraft/shared/turtle/core/TurtlePlayer.java @@ -7,6 +7,7 @@ package dan200.computercraft.shared.turtle.core; import com.mojang.authlib.GameProfile; import dan200.computercraft.ComputerCraft; +import dan200.computercraft.api.turtle.FakePlayer; import dan200.computercraft.api.turtle.ITurtleAccess; import dan200.computercraft.shared.Registry; import dan200.computercraft.shared.util.FakeNetHandler; diff --git a/src/main/java/dan200/computercraft/shared/util/FixedPointTileEntityType.java b/src/main/java/dan200/computercraft/shared/util/FixedPointTileEntityType.java index 4fe7f61ec..e13062240 100644 --- a/src/main/java/dan200/computercraft/shared/util/FixedPointTileEntityType.java +++ b/src/main/java/dan200/computercraft/shared/util/FixedPointTileEntityType.java @@ -14,21 +14,21 @@ import java.util.function.Function; import java.util.function.Supplier; /** - * A {@link TileEntityType} whose supplier uses itself as an argument. + * A {@link BlockEntityType} whose supplier uses itself as an argument. * * @param The type of the produced tile entity. */ public final class FixedPointTileEntityType extends BlockEntityType { - private final Supplier block; + private final Block block; - private FixedPointTileEntityType( Supplier block, Supplier builder ) + private FixedPointTileEntityType( Block block, Supplier builder ) { super( builder, Collections.emptySet(), null ); this.block = block; } - public static FixedPointTileEntityType create( Supplier block, Function, T> builder ) + public static FixedPointTileEntityType create( Block block, Function, T> builder ) { return new FixedPointSupplier<>( block, builder ).factory; } @@ -36,7 +36,7 @@ public final class FixedPointTileEntityType extends Block @Override public boolean supports( @Nonnull Block block ) { - return block == this.block.get(); + return block == this.block; } private static final class FixedPointSupplier implements Supplier @@ -44,7 +44,7 @@ public final class FixedPointTileEntityType extends Block final FixedPointTileEntityType factory; private final Function, T> builder; - private FixedPointSupplier( Supplier block, Function, T> builder ) + private FixedPointSupplier( Block block, Function, T> builder ) { factory = new FixedPointTileEntityType<>( block, this ); this.builder = builder; diff --git a/src/main/resources/computercraft.accesswidener b/src/main/resources/computercraft.accesswidener index aebb41cc2..23c47860f 100644 --- a/src/main/resources/computercraft.accesswidener +++ b/src/main/resources/computercraft.accesswidener @@ -10,3 +10,5 @@ accessible method net/minecraft/client/render/item/HeldItemRenderer getMapAngle accessible method net/minecraft/client/texture/TextureManager bindTextureInner (Lnet/minecraft/util/Identifier;)V accessible field net/minecraft/entity/Entity pos Lnet/minecraft/util/math/Vec3d; extendable method net/minecraft/entity/Entity getCameraPosVec (F)Lnet/minecraft/util/math/Vec3d; +accessible method net/minecraft/screen/ScreenHandlerType (Lnet/minecraft/screen/ScreenHandlerType$Factory;)V +accessible class net/minecraft/screen/ScreenHandlerType$Factory diff --git a/src/main/resources/computercraft.client.json b/src/main/resources/computercraft.client.json deleted file mode 100644 index f3ec76e47..000000000 --- a/src/main/resources/computercraft.client.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "required": true, - "package": "dan200.computercraft.shared.mixin", - "compatibilityLevel": "JAVA_8", - "mixins": [ - "MixinFirstPersonRenderer", - "MixinItemFrameEntityRenderer", - "MixinMinecraftGame", - "MixinScreen", - "MixinWorldRenderer" - ], - "injectors": { - "defaultRequire": 1 - } -} diff --git a/src/main/resources/computercraft.common.json b/src/main/resources/computercraft.common.json deleted file mode 100644 index 3d0c652eb..000000000 --- a/src/main/resources/computercraft.common.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "required": true, - "package": "dan200.computercraft.shared.mixin", - "compatibilityLevel": "JAVA_8", - "mixins": [ - "MixinBlock", - "MixinEntity", - "MixinServerWorld", - "MixinWorld" - ], - "injectors": { - "defaultRequire": 1 - } -}