mirror of
				https://github.com/SquidDev-CC/CC-Tweaked
				synced 2025-10-31 05:33:00 +00:00 
			
		
		
		
	registry is gone
This commit is contained in:
		| @@ -6,6 +6,8 @@ | |||||||
|  |  | ||||||
| package dan200.computercraft; | package dan200.computercraft; | ||||||
|  |  | ||||||
|  | import static dan200.computercraft.shared.Registry.*; | ||||||
|  |  | ||||||
| import java.util.Collections; | import java.util.Collections; | ||||||
| import java.util.EnumSet; | import java.util.EnumSet; | ||||||
| import java.util.List; | 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.apis.http.options.AddressRule; | ||||||
| import dan200.computercraft.core.asm.GenericSource; | import dan200.computercraft.core.asm.GenericSource; | ||||||
| import dan200.computercraft.shared.Config; | import dan200.computercraft.shared.Config; | ||||||
| import dan200.computercraft.shared.Registry; |  | ||||||
| import dan200.computercraft.shared.computer.core.ClientComputerRegistry; | import dan200.computercraft.shared.computer.core.ClientComputerRegistry; | ||||||
| import dan200.computercraft.shared.computer.core.ServerComputerRegistry; | import dan200.computercraft.shared.computer.core.ServerComputerRegistry; | ||||||
| import dan200.computercraft.shared.peripheral.monitor.MonitorRenderer; | import dan200.computercraft.shared.peripheral.monitor.MonitorRenderer; | ||||||
| @@ -79,10 +80,10 @@ public final class ComputerCraft implements ModInitializer { | |||||||
|     public static int httpMaxWebsockets = 4; |     public static int httpMaxWebsockets = 4; | ||||||
|  |  | ||||||
|     public static boolean enableCommandBlock = false; |     public static boolean enableCommandBlock = false; | ||||||
|     public static int modemRange = 64; |     public static int emRange = 64; | ||||||
|     public static int modemHighAltitudeRange = 384; |     public static int emHighAltitudeRange = 384; | ||||||
|     public static int modemRangeDuringStorm = 64; |     public static int emRangeDuringStorm = 64; | ||||||
|     public static int modemHighAltitudeRangeDuringStorm = 384; |     public static int emHighAltitudeRangeDuringStorm = 384; | ||||||
|     public static int maxNotesPerTick = 8; |     public static int maxNotesPerTick = 8; | ||||||
|     public static MonitorRenderer monitorRenderer = MonitorRenderer.BEST; |     public static MonitorRenderer monitorRenderer = MonitorRenderer.BEST; | ||||||
|     public static double monitorDistanceSq = 4096; |     public static double monitorDistanceSq = 4096; | ||||||
| @@ -110,8 +111,8 @@ public final class ComputerCraft implements ModInitializer { | |||||||
|     public static int monitorHeight = 6; |     public static int monitorHeight = 6; | ||||||
|  |  | ||||||
|     public static final class TurtleUpgrades { |     public static final class TurtleUpgrades { | ||||||
|         public static TurtleModem wirelessModemNormal; |         public static TurtleModem wirelessemNormal; | ||||||
|         public static TurtleModem wirelessModemAdvanced; |         public static TurtleModem wirelessemAdvanced; | ||||||
|         public static TurtleSpeaker speaker; |         public static TurtleSpeaker speaker; | ||||||
|  |  | ||||||
|         public static TurtleCraftingTable craftingTable; |         public static TurtleCraftingTable craftingTable; | ||||||
| @@ -123,8 +124,8 @@ public final class ComputerCraft implements ModInitializer { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public static final class PocketUpgrades { |     public static final class PocketUpgrades { | ||||||
|         public static PocketModem wirelessModemNormal; |         public static PocketModem wirelessemNormal; | ||||||
|         public static PocketModem wirelessModemAdvanced; |         public static PocketModem wirelessemAdvanced; | ||||||
|         public static PocketSpeaker speaker; |         public static PocketSpeaker speaker; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -139,7 +140,9 @@ public final class ComputerCraft implements ModInitializer { | |||||||
|     @Override |     @Override | ||||||
|     public void onInitialize() { |     public void onInitialize() { | ||||||
|         Config.setup(); |         Config.setup(); | ||||||
|         Registry.setup(); |  | ||||||
|         GenericSource.setup(() -> ServiceUtil.loadServicesForge(GenericSource.class)); |         GenericSource.setup(() -> ServiceUtil.loadServicesForge(GenericSource.class)); | ||||||
|  |         init(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -73,6 +73,7 @@ public final class ClientRegistry | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @SuppressWarnings ("NewExpressionSideOnly") | ||||||
|     public static void onModelBakeEvent(ResourceManager manager, Consumer<ModelIdentifier> out) { |     public static void onModelBakeEvent(ResourceManager manager, Consumer<ModelIdentifier> out) { | ||||||
|         for (String model : EXTRA_MODELS) { |         for (String model : EXTRA_MODELS) { | ||||||
|             out.accept(new ModelIdentifier(new Identifier(ComputerCraft.MOD_ID, model), "inventory")); |             out.accept(new ModelIdentifier(new Identifier(ComputerCraft.MOD_ID, model), "inventory")); | ||||||
| @@ -81,7 +82,7 @@ public final class ClientRegistry | |||||||
|  |  | ||||||
|     public static void onItemColours() { |     public static void onItemColours() { | ||||||
|         ColorProviderRegistry.ITEM.register((stack, layer) -> { |         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) -> { |         ColorProviderRegistry.ITEM.register((stack, layer) -> { | ||||||
|   | |||||||
| @@ -85,11 +85,11 @@ public final class ComputerCraftProxyClient | |||||||
|  |  | ||||||
|         HandledScreens.<ContainerComputer, GuiComputer<ContainerComputer>>register( Registry.ModContainers.COMPUTER.get(), GuiComputer::create ); |         HandledScreens.<ContainerComputer, GuiComputer<ContainerComputer>>register( Registry.ModContainers.COMPUTER.get(), GuiComputer::create ); | ||||||
|         HandledScreens.<ContainerPocketComputer, GuiComputer<ContainerPocketComputer>>register( Registry.ModContainers.POCKET_COMPUTER.get(), GuiComputer::createPocket ); |         HandledScreens.<ContainerPocketComputer, GuiComputer<ContainerPocketComputer>>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.PRINTER, GuiPrinter::new ); | ||||||
|         HandledScreens.register( Registry.ModContainers.DISK_DRIVE.get(), GuiDiskDrive::new ); |         HandledScreens.register( Registry.ModContainers.DISK_DRIVE, GuiDiskDrive::new ); | ||||||
|         HandledScreens.register( Registry.ModContainers.PRINTOUT.get(), GuiPrintout::new ); |         HandledScreens.register( Registry.ModContainers.PRINTOUT, GuiPrintout::new ); | ||||||
|  |  | ||||||
|         HandledScreens.<ContainerViewComputer, GuiComputer<ContainerViewComputer>>register( Registry.ModContainers.VIEW_COMPUTER.get(), GuiComputer::createView ); |         HandledScreens.<ContainerViewComputer, GuiComputer<ContainerViewComputer>>register( Registry.ModContainers.VIEW_COMPUTER.get(), GuiComputer::createView ); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -5,9 +5,12 @@ | |||||||
|  */ |  */ | ||||||
| package dan200.computercraft.shared; | 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.ComputerCraft; | ||||||
| import dan200.computercraft.api.ComputerCraftAPI; |  | ||||||
| import dan200.computercraft.shared.common.ColourableRecipe; |  | ||||||
| import dan200.computercraft.shared.common.ContainerHeldItem; | import dan200.computercraft.shared.common.ContainerHeldItem; | ||||||
| import dan200.computercraft.shared.computer.blocks.BlockComputer; | import dan200.computercraft.shared.computer.blocks.BlockComputer; | ||||||
| import dan200.computercraft.shared.computer.blocks.TileCommandComputer; | 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.ContainerComputer; | ||||||
| import dan200.computercraft.shared.computer.inventory.ContainerViewComputer; | import dan200.computercraft.shared.computer.inventory.ContainerViewComputer; | ||||||
| import dan200.computercraft.shared.computer.items.ItemComputer; | 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.ItemDisk; | ||||||
| import dan200.computercraft.shared.media.items.ItemPrintout; | import dan200.computercraft.shared.media.items.ItemPrintout; | ||||||
| import dan200.computercraft.shared.media.items.ItemTreasureDisk; | 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.ComputerContainerData; | ||||||
| import dan200.computercraft.shared.network.container.ContainerData; | import dan200.computercraft.shared.network.container.ContainerData; | ||||||
| import dan200.computercraft.shared.network.container.HeldItemContainerData; | 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.BlockDiskDrive; | ||||||
| import dan200.computercraft.shared.peripheral.diskdrive.ContainerDiskDrive; | import dan200.computercraft.shared.peripheral.diskdrive.ContainerDiskDrive; | ||||||
| import dan200.computercraft.shared.peripheral.diskdrive.TileDiskDrive; | 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.BlockWirelessModem; | ||||||
| import dan200.computercraft.shared.peripheral.modem.wireless.TileWirelessModem; | import dan200.computercraft.shared.peripheral.modem.wireless.TileWirelessModem; | ||||||
| import dan200.computercraft.shared.peripheral.monitor.BlockMonitor; | 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.peripheral.speaker.TileSpeaker; | ||||||
| import dan200.computercraft.shared.pocket.inventory.ContainerPocketComputer; | import dan200.computercraft.shared.pocket.inventory.ContainerPocketComputer; | ||||||
| import dan200.computercraft.shared.pocket.items.ItemPocketComputer; | 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.BlockTurtle; | ||||||
| import dan200.computercraft.shared.turtle.blocks.TileTurtle; | import dan200.computercraft.shared.turtle.blocks.TileTurtle; | ||||||
| import dan200.computercraft.shared.turtle.core.TurtlePlayer; | import dan200.computercraft.shared.turtle.core.TurtlePlayer; | ||||||
| import dan200.computercraft.shared.turtle.inventory.ContainerTurtle; | import dan200.computercraft.shared.turtle.inventory.ContainerTurtle; | ||||||
| import dan200.computercraft.shared.turtle.items.ItemTurtle; | 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.CreativeTabMain; | ||||||
| import dan200.computercraft.shared.util.FixedPointTileEntityType; | 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.Block; | ||||||
| import net.minecraft.block.Material; | import net.minecraft.block.Material; | ||||||
| import net.minecraft.block.entity.BlockEntity; | import net.minecraft.block.entity.BlockEntity; | ||||||
| @@ -65,247 +62,202 @@ import net.minecraft.entity.SpawnGroup; | |||||||
| 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.ItemGroup; | ||||||
| import net.minecraft.item.Items; | import net.minecraft.screen.ScreenHandler; | ||||||
| import net.minecraft.recipe.RecipeSerializer; |  | ||||||
| import net.minecraft.screen.ScreenHandlerType; | import net.minecraft.screen.ScreenHandlerType; | ||||||
| import net.minecraft.util.Identifier; | 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; | public final class Registry { | ||||||
| import java.util.function.Function; |     public static final String MOD_ID = ComputerCraft.MOD_ID; | ||||||
|  |  | ||||||
| @Mod.EventBusSubscriber( modid = ComputerCraft.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD ) |     public static void init() { | ||||||
| public final class Registry |         Object[] o = {ModBlocks.CABLE, ModTiles.CABLE, ModItems.CABLE, ModEntities.TURTLE_PLAYER, ModContainers.COMPUTER}; | ||||||
| { |     } | ||||||
|     private static final ItemGroup mainItemGroup = new CreativeTabMain(); |     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<Block> registry) { |     public static class ModTiles { | ||||||
|         // Computers |  | ||||||
|         ComputerCraft.Blocks.computerNormal = new BlockComputer(FabricBlockSettings.of(Material.STONE) |  | ||||||
|             .hardness(2.0f) |  | ||||||
|             .build(), ComputerFamily.NORMAL, TileComputer.FACTORY_NORMAL); |  | ||||||
|  |  | ||||||
|         ComputerCraft.Blocks.computerAdvanced = new BlockComputer(FabricBlockSettings.of(Material.STONE) |         private static <T extends BlockEntity> BlockEntityType<T> ofBlock(Block block, Function<BlockEntityType<T>, T> factory) { | ||||||
|             .hardness(2.0f) |             return net.minecraft.util.registry.Registry.register(BLOCK_ENTITY_TYPE, net.minecraft.util.registry.Registry.BLOCK.getId(block), FixedPointTileEntityType.create(block, factory)); | ||||||
|             .build(), ComputerFamily.Advanced, TileComputer.FACTORY_ADVANCED); |         } | ||||||
|  |  | ||||||
|         ComputerCraft.Blocks.computerCommand = new BlockComputer(FabricBlockSettings.of(Material.STONE) |         public static final BlockEntityType<TileMonitor> MONITOR_NORMAL = ofBlock(ModBlocks.MONITOR_NORMAL, f -> new TileMonitor(f, false)); | ||||||
|             .strength(-1, 6000000.0F) |         public static final BlockEntityType<TileMonitor> MONITOR_ADVANCED = ofBlock(ModBlocks.MONITOR_ADVANCED, f -> new TileMonitor(f, true)); | ||||||
|             .build(), ComputerFamily.Command, TileCommandComputer.FACTORY); |  | ||||||
|  |  | ||||||
|         registry.add(new Identifier(ComputerCraft.MOD_ID, "computer_normal"), ComputerCraft.Blocks.computerNormal); |         public static final BlockEntityType<TileComputer> COMPUTER_NORMAL = ofBlock(ModBlocks.COMPUTER_NORMAL, | ||||||
|         registry.add(new Identifier(ComputerCraft.MOD_ID, "computer_advanced"), ComputerCraft.Blocks.computerAdvanced); |                                                                                     f -> new TileComputer(ComputerFamily.NORMAL, f)); | ||||||
|         registry.add(new Identifier(ComputerCraft.MOD_ID, "computer_command"), ComputerCraft.Blocks.computerCommand); |         public static final BlockEntityType<TileComputer> COMPUTER_ADVANCED = ofBlock(ModBlocks.COMPUTER_ADVANCED, | ||||||
|  |                                                                                       f -> new TileComputer(ComputerFamily.ADVANCED, f)); | ||||||
|  |         public static final BlockEntityType<TileCommandComputer> COMPUTER_COMMAND = ofBlock(ModBlocks.COMPUTER_COMMAND, | ||||||
|  |                                                                                             f -> new TileCommandComputer(ComputerFamily.COMMAND, f)); | ||||||
|  |  | ||||||
|         // Turtles |         public static final BlockEntityType<TileTurtle> TURTLE_NORMAL = ofBlock(ModBlocks.TURTLE_NORMAL, f -> new TileTurtle(f, ComputerFamily.NORMAL)); | ||||||
|         ComputerCraft.Blocks.turtleNormal = new BlockTurtle(FabricBlockSettings.of(Material.STONE) |         public static final BlockEntityType<TileTurtle> TURTLE_ADVANCED = ofBlock(ModBlocks.TURTLE_ADVANCED, f -> new TileTurtle(f, ComputerFamily.ADVANCED)); | ||||||
|             .hardness(2.5f) |  | ||||||
|             .build(), ComputerFamily.Normal, TileTurtle.FACTORY_NORMAL); |  | ||||||
|  |  | ||||||
|         ComputerCraft.Blocks.turtleAdvanced = new BlockTurtle(FabricBlockSettings.of(Material.STONE) |         public static final BlockEntityType<TileSpeaker> SPEAKER = ofBlock(ModBlocks.SPEAKER, TileSpeaker::new); | ||||||
|             .hardness(2.5f) |         public static final BlockEntityType<TileDiskDrive> DISK_DRIVE = ofBlock(ModBlocks.DISK_DRIVE, TileDiskDrive::new); | ||||||
|             .build(), ComputerFamily.Advanced, TileTurtle.FACTORY_ADVANCED); |         public static final BlockEntityType<TilePrinter> PRINTER = ofBlock(ModBlocks.PRINTER, TilePrinter::new); | ||||||
|  |         public static final BlockEntityType<TileWiredModemFull> WIRED_MODEM_FULL = ofBlock(ModBlocks.WIRED_MODEM_FULL, TileWiredModemFull::new); | ||||||
|  |         public static final BlockEntityType<TileCable> CABLE = ofBlock(ModBlocks.CABLE, TileCable::new); | ||||||
|  |  | ||||||
|         registry.add(new Identifier(ComputerCraft.MOD_ID, "turtle_normal"), ComputerCraft.Blocks.turtleNormal); |         public static final BlockEntityType<TileWirelessModem> WIRELESS_MODEM_NORMAL = ofBlock(ModBlocks.WIRELESS_EM_NORMAL, f -> new TileWirelessModem(f, | ||||||
|         registry.add(new Identifier(ComputerCraft.MOD_ID, "turtle_advanced"), ComputerCraft.Blocks.turtleAdvanced); |                                                                                                                                                         false)); | ||||||
|  |         public static final BlockEntityType<TileWirelessModem> WIRELESS_MODEM_ADVANCED = ofBlock(ModBlocks.WIRELESS_EM_ADVANCED, f -> new TileWirelessModem(f, true)); | ||||||
|         // 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 void registerTileEntities(MutableRegistry<BlockEntityType<?>> registry) { |     public static final class ModItems { | ||||||
|         // Computers |         private static final ItemGroup mainItemGroup = new CreativeTabMain(); | ||||||
|         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); |  | ||||||
|  |  | ||||||
|         // Turtles |         private static Item.Settings properties() { | ||||||
|         registry.add(TileTurtle.FACTORY_NORMAL.getId(), TileTurtle.FACTORY_NORMAL); |             return new Item.Settings().group(mainItemGroup); | ||||||
|         registry.add(TileTurtle.FACTORY_ADVANCED.getId(), TileTurtle.FACTORY_ADVANCED); |         } | ||||||
|  |  | ||||||
|         // Peripherals |         private static <B extends Block, I extends Item> I ofBlock(B parent, BiFunction<B, Item.Settings, I> supplier) { | ||||||
|         registry.add(TileSpeaker.FACTORY.getId(), TileSpeaker.FACTORY); |             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(TileDiskDrive.FACTORY.getId(), TileDiskDrive.FACTORY); |         } | ||||||
|         registry.add(TilePrinter.FACTORY.getId(), TilePrinter.FACTORY); |  | ||||||
|  |  | ||||||
|         registry.add(TileMonitor.FACTORY_NORMAL.getId(), TileMonitor.FACTORY_NORMAL); |         public static final ItemComputer COMPUTER_NORMAL = ofBlock(ModBlocks.COMPUTER_NORMAL, ItemComputer::new); | ||||||
|         registry.add(TileMonitor.FACTORY_ADVANCED.getId(), TileMonitor.FACTORY_ADVANCED); |         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 extends Item> 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); |         public static final ItemPocketComputer POCKET_COMPUTER_NORMAL = register("pocket_computer_normal", | ||||||
|         registry.add(TileWirelessModem.FACTORY_ADVANCED.getId(), TileWirelessModem.FACTORY_ADVANCED); |                                                                                  new ItemPocketComputer(properties().maxCount(1), | ||||||
|         registry.add(TileCable.FACTORY.getId(), TileCable.FACTORY); |                                                                                                         ComputerFamily.NORMAL)); | ||||||
|         registry.add(TileWiredModemFull.FACTORY.getId(), TileWiredModemFull.FACTORY); |         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<Item> registry) { |     public static class ModEntities { | ||||||
|         // Computer |         public static final EntityType<TurtlePlayer> TURTLE_PLAYER = net.minecraft.util.registry.Registry.register(net.minecraft.util.registry.Registry.ENTITY_TYPE, new Identifier(MOD_ID, "turtle_player"), EntityType.Builder.<TurtlePlayer>create( | ||||||
|         ComputerCraft.Items.computerNormal = new ItemComputer(ComputerCraft.Blocks.computerNormal, defaultItem()); |             SpawnGroup.MISC).disableSaving() | ||||||
|         ComputerCraft.Items.computerAdvanced = new ItemComputer(ComputerCraft.Blocks.computerAdvanced, defaultItem()); |                             .disableSummon() | ||||||
|         ComputerCraft.Items.computerCommand = new ItemComputer(ComputerCraft.Blocks.computerCommand, defaultItem()); |                             .setDimensions( | ||||||
|  |                                 0, | ||||||
|         registerItemBlock(registry, ComputerCraft.Items.computerNormal); |                                 0) | ||||||
|         registerItemBlock(registry, ComputerCraft.Items.computerAdvanced); |                             .build( | ||||||
|         registerItemBlock(registry, ComputerCraft.Items.computerCommand); |                                 ComputerCraft.MOD_ID + ":turtle_player")); | ||||||
|  |  | ||||||
|         // 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(); |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private static Item.Settings defaultItem() { |     public static class ModContainers { | ||||||
|         return new Item.Settings().group(mainItemGroup); |         private static <B extends ScreenHandler, T extends ScreenHandlerType<B>> 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<Item> registry, BlockItem item) { |         public static final ScreenHandlerType<ContainerComputer> COMPUTER = register("computer", | ||||||
|         registry.add(net.minecraft.util.registry.Registry.BLOCK.getId(item.getBlock()), item); |                                                                                      ContainerData.toType(ComputerContainerData::new, | ||||||
|     } |                                                                                                           ContainerComputer::new)); | ||||||
|  |  | ||||||
|     private static void registerTurtleUpgrades() { |         public static final ScreenHandlerType<ContainerPocketComputer> POCKET_COMPUTER = register("pocket_computer", | ||||||
|         // Upgrades |                                                                                                   ContainerData.toType(ComputerContainerData::new, | ||||||
|         ComputerCraft.TurtleUpgrades.wirelessModemNormal = new TurtleModem(false, new Identifier(ComputerCraft.MOD_ID, "wireless_modem_normal")); |                                                                                                                        ContainerPocketComputer::new)); | ||||||
|         ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.wirelessModemNormal); |  | ||||||
|  |  | ||||||
|         ComputerCraft.TurtleUpgrades.wirelessModemAdvanced = new TurtleModem(true, new Identifier(ComputerCraft.MOD_ID, "wireless_modem_advanced")); |         public static final ScreenHandlerType<ContainerTurtle> TURTLE = register("turtle", | ||||||
|         ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.wirelessModemAdvanced); |                                                                                  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")); |         public static final ScreenHandlerType<ContainerDiskDrive> DISK_DRIVE = register("disk_drive", | ||||||
|         ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.craftingTable); |                                                                                         new ScreenHandlerType<>(ContainerDiskDrive::new)); | ||||||
|  |  | ||||||
|         ComputerCraft.TurtleUpgrades.diamondSword = new TurtleSword(new Identifier("minecraft", "diamond_sword"), Items.DIAMOND_SWORD); |         public static final ScreenHandlerType<ContainerPrinter> PRINTER = register("printer", new ScreenHandlerType<>(ContainerPrinter::new)); | ||||||
|         ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.diamondSword); |  | ||||||
|  |  | ||||||
|         ComputerCraft.TurtleUpgrades.diamondShovel = new TurtleShovel(new Identifier("minecraft", "diamond_shovel"), Items.DIAMOND_SHOVEL); |         public static final ScreenHandlerType<ContainerHeldItem> PRINTOUT = register("printout", | ||||||
|         ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.diamondShovel); |                                                                                      ContainerData.toType(HeldItemContainerData::new, | ||||||
|  |                                                                                                           ContainerHeldItem::createPrintout)); | ||||||
|  |  | ||||||
|         ComputerCraft.TurtleUpgrades.diamondPickaxe = new TurtleTool(new Identifier("minecraft", "diamond_pickaxe"), Items.DIAMOND_PICKAXE); |         public static final ScreenHandlerType<ContainerViewComputer> VIEW_COMPUTER = register("view_computer", | ||||||
|         ComputerCraftAPI.registerTurtleUpgrade(ComputerCraft.TurtleUpgrades.diamondPickaxe); |                                                                                               ContainerData.toType(ViewComputerContainerData::new, | ||||||
|  |                                                                                                                    ContainerViewComputer::new)); | ||||||
|         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<RecipeSerializer<?>> 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); |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -26,9 +26,9 @@ import java.util.Random; | |||||||
|  |  | ||||||
| public abstract class BlockGeneric extends Block | public abstract class BlockGeneric extends Block | ||||||
| { | { | ||||||
|     private final RegistryObject<? extends BlockEntityType<? extends TileGeneric>> type; |     private final BlockEntityType<? extends TileGeneric> type; | ||||||
|  |  | ||||||
|     public BlockGeneric( Settings settings, RegistryObject<? extends BlockEntityType<? extends TileGeneric>> type ) |     public BlockGeneric( Settings settings, BlockEntityType<? extends TileGeneric> type ) | ||||||
|     { |     { | ||||||
|         super( settings ); |         super( settings ); | ||||||
|         this.type = type; |         this.type = type; | ||||||
|   | |||||||
| @@ -28,7 +28,7 @@ public class BlockComputer extends BlockComputerBase<TileComputer> | |||||||
|     public static final EnumProperty<ComputerState> STATE = EnumProperty.of( "state", ComputerState.class ); |     public static final EnumProperty<ComputerState> STATE = EnumProperty.of( "state", ComputerState.class ); | ||||||
|     public static final DirectionProperty FACING = Properties.HORIZONTAL_FACING; |     public static final DirectionProperty FACING = Properties.HORIZONTAL_FACING; | ||||||
|  |  | ||||||
|     public BlockComputer( Settings settings, ComputerFamily family, RegistryObject<? extends BlockEntityType<? extends TileComputer>> type ) |     public BlockComputer( Settings settings, ComputerFamily family, BlockEntityType<? extends TileComputer> type ) | ||||||
|     { |     { | ||||||
|         super( settings, family, type ); |         super( settings, family, type ); | ||||||
|         setDefaultState( getDefaultState() |         setDefaultState( getDefaultState() | ||||||
|   | |||||||
| @@ -40,7 +40,7 @@ public abstract class BlockComputerBase<T extends TileComputerBase> extends Bloc | |||||||
|  |  | ||||||
|     private final ComputerFamily family; |     private final ComputerFamily family; | ||||||
|  |  | ||||||
|     protected BlockComputerBase( Settings settings, ComputerFamily family, RegistryObject<? extends BlockEntityType<? extends T>> type ) |     protected BlockComputerBase( Settings settings, ComputerFamily family, BlockEntityType<? extends T> type ) | ||||||
|     { |     { | ||||||
|         super( settings, type ); |         super( settings, type ); | ||||||
|         this.family = family; |         this.family = family; | ||||||
|   | |||||||
| @@ -7,8 +7,11 @@ package dan200.computercraft.shared.peripheral.modem.wired; | |||||||
|  |  | ||||||
| import dan200.computercraft.shared.Registry; | import dan200.computercraft.shared.Registry; | ||||||
| import dan200.computercraft.shared.common.BlockGeneric; | import dan200.computercraft.shared.common.BlockGeneric; | ||||||
|  | import dan200.computercraft.shared.peripheral.monitor.TileMonitor; | ||||||
|  |  | ||||||
| import net.minecraft.block.Block; | import net.minecraft.block.Block; | ||||||
| import net.minecraft.block.BlockState; | import net.minecraft.block.BlockState; | ||||||
|  | import net.minecraft.block.entity.BlockEntityType; | ||||||
| import net.minecraft.state.StateManager; | import net.minecraft.state.StateManager; | ||||||
| import net.minecraft.state.property.BooleanProperty; | 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 MODEM_ON = BooleanProperty.of( "modem" ); | ||||||
|     public static final BooleanProperty PERIPHERAL_ON = BooleanProperty.of( "peripheral" ); |     public static final BooleanProperty PERIPHERAL_ON = BooleanProperty.of( "peripheral" ); | ||||||
|  |  | ||||||
|     public BlockWiredModemFull( Settings settings ) |     public BlockWiredModemFull( Settings settings , BlockEntityType<? extends TileWiredModemFull> type ) | ||||||
|     { |     { | ||||||
|         super( settings, Registry.ModTiles.WIRED_MODEM_FULL ); |         super( settings, type); | ||||||
|         setDefaultState( getStateManager().getDefaultState() |         setDefaultState( getStateManager().getDefaultState() | ||||||
|             .with( MODEM_ON, false ) |             .with( MODEM_ON, false ) | ||||||
|             .with( PERIPHERAL_ON, false ) |             .with( PERIPHERAL_ON, false ) | ||||||
|   | |||||||
| @@ -5,8 +5,17 @@ | |||||||
|  */ |  */ | ||||||
| package dan200.computercraft.shared.peripheral.modem.wireless; | 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.common.BlockGeneric; | ||||||
| import dan200.computercraft.shared.peripheral.modem.ModemShapes; | import dan200.computercraft.shared.peripheral.modem.ModemShapes; | ||||||
|  |  | ||||||
| import net.minecraft.block.Block; | import net.minecraft.block.Block; | ||||||
| import net.minecraft.block.BlockState; | import net.minecraft.block.BlockState; | ||||||
| import net.minecraft.block.ShapeContext; | import net.minecraft.block.ShapeContext; | ||||||
| @@ -24,19 +33,13 @@ import net.minecraft.util.shape.VoxelShape; | |||||||
| import net.minecraft.world.BlockView; | import net.minecraft.world.BlockView; | ||||||
| import net.minecraft.world.WorldAccess; | import net.minecraft.world.WorldAccess; | ||||||
| import net.minecraft.world.WorldView; | 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 class BlockWirelessModem extends BlockGeneric implements Waterloggable | ||||||
| { | { | ||||||
|     public static final DirectionProperty FACING = Properties.FACING; |     public static final DirectionProperty FACING = Properties.FACING; | ||||||
|     public static final BooleanProperty ON = BooleanProperty.of( "on" ); |     public static final BooleanProperty ON = BooleanProperty.of( "on" ); | ||||||
|  |  | ||||||
|     public BlockWirelessModem( Settings settings, RegistryObject<? extends BlockEntityType<? extends TileWirelessModem>> type ) |     public BlockWirelessModem( Settings settings, BlockEntityType<? extends TileWirelessModem> type ) | ||||||
|     { |     { | ||||||
|         super( settings, type ); |         super( settings, type ); | ||||||
|         setDefaultState( getStateManager().getDefaultState() |         setDefaultState( getStateManager().getDefaultState() | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ public class BlockMonitor extends BlockGeneric | |||||||
|  |  | ||||||
|     static final EnumProperty<MonitorEdgeState> STATE = EnumProperty.of( "state", MonitorEdgeState.class ); |     static final EnumProperty<MonitorEdgeState> STATE = EnumProperty.of( "state", MonitorEdgeState.class ); | ||||||
|  |  | ||||||
|     public BlockMonitor( Settings settings, RegistryObject<? extends BlockEntityType<? extends TileMonitor>> type ) |     public BlockMonitor( Settings settings, BlockEntityType<? extends TileMonitor> type ) | ||||||
|     { |     { | ||||||
|         super( settings, type ); |         super( settings, type ); | ||||||
|         // TODO: Test underwater - do we need isSolid at all? |         // TODO: Test underwater - do we need isSolid at all? | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ public class ContainerPrinter extends ScreenHandler | |||||||
|  |  | ||||||
|     private ContainerPrinter( int id, PlayerInventory player, Inventory inventory, PropertyDelegate properties ) |     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.properties = properties; | ||||||
|         this.inventory = inventory; |         this.inventory = inventory; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -56,7 +56,7 @@ public class BlockTurtle extends BlockComputerBase<TileTurtle> implements Waterl | |||||||
|         0.875, 0.875, 0.875 |         0.875, 0.875, 0.875 | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|     public BlockTurtle( Settings settings, ComputerFamily family, RegistryObject<? extends BlockEntityType<? extends TileTurtle>> type ) |     public BlockTurtle( Settings settings, ComputerFamily family, BlockEntityType<? extends TileTurtle> type ) | ||||||
|     { |     { | ||||||
|         super( settings, family, type ); |         super( settings, family, type ); | ||||||
|         setDefaultState( getStateManager().getDefaultState() |         setDefaultState( getStateManager().getDefaultState() | ||||||
|   | |||||||
| @@ -7,6 +7,7 @@ package dan200.computercraft.shared.turtle.core; | |||||||
|  |  | ||||||
| import com.mojang.authlib.GameProfile; | import com.mojang.authlib.GameProfile; | ||||||
| import dan200.computercraft.ComputerCraft; | import dan200.computercraft.ComputerCraft; | ||||||
|  | import dan200.computercraft.api.turtle.FakePlayer; | ||||||
| import dan200.computercraft.api.turtle.ITurtleAccess; | import dan200.computercraft.api.turtle.ITurtleAccess; | ||||||
| import dan200.computercraft.shared.Registry; | import dan200.computercraft.shared.Registry; | ||||||
| import dan200.computercraft.shared.util.FakeNetHandler; | import dan200.computercraft.shared.util.FakeNetHandler; | ||||||
|   | |||||||
| @@ -14,21 +14,21 @@ import java.util.function.Function; | |||||||
| import java.util.function.Supplier; | 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 <T> The type of the produced tile entity. |  * @param <T> The type of the produced tile entity. | ||||||
|  */ |  */ | ||||||
| public final class FixedPointTileEntityType<T extends BlockEntity> extends BlockEntityType<T> | public final class FixedPointTileEntityType<T extends BlockEntity> extends BlockEntityType<T> | ||||||
| { | { | ||||||
|     private final Supplier<? extends Block> block; |     private final Block block; | ||||||
|  |  | ||||||
|     private FixedPointTileEntityType( Supplier<? extends Block> block, Supplier<T> builder ) |     private FixedPointTileEntityType( Block block, Supplier<T> builder ) | ||||||
|     { |     { | ||||||
|         super( builder, Collections.emptySet(), null ); |         super( builder, Collections.emptySet(), null ); | ||||||
|         this.block = block; |         this.block = block; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public static <T extends BlockEntity> FixedPointTileEntityType<T> create( Supplier<? extends Block> block, Function<BlockEntityType<T>, T> builder ) |     public static <T extends BlockEntity> FixedPointTileEntityType<T> create( Block block, Function<BlockEntityType<T>, T> builder ) | ||||||
|     { |     { | ||||||
|         return new FixedPointSupplier<>( block, builder ).factory; |         return new FixedPointSupplier<>( block, builder ).factory; | ||||||
|     } |     } | ||||||
| @@ -36,7 +36,7 @@ public final class FixedPointTileEntityType<T extends BlockEntity> extends Block | |||||||
|     @Override |     @Override | ||||||
|     public boolean supports( @Nonnull Block block ) |     public boolean supports( @Nonnull Block block ) | ||||||
|     { |     { | ||||||
|         return block == this.block.get(); |         return block == this.block; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private static final class FixedPointSupplier<T extends BlockEntity> implements Supplier<T> |     private static final class FixedPointSupplier<T extends BlockEntity> implements Supplier<T> | ||||||
| @@ -44,7 +44,7 @@ public final class FixedPointTileEntityType<T extends BlockEntity> extends Block | |||||||
|         final FixedPointTileEntityType<T> factory; |         final FixedPointTileEntityType<T> factory; | ||||||
|         private final Function<BlockEntityType<T>, T> builder; |         private final Function<BlockEntityType<T>, T> builder; | ||||||
|  |  | ||||||
|         private FixedPointSupplier( Supplier<? extends Block> block, Function<BlockEntityType<T>, T> builder ) |         private FixedPointSupplier( Block block, Function<BlockEntityType<T>, T> builder ) | ||||||
|         { |         { | ||||||
|             factory = new FixedPointTileEntityType<>( block, this ); |             factory = new FixedPointTileEntityType<>( block, this ); | ||||||
|             this.builder = builder; |             this.builder = builder; | ||||||
|   | |||||||
| @@ -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 method net/minecraft/client/texture/TextureManager bindTextureInner (Lnet/minecraft/util/Identifier;)V | ||||||
| accessible field net/minecraft/entity/Entity pos Lnet/minecraft/util/math/Vec3d; | 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; | extendable method net/minecraft/entity/Entity getCameraPosVec (F)Lnet/minecraft/util/math/Vec3d; | ||||||
|  | accessible method net/minecraft/screen/ScreenHandlerType <init> (Lnet/minecraft/screen/ScreenHandlerType$Factory;)V | ||||||
|  | accessible class net/minecraft/screen/ScreenHandlerType$Factory | ||||||
|   | |||||||
| @@ -1,15 +0,0 @@ | |||||||
| { |  | ||||||
|     "required": true, |  | ||||||
|     "package": "dan200.computercraft.shared.mixin", |  | ||||||
|     "compatibilityLevel": "JAVA_8", |  | ||||||
|     "mixins": [ |  | ||||||
|         "MixinFirstPersonRenderer", |  | ||||||
|         "MixinItemFrameEntityRenderer", |  | ||||||
|         "MixinMinecraftGame", |  | ||||||
|         "MixinScreen", |  | ||||||
|         "MixinWorldRenderer" |  | ||||||
|     ], |  | ||||||
|     "injectors": { |  | ||||||
|         "defaultRequire": 1 |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @@ -1,14 +0,0 @@ | |||||||
| { |  | ||||||
|     "required": true, |  | ||||||
|     "package": "dan200.computercraft.shared.mixin", |  | ||||||
|     "compatibilityLevel": "JAVA_8", |  | ||||||
|     "mixins": [ |  | ||||||
|         "MixinBlock", |  | ||||||
|         "MixinEntity", |  | ||||||
|         "MixinServerWorld", |  | ||||||
|         "MixinWorld" |  | ||||||
|     ], |  | ||||||
|     "injectors": { |  | ||||||
|         "defaultRequire": 1 |  | ||||||
|     } |  | ||||||
| } |  | ||||||
		Reference in New Issue
	
	Block a user
	 Devan-Kerman
					Devan-Kerman