diff --git a/build.gradle b/build.gradle index d9bfead78..e3185148a 100755 --- a/build.gradle +++ b/build.gradle @@ -26,6 +26,7 @@ repositories { apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' +apply from: 'https://raw.githubusercontent.com/SizableShrimp/Forge-Class-Remapper/main/classremapper.gradle' version = '1.10.0' def env = System.getenv() @@ -35,10 +36,14 @@ if (env.BUILD_NUMBER) { group = 'com.refinedmods' archivesBaseName = 'refinedstorage' -java.toolchain.languageVersion = JavaLanguageVersion.of(8) +java.toolchain.languageVersion = JavaLanguageVersion.of(17) + +tasks.withType(JavaCompile) { + options.compilerArgs << "-Xmaxerrs" << "999" +} minecraft { - mappings channel: 'official', version: '1.16.5' + mappings channel: 'official', version: '1.18.1' accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') runs { @@ -53,12 +58,6 @@ minecraft { } } - intellijClient { - parent runs.client - ideaModule "${project.name}.main" - environment 'MOD_CLASSES', "${project.file("out/production/resources").canonicalPath};${project.file("out/production/classes").canonicalPath}" - } - server { workingDirectory project.file('run') property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' @@ -96,19 +95,7 @@ processResources { } dependencies { - minecraft 'net.minecraftforge:forge:1.16.5-36.1.31' - - compileOnly fg.deobf("mezz.jei:jei-1.16.5:7.7.0.106:api") - runtimeOnly fg.deobf("mezz.jei:jei-1.16.5:7.7.0.106") - - compileOnly fg.deobf('curse.maven:mouse-tweaks-60089:3202662') - - compileOnly fg.deobf('curse.maven:crafting-tweaks-233071:3330406') - - runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:1.16.5-4.0.5.2") - compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:1.16.5-4.0.5.2:api") - - /*minecraft 'net.minecraftforge:forge:1.18.1-39.0.0' + minecraft 'net.minecraftforge:forge:1.18.1-39.0.0' compileOnly fg.deobf("mezz.jei:jei-1.18.1:9.1.0.41:api") runtimeOnly fg.deobf("mezz.jei:jei-1.18.1:9.1.0.41") @@ -118,11 +105,7 @@ dependencies { compileOnly fg.deobf('curse.maven:crafting-tweaks-233071:3545611') runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:1.18-5.0.2.4") - compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:1.18-5.0.2.4:api")*/ - - testImplementation('org.junit.jupiter:junit-jupiter-api:5.6.2') - testRuntimeOnly('org.junit.jupiter:junit-jupiter-engine:5.6.2') - testImplementation group: 'org.assertj', name: 'assertj-core', version: '3.16.1' + compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:1.18-5.0.2.4:api") } jar { diff --git a/src/main/java/com/refinedmods/refinedstorage/RS.java b/src/main/java/com/refinedmods/refinedstorage/RS.java index d39a983eb..05f21f684 100644 --- a/src/main/java/com/refinedmods/refinedstorage/RS.java +++ b/src/main/java/com/refinedmods/refinedstorage/RS.java @@ -10,10 +10,10 @@ import com.refinedmods.refinedstorage.network.NetworkHandler; import com.refinedmods.refinedstorage.setup.ClientSetup; import com.refinedmods.refinedstorage.setup.CommonSetup; import com.refinedmods.refinedstorage.setup.ServerSetup; -import net.minecraft.inventory.container.ContainerType; -import net.minecraft.item.ItemGroup; -import net.minecraft.item.crafting.IRecipeSerializer; -import net.minecraft.tileentity.TileEntityType; +import net.minecraft.world.inventory.MenuType; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.DistExecutor; @@ -28,7 +28,7 @@ public final class RS { public static final String NAME = "Refined Storage"; public static final NetworkHandler NETWORK_HANDLER = new NetworkHandler(); - public static final ItemGroup MAIN_GROUP = new MainItemGroup(); + public static final CreativeModeTab MAIN_GROUP = new MainItemGroup(); public static final ServerConfig SERVER_CONFIG = new ServerConfig(); public static final ClientConfig CLIENT_CONFIG = new ClientConfig(); @@ -46,9 +46,10 @@ public final class RS { RSLootFunctions.register(); FMLJavaModLoadingContext.get().getModEventBus().addListener(commonSetup::onCommonSetup); - FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(TileEntityType.class, commonSetup::onRegisterTiles); - FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(IRecipeSerializer.class, commonSetup::onRegisterRecipeSerializers); - FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(ContainerType.class, commonSetup::onRegisterContainers); + FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(BlockEntityType.class, commonSetup::onRegisterTiles); + FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(RecipeSerializer.class, commonSetup::onRegisterRecipeSerializers); + FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(MenuType.class, commonSetup::onRegisterContainers); + FMLJavaModLoadingContext.get().getModEventBus().addListener(commonSetup::onRegisterCapabilities); FMLJavaModLoadingContext.get().getModEventBus().register(new DataGenerators()); FMLJavaModLoadingContext.get().getModEventBus().register(new CuriosIntegration()); diff --git a/src/main/java/com/refinedmods/refinedstorage/RSBlocks.java b/src/main/java/com/refinedmods/refinedstorage/RSBlocks.java index 5352ecca8..27c7c083e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/RSBlocks.java +++ b/src/main/java/com/refinedmods/refinedstorage/RSBlocks.java @@ -7,11 +7,11 @@ import com.refinedmods.refinedstorage.apiimpl.storage.ItemStorageType; import com.refinedmods.refinedstorage.block.*; import com.refinedmods.refinedstorage.item.blockitem.PortableGridBlockItem; import com.refinedmods.refinedstorage.util.ColorMap; -import net.minecraft.block.Block; -import net.minecraftforge.fml.RegistryObject; +import net.minecraft.world.level.block.Block; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; import java.util.ArrayList; import java.util.EnumMap; @@ -19,13 +19,8 @@ import java.util.List; import java.util.Map; public final class RSBlocks { - private static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, RS.ID); - - private static final String GRID_SUFFIX = "_grid"; - public static final RegistryObject IMPORTER; public static final RegistryObject EXPORTER; - public static final RegistryObject QUARTZ_ENRICHED_IRON; public static final RegistryObject MACHINE_CASING; public static final RegistryObject CABLE; @@ -40,7 +35,8 @@ public final class RSBlocks { public static final RegistryObject DESTRUCTOR; public static final RegistryObject PORTABLE_GRID; public static final RegistryObject CREATIVE_PORTABLE_GRID; - + public static final List> COLORED_BLOCKS = new ArrayList<>(); + private static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, RS.ID); public static final ColorMap CRAFTER = new ColorMap<>(BLOCKS); public static final ColorMap RELAY = new ColorMap<>(BLOCKS); public static final ColorMap NETWORK_TRANSMITTER = new ColorMap<>(BLOCKS); @@ -57,8 +53,7 @@ public final class RSBlocks { public static final ColorMap CRAFTER_MANAGER = new ColorMap<>(BLOCKS); public static final ColorMap CRAFTING_MONITOR = new ColorMap<>(BLOCKS); public static final ColorMap DETECTOR = new ColorMap<>(BLOCKS); - - public static final List> COLORED_BLOCKS = new ArrayList<>(); + private static final String GRID_SUFFIX = "_grid"; static { QUARTZ_ENRICHED_IRON = BLOCKS.register("quartz_enriched_iron_block", QuartzEnrichedIronBlock::new); diff --git a/src/main/java/com/refinedmods/refinedstorage/RSContainers.java b/src/main/java/com/refinedmods/refinedstorage/RSContainers.java index 1de7c6336..5c0b8851e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/RSContainers.java +++ b/src/main/java/com/refinedmods/refinedstorage/RSContainers.java @@ -1,59 +1,59 @@ package com.refinedmods.refinedstorage; import com.refinedmods.refinedstorage.container.*; -import net.minecraft.inventory.container.ContainerType; +import net.minecraft.world.inventory.MenuType; import net.minecraftforge.registries.ObjectHolder; @ObjectHolder(RS.ID) public final class RSContainers { @ObjectHolder("controller") - public static final ContainerType CONTROLLER = null; + public static final MenuType CONTROLLER = null; @ObjectHolder("grid") - public static final ContainerType GRID = null; + public static final MenuType GRID = null; @ObjectHolder("detector") - public static final ContainerType DETECTOR = null; + public static final MenuType DETECTOR = null; @ObjectHolder("exporter") - public static final ContainerType EXPORTER = null; + public static final MenuType EXPORTER = null; @ObjectHolder("external_storage") - public static final ContainerType EXTERNAL_STORAGE = null; + public static final MenuType EXTERNAL_STORAGE = null; @ObjectHolder("filter") - public static final ContainerType FILTER = null; + public static final MenuType FILTER = null; @ObjectHolder("importer") - public static final ContainerType IMPORTER = null; + public static final MenuType IMPORTER = null; @ObjectHolder("network_transmitter") - public static final ContainerType NETWORK_TRANSMITTER = null; + public static final MenuType NETWORK_TRANSMITTER = null; @ObjectHolder("relay") - public static final ContainerType RELAY = null; + public static final MenuType RELAY = null; @ObjectHolder("disk_drive") - public static final ContainerType DISK_DRIVE = null; + public static final MenuType DISK_DRIVE = null; @ObjectHolder("storage_block") - public static final ContainerType STORAGE_BLOCK = null; + public static final MenuType STORAGE_BLOCK = null; @ObjectHolder("fluid_storage_block") - public static final ContainerType FLUID_STORAGE_BLOCK = null; + public static final MenuType FLUID_STORAGE_BLOCK = null; @ObjectHolder("security_manager") - public static final ContainerType SECURITY_MANAGER = null; + public static final MenuType SECURITY_MANAGER = null; @ObjectHolder("interface") - public static final ContainerType INTERFACE = null; + public static final MenuType INTERFACE = null; @ObjectHolder("fluid_interface") - public static final ContainerType FLUID_INTERFACE = null; + public static final MenuType FLUID_INTERFACE = null; @ObjectHolder("wireless_transmitter") - public static final ContainerType WIRELESS_TRANSMITTER = null; + public static final MenuType WIRELESS_TRANSMITTER = null; @ObjectHolder("storage_monitor") - public static final ContainerType STORAGE_MONITOR = null; + public static final MenuType STORAGE_MONITOR = null; @ObjectHolder("constructor") - public static final ContainerType CONSTRUCTOR = null; + public static final MenuType CONSTRUCTOR = null; @ObjectHolder("destructor") - public static final ContainerType DESTRUCTOR = null; + public static final MenuType DESTRUCTOR = null; @ObjectHolder("disk_manipulator") - public static final ContainerType DISK_MANIPULATOR = null; + public static final MenuType DISK_MANIPULATOR = null; @ObjectHolder("crafter") - public static final ContainerType CRAFTER = null; + public static final MenuType CRAFTER = null; @ObjectHolder("crafter_manager") - public static final ContainerType CRAFTER_MANAGER = null; + public static final MenuType CRAFTER_MANAGER = null; @ObjectHolder("crafting_monitor") - public static final ContainerType CRAFTING_MONITOR = null; + public static final MenuType CRAFTING_MONITOR = null; @ObjectHolder("wireless_crafting_monitor") - public static final ContainerType WIRELESS_CRAFTING_MONITOR = null; + public static final MenuType WIRELESS_CRAFTING_MONITOR = null; private RSContainers() { } diff --git a/src/main/java/com/refinedmods/refinedstorage/RSItems.java b/src/main/java/com/refinedmods/refinedstorage/RSItems.java index c449c7ed5..9fcce9fc8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/RSItems.java +++ b/src/main/java/com/refinedmods/refinedstorage/RSItems.java @@ -7,16 +7,16 @@ import com.refinedmods.refinedstorage.item.*; import com.refinedmods.refinedstorage.item.blockitem.*; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.ColorMap; -import net.minecraft.item.BlockItem; -import net.minecraft.item.Item; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; import net.minecraftforge.common.Tags; -import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; import java.util.*; @@ -167,13 +167,13 @@ public final class RSItems { LATE_REGISTRATION.add(() -> { RSBlocks.CONTROLLER.forEach((color, block) -> { if (color != ColorMap.DEFAULT_COLOR) { - CONTROLLER.put(color, ITEMS.register(RSBlocks.CONTROLLER.get(color).getId().getPath(), () -> new ControllerBlockItem(RSBlocks.CONTROLLER.get(color).get(), color, new TranslationTextComponent(RSBlocks.CONTROLLER.get(ColorMap.DEFAULT_COLOR).get().getDescriptionId())))); + CONTROLLER.put(color, ITEMS.register(RSBlocks.CONTROLLER.get(color).getId().getPath(), () -> new ControllerBlockItem(RSBlocks.CONTROLLER.get(color).get(), color, new TranslatableComponent(RSBlocks.CONTROLLER.get(ColorMap.DEFAULT_COLOR).get().getDescriptionId())))); } }); RSBlocks.CREATIVE_CONTROLLER.forEach((color, block) -> { if (color != ColorMap.DEFAULT_COLOR) { - CREATIVE_CONTROLLER.put(color, ITEMS.register(RSBlocks.CREATIVE_CONTROLLER.get(color).getId().getPath(), () -> new ControllerBlockItem(RSBlocks.CREATIVE_CONTROLLER.get(color).get(), color, new TranslationTextComponent(RSBlocks.CREATIVE_CONTROLLER.get(ColorMap.DEFAULT_COLOR).get().getDescriptionId())))); + CREATIVE_CONTROLLER.put(color, ITEMS.register(RSBlocks.CREATIVE_CONTROLLER.get(color).getId().getPath(), () -> new ControllerBlockItem(RSBlocks.CREATIVE_CONTROLLER.get(color).get(), color, new TranslatableComponent(RSBlocks.CREATIVE_CONTROLLER.get(ColorMap.DEFAULT_COLOR).get().getDescriptionId())))); } }); }); diff --git a/src/main/java/com/refinedmods/refinedstorage/RSKeyBindings.java b/src/main/java/com/refinedmods/refinedstorage/RSKeyBindings.java index e96a8a3fb..71eb85c9c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/RSKeyBindings.java +++ b/src/main/java/com/refinedmods/refinedstorage/RSKeyBindings.java @@ -1,54 +1,54 @@ package com.refinedmods.refinedstorage; -import net.minecraft.client.settings.KeyBinding; -import net.minecraft.client.util.InputMappings; +import com.mojang.blaze3d.platform.InputConstants; +import net.minecraft.client.KeyMapping; import net.minecraftforge.client.settings.KeyConflictContext; import net.minecraftforge.client.settings.KeyModifier; import org.lwjgl.glfw.GLFW; public final class RSKeyBindings { - public static final KeyBinding FOCUS_SEARCH_BAR = new KeyBinding( + public static final KeyMapping FOCUS_SEARCH_BAR = new KeyMapping( "key.refinedstorage.focusSearchBar", KeyConflictContext.GUI, - InputMappings.Type.KEYSYM, + InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_TAB, RS.NAME ); - public static final KeyBinding CLEAR_GRID_CRAFTING_MATRIX = new KeyBinding( + public static final KeyMapping CLEAR_GRID_CRAFTING_MATRIX = new KeyMapping( "key.refinedstorage.clearGridCraftingMatrix", KeyConflictContext.GUI, KeyModifier.CONTROL, - InputMappings.Type.KEYSYM, + InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_X, RS.NAME ); - public static final KeyBinding OPEN_WIRELESS_GRID = new KeyBinding( + public static final KeyMapping OPEN_WIRELESS_GRID = new KeyMapping( "key.refinedstorage.openWirelessGrid", KeyConflictContext.IN_GAME, - InputMappings.UNKNOWN, + InputConstants.UNKNOWN, RS.NAME ); - public static final KeyBinding OPEN_WIRELESS_FLUID_GRID = new KeyBinding( + public static final KeyMapping OPEN_WIRELESS_FLUID_GRID = new KeyMapping( "key.refinedstorage.openWirelessFluidGrid", KeyConflictContext.IN_GAME, - InputMappings.UNKNOWN, + InputConstants.UNKNOWN, RS.NAME ); - public static final KeyBinding OPEN_WIRELESS_CRAFTING_MONITOR = new KeyBinding( + public static final KeyMapping OPEN_WIRELESS_CRAFTING_MONITOR = new KeyMapping( "key.refinedstorage.openWirelessCraftingMonitor", KeyConflictContext.IN_GAME, - InputMappings.UNKNOWN, + InputConstants.UNKNOWN, RS.NAME ); - public static final KeyBinding OPEN_PORTABLE_GRID = new KeyBinding( + public static final KeyMapping OPEN_PORTABLE_GRID = new KeyMapping( "key.refinedstorage.openPortableGrid", KeyConflictContext.IN_GAME, - InputMappings.UNKNOWN, + InputConstants.UNKNOWN, RS.NAME ); diff --git a/src/main/java/com/refinedmods/refinedstorage/RSLootFunctions.java b/src/main/java/com/refinedmods/refinedstorage/RSLootFunctions.java index eb5037a24..ab4384483 100644 --- a/src/main/java/com/refinedmods/refinedstorage/RSLootFunctions.java +++ b/src/main/java/com/refinedmods/refinedstorage/RSLootFunctions.java @@ -4,39 +4,39 @@ import com.refinedmods.refinedstorage.loottable.ControllerLootFunction; import com.refinedmods.refinedstorage.loottable.CrafterLootFunction; import com.refinedmods.refinedstorage.loottable.PortableGridBlockLootFunction; import com.refinedmods.refinedstorage.loottable.StorageBlockLootFunction; -import net.minecraft.loot.LootFunctionType; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.registry.Registry; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType; public final class RSLootFunctions { - private static LootFunctionType storageBlock; - private static LootFunctionType portableGrid; - private static LootFunctionType crafter; - private static LootFunctionType controller; + private static LootItemFunctionType storageBlock; + private static LootItemFunctionType portableGrid; + private static LootItemFunctionType crafter; + private static LootItemFunctionType controller; private RSLootFunctions() { } public static void register() { - storageBlock = Registry.register(Registry.LOOT_FUNCTION_TYPE, new ResourceLocation(RS.ID, "storage_block"), new LootFunctionType(new StorageBlockLootFunction.Serializer())); - portableGrid = Registry.register(Registry.LOOT_FUNCTION_TYPE, new ResourceLocation(RS.ID, "portable_grid"), new LootFunctionType(new PortableGridBlockLootFunction.Serializer())); - crafter = Registry.register(Registry.LOOT_FUNCTION_TYPE, new ResourceLocation(RS.ID, "crafter"), new LootFunctionType(new CrafterLootFunction.Serializer())); - controller = Registry.register(Registry.LOOT_FUNCTION_TYPE, new ResourceLocation(RS.ID, "controller"), new LootFunctionType(new ControllerLootFunction.Serializer())); + storageBlock = Registry.register(Registry.LOOT_FUNCTION_TYPE, new ResourceLocation(RS.ID, "storage_block"), new LootItemFunctionType(new StorageBlockLootFunction.Serializer())); + portableGrid = Registry.register(Registry.LOOT_FUNCTION_TYPE, new ResourceLocation(RS.ID, "portable_grid"), new LootItemFunctionType(new PortableGridBlockLootFunction.Serializer())); + crafter = Registry.register(Registry.LOOT_FUNCTION_TYPE, new ResourceLocation(RS.ID, "crafter"), new LootItemFunctionType(new CrafterLootFunction.Serializer())); + controller = Registry.register(Registry.LOOT_FUNCTION_TYPE, new ResourceLocation(RS.ID, "controller"), new LootItemFunctionType(new ControllerLootFunction.Serializer())); } - public static LootFunctionType getStorageBlock() { + public static LootItemFunctionType getStorageBlock() { return storageBlock; } - public static LootFunctionType getPortableGrid() { + public static LootItemFunctionType getPortableGrid() { return portableGrid; } - public static LootFunctionType getCrafter() { + public static LootItemFunctionType getCrafter() { return crafter; } - public static LootFunctionType getController() { + public static LootItemFunctionType getController() { return controller; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/RSTiles.java b/src/main/java/com/refinedmods/refinedstorage/RSTiles.java index 66090ea83..e686a2b77 100644 --- a/src/main/java/com/refinedmods/refinedstorage/RSTiles.java +++ b/src/main/java/com/refinedmods/refinedstorage/RSTiles.java @@ -4,87 +4,87 @@ import com.refinedmods.refinedstorage.tile.*; import com.refinedmods.refinedstorage.tile.craftingmonitor.CraftingMonitorTile; import com.refinedmods.refinedstorage.tile.grid.GridTile; import com.refinedmods.refinedstorage.tile.grid.portable.PortableGridTile; -import net.minecraft.tileentity.TileEntityType; +import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraftforge.registries.ObjectHolder; @ObjectHolder(RS.ID) public final class RSTiles { @ObjectHolder("controller") - public static final TileEntityType CONTROLLER = null; + public static final BlockEntityType CONTROLLER = null; @ObjectHolder("creative_controller") - public static final TileEntityType CREATIVE_CONTROLLER = null; + public static final BlockEntityType CREATIVE_CONTROLLER = null; @ObjectHolder("detector") - public static final TileEntityType DETECTOR = null; + public static final BlockEntityType DETECTOR = null; @ObjectHolder("disk_drive") - public static final TileEntityType DISK_DRIVE = null; + public static final BlockEntityType DISK_DRIVE = null; @ObjectHolder("exporter") - public static final TileEntityType EXPORTER = null; + public static final BlockEntityType EXPORTER = null; @ObjectHolder("external_storage") - public static final TileEntityType EXTERNAL_STORAGE = null; + public static final BlockEntityType EXTERNAL_STORAGE = null; @ObjectHolder("grid") - public static final TileEntityType GRID = null; + public static final BlockEntityType GRID = null; @ObjectHolder("crafting_grid") - public static final TileEntityType CRAFTING_GRID = null; + public static final BlockEntityType CRAFTING_GRID = null; @ObjectHolder("pattern_grid") - public static final TileEntityType PATTERN_GRID = null; + public static final BlockEntityType PATTERN_GRID = null; @ObjectHolder("fluid_grid") - public static final TileEntityType FLUID_GRID = null; + public static final BlockEntityType FLUID_GRID = null; @ObjectHolder("importer") - public static final TileEntityType IMPORTER = null; + public static final BlockEntityType IMPORTER = null; @ObjectHolder("network_transmitter") - public static final TileEntityType NETWORK_TRANSMITTER = null; + public static final BlockEntityType NETWORK_TRANSMITTER = null; @ObjectHolder("network_receiver") - public static final TileEntityType NETWORK_RECEIVER = null; + public static final BlockEntityType NETWORK_RECEIVER = null; @ObjectHolder("relay") - public static final TileEntityType RELAY = null; + public static final BlockEntityType RELAY = null; @ObjectHolder("cable") - public static final TileEntityType CABLE = null; + public static final BlockEntityType CABLE = null; @ObjectHolder("1k_storage_block") - public static final TileEntityType ONE_K_STORAGE_BLOCK = null; + public static final BlockEntityType ONE_K_STORAGE_BLOCK = null; @ObjectHolder("4k_storage_block") - public static final TileEntityType FOUR_K_STORAGE_BLOCK = null; + public static final BlockEntityType FOUR_K_STORAGE_BLOCK = null; @ObjectHolder("16k_storage_block") - public static final TileEntityType SIXTEEN_K_STORAGE_BLOCK = null; + public static final BlockEntityType SIXTEEN_K_STORAGE_BLOCK = null; @ObjectHolder("64k_storage_block") - public static final TileEntityType SIXTY_FOUR_K_STORAGE_BLOCK = null; + public static final BlockEntityType SIXTY_FOUR_K_STORAGE_BLOCK = null; @ObjectHolder("creative_storage_block") - public static final TileEntityType CREATIVE_STORAGE_BLOCK = null; + public static final BlockEntityType CREATIVE_STORAGE_BLOCK = null; @ObjectHolder("64k_fluid_storage_block") - public static final TileEntityType SIXTY_FOUR_K_FLUID_STORAGE_BLOCK = null; + public static final BlockEntityType SIXTY_FOUR_K_FLUID_STORAGE_BLOCK = null; @ObjectHolder("256k_fluid_storage_block") - public static final TileEntityType TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_BLOCK = null; + public static final BlockEntityType TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_BLOCK = null; @ObjectHolder("1024k_fluid_storage_block") - public static final TileEntityType THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_BLOCK = null; + public static final BlockEntityType THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_BLOCK = null; @ObjectHolder("4096k_fluid_storage_block") - public static final TileEntityType FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK = null; + public static final BlockEntityType FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK = null; @ObjectHolder("creative_fluid_storage_block") - public static final TileEntityType CREATIVE_FLUID_STORAGE_BLOCK = null; + public static final BlockEntityType CREATIVE_FLUID_STORAGE_BLOCK = null; @ObjectHolder("security_manager") - public static final TileEntityType SECURITY_MANAGER = null; + public static final BlockEntityType SECURITY_MANAGER = null; @ObjectHolder("interface") - public static final TileEntityType INTERFACE = null; + public static final BlockEntityType INTERFACE = null; @ObjectHolder("fluid_interface") - public static final TileEntityType FLUID_INTERFACE = null; + public static final BlockEntityType FLUID_INTERFACE = null; @ObjectHolder("wireless_transmitter") - public static final TileEntityType WIRELESS_TRANSMITTER = null; + public static final BlockEntityType WIRELESS_TRANSMITTER = null; @ObjectHolder("storage_monitor") - public static final TileEntityType STORAGE_MONITOR = null; + public static final BlockEntityType STORAGE_MONITOR = null; @ObjectHolder("constructor") - public static final TileEntityType CONSTRUCTOR = null; + public static final BlockEntityType CONSTRUCTOR = null; @ObjectHolder("destructor") - public static final TileEntityType DESTRUCTOR = null; + public static final BlockEntityType DESTRUCTOR = null; @ObjectHolder("disk_manipulator") - public static final TileEntityType DISK_MANIPULATOR = null; + public static final BlockEntityType DISK_MANIPULATOR = null; @ObjectHolder("portable_grid") - public static final TileEntityType PORTABLE_GRID = null; + public static final BlockEntityType PORTABLE_GRID = null; @ObjectHolder("creative_portable_grid") - public static final TileEntityType CREATIVE_PORTABLE_GRID = null; + public static final BlockEntityType CREATIVE_PORTABLE_GRID = null; @ObjectHolder("crafter") - public static final TileEntityType CRAFTER = null; + public static final BlockEntityType CRAFTER = null; @ObjectHolder("crafter_manager") - public static final TileEntityType CRAFTER_MANAGER = null; + public static final BlockEntityType CRAFTER_MANAGER = null; @ObjectHolder("crafting_monitor") - public static final TileEntityType CRAFTING_MONITOR = null; + public static final BlockEntityType CRAFTING_MONITOR = null; private RSTiles() { } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/IRSAPI.java b/src/main/java/com/refinedmods/refinedstorage/api/IRSAPI.java index bca2a3147..0fc892c74 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/IRSAPI.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/IRSAPI.java @@ -22,10 +22,10 @@ import com.refinedmods.refinedstorage.api.storage.tracker.IStorageTrackerManager import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.api.util.IQuantityFormatter; import com.refinedmods.refinedstorage.api.util.IStackList; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -62,7 +62,7 @@ public interface IRSAPI { * @param world world * @return the network node manager for a given world */ - INetworkNodeManager getNetworkNodeManager(ServerWorld world); + INetworkNodeManager getNetworkNodeManager(ServerLevel world); /** * Gets a network manager for a given world. @@ -70,7 +70,7 @@ public interface IRSAPI { * @param world world * @return the network manager for a given world */ - INetworkManager getNetworkManager(ServerWorld world); + INetworkManager getNetworkManager(ServerLevel world); /** * @return the crafting task registry @@ -131,7 +131,7 @@ public interface IRSAPI { * @return the storage disk manager */ @Nonnull - IStorageDiskManager getStorageDiskManager(ServerWorld anyWorld); + IStorageDiskManager getStorageDiskManager(ServerLevel anyWorld); /** * @return the storage disk sync manager @@ -143,7 +143,7 @@ public interface IRSAPI { * @return the storage tracker manager */ @Nonnull - IStorageTrackerManager getStorageTrackerManager(ServerWorld anyWorld); + IStorageTrackerManager getStorageTrackerManager(ServerLevel anyWorld); /** * Adds an external storage provider for the given storage type. @@ -166,7 +166,7 @@ public interface IRSAPI { * @return a storage disk */ @Nonnull - IStorageDisk createDefaultItemDisk(ServerWorld world, int capacity, @Nullable PlayerEntity owner); + IStorageDisk createDefaultItemDisk(ServerLevel world, int capacity, @Nullable Player owner); /** * @param world the world @@ -175,7 +175,7 @@ public interface IRSAPI { * @return a fluid storage disk */ @Nonnull - IStorageDisk createDefaultFluidDisk(ServerWorld world, int capacity, @Nullable PlayerEntity owner); + IStorageDisk createDefaultFluidDisk(ServerLevel world, int capacity, @Nullable Player owner); /** * Creates crafting request info for an item. @@ -201,7 +201,7 @@ public interface IRSAPI { * @param tag the nbt tag * @return the request info */ - ICraftingRequestInfo createCraftingRequestInfo(CompoundNBT tag) throws CraftingTaskReadException; + ICraftingRequestInfo createCraftingRequestInfo(CompoundTag tag) throws CraftingTaskReadException; /** * @param renderHandler the render handler to add diff --git a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingManager.java b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingManager.java index d2a61f77f..c5d8d4351 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingManager.java @@ -3,9 +3,9 @@ package com.refinedmods.refinedstorage.api.autocrafting; import com.refinedmods.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorListener; import com.refinedmods.refinedstorage.api.autocrafting.task.ICalculationResult; import com.refinedmods.refinedstorage.api.autocrafting.task.ICraftingTask; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.IItemHandlerModifiable; @@ -34,7 +34,7 @@ public interface ICraftingManager { /** * @return named crafting pattern containers */ - Map> getNamedContainers(); + Map> getNamedContainers(); /** * Starts a crafting task. @@ -140,13 +140,13 @@ public interface ICraftingManager { /** * @param tag the tag to read from */ - void readFromNbt(CompoundNBT tag); + void readFromNbt(CompoundTag tag); /** * @param tag the tag to write to * @return the written tag */ - CompoundNBT writeToNbt(CompoundNBT tag); + CompoundTag writeToNbt(CompoundTag tag); /** * @param listener the listener diff --git a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPattern.java b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPattern.java index 2b98e6743..d64e73aaa 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPattern.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPattern.java @@ -1,10 +1,10 @@ package com.refinedmods.refinedstorage.api.autocrafting; import com.refinedmods.refinedstorage.api.autocrafting.task.ICraftingTaskRegistry; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.core.NonNullList; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; @@ -33,7 +33,7 @@ public interface ICraftingPattern { * @return an error message when this pattern is not valid, or null if there's no message */ @Nullable - ITextComponent getErrorMessage(); + Component getErrorMessage(); /** * @return true if the crafting pattern can be treated as a processing pattern, false otherwise diff --git a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPatternContainer.java b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPatternContainer.java index 7d60417df..2845ba4ad 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPatternContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPatternContainer.java @@ -2,11 +2,11 @@ package com.refinedmods.refinedstorage.api.autocrafting; import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.api.util.StackListEntry; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.items.IItemHandler; @@ -62,12 +62,12 @@ public interface ICraftingPatternContainer { * @return the tile that this container is connected to, or null if no tile is present */ @Nullable - TileEntity getConnectedTile(); + BlockEntity getConnectedTile(); /** * @return the tile that this container is facing */ - TileEntity getFacingTile(); + BlockEntity getFacingTile(); /** * @return the direction to the facing tile @@ -90,7 +90,7 @@ public interface ICraftingPatternContainer { * * @return the name of this container */ - ITextComponent getName(); + Component getName(); /** * @return the position of this container diff --git a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPatternProvider.java b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPatternProvider.java index a6b223bed..e3be860b4 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPatternProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPatternProvider.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.api.autocrafting; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import javax.annotation.Nonnull; @@ -19,5 +19,5 @@ public interface ICraftingPatternProvider { * @return the crafting pattern */ @Nonnull - ICraftingPattern create(World world, ItemStack stack, ICraftingPatternContainer container); + ICraftingPattern create(Level world, ItemStack stack, ICraftingPatternContainer container); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPatternRenderHandler.java b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPatternRenderHandler.java index 6757f2b99..083d7426c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPatternRenderHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/ICraftingPatternRenderHandler.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.api.autocrafting; import com.refinedmods.refinedstorage.api.IRSAPI; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; /** * Defines the behavior of pattern rendering. diff --git a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/craftingmonitor/ICraftingMonitorElement.java b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/craftingmonitor/ICraftingMonitorElement.java index e533b6582..a173590e4 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/craftingmonitor/ICraftingMonitorElement.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/craftingmonitor/ICraftingMonitorElement.java @@ -1,11 +1,11 @@ package com.refinedmods.refinedstorage.api.autocrafting.craftingmonitor; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.render.IElementDrawers; import com.refinedmods.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementList; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -23,7 +23,7 @@ public interface ICraftingMonitorElement { * @param drawers the drawers that this element can use */ @OnlyIn(Dist.CLIENT) - void draw(MatrixStack matrixStack, int x, int y, IElementDrawers drawers); + void draw(PoseStack matrixStack, int x, int y, IElementDrawers drawers); /** * Returns the id for the base of this element, used for sorting in the {@link CraftingMonitorElementList} @@ -42,7 +42,7 @@ public interface ICraftingMonitorElement { /** * @return the tooltip of this element */ - default List getTooltip() { + default List getTooltip() { return Collections.emptyList(); } @@ -51,7 +51,7 @@ public interface ICraftingMonitorElement { * * @param buf the buffer */ - void write(PacketBuffer buf); + void write(FriendlyByteBuf buf); /** * Merge an element into the current element. diff --git a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/craftingmonitor/ICraftingMonitorElementRegistry.java b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/craftingmonitor/ICraftingMonitorElementRegistry.java index e818768ee..aae9d7d52 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/craftingmonitor/ICraftingMonitorElementRegistry.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/craftingmonitor/ICraftingMonitorElementRegistry.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.api.autocrafting.craftingmonitor; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; import java.util.function.Function; @@ -16,7 +16,7 @@ public interface ICraftingMonitorElementRegistry { * @param id the id, as specified in {@link ICraftingMonitorElement#getId()} * @param factory the factory */ - void add(ResourceLocation id, Function factory); + void add(ResourceLocation id, Function factory); /** * Returns a factory from the registry. @@ -25,5 +25,5 @@ public interface ICraftingMonitorElementRegistry { * @return the factory, or null if no factory was found */ @Nullable - Function get(ResourceLocation id); + Function get(ResourceLocation id); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/preview/ICraftingPreviewElement.java b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/preview/ICraftingPreviewElement.java index a13b3ea49..b1acfaac6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/preview/ICraftingPreviewElement.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/preview/ICraftingPreviewElement.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.api.autocrafting.preview; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.render.IElementDrawers; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -18,7 +18,7 @@ public interface ICraftingPreviewElement { * @param drawers the drawers this element can use */ @OnlyIn(Dist.CLIENT) - void draw(MatrixStack matrixStack, int x, int y, IElementDrawers drawers); + void draw(PoseStack matrixStack, int x, int y, IElementDrawers drawers); /** * @return true when this crafting preview elements signifies an error that disables starting a task @@ -28,7 +28,7 @@ public interface ICraftingPreviewElement { /** * @param buf buffer to write to */ - void write(PacketBuffer buf); + void write(FriendlyByteBuf buf); /** * Returns the id of this element, used for serialization and deserialization over the network. diff --git a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/preview/ICraftingPreviewElementRegistry.java b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/preview/ICraftingPreviewElementRegistry.java index bcc3a5923..a7c1a6d4a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/preview/ICraftingPreviewElementRegistry.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/preview/ICraftingPreviewElementRegistry.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.api.autocrafting.preview; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; import java.util.function.Function; @@ -16,7 +16,7 @@ public interface ICraftingPreviewElementRegistry { * @param id the id, as specified in {@link ICraftingPreviewElement#getId()} * @param factory the factory */ - void add(ResourceLocation id, Function factory); + void add(ResourceLocation id, Function factory); /** * Returns a factory from the registry. @@ -25,5 +25,5 @@ public interface ICraftingPreviewElementRegistry { * @return the factory, or null if no factory was found */ @Nullable - Function get(ResourceLocation id); + Function get(ResourceLocation id); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingRequestInfo.java b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingRequestInfo.java index fcde52801..2e2dd66db 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingRequestInfo.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingRequestInfo.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.api.autocrafting.task; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; @@ -25,5 +25,5 @@ public interface ICraftingRequestInfo { /** * @return the written tag */ - CompoundNBT writeToNbt(); + CompoundTag writeToNbt(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingTask.java b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingTask.java index a53f6363f..0b9a9e0f1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingTask.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingTask.java @@ -3,8 +3,8 @@ package com.refinedmods.refinedstorage.api.autocrafting.task; import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPattern; import com.refinedmods.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; import com.refinedmods.refinedstorage.api.network.INetwork; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import java.util.List; @@ -63,7 +63,7 @@ public interface ICraftingTask { * @param tag the tag * @return the written tag */ - CompoundNBT writeToNbt(CompoundNBT tag); + CompoundTag writeToNbt(CompoundTag tag); /** * @return the elements of this task for display in the crafting monitor diff --git a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingTaskFactory.java b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingTaskFactory.java index e6d7541fe..cc4fb1743 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingTaskFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingTaskFactory.java @@ -2,7 +2,7 @@ package com.refinedmods.refinedstorage.api.autocrafting.task; import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPattern; import com.refinedmods.refinedstorage.api.network.INetwork; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.CompoundTag; /** * A factory that creates a crafting task. @@ -27,5 +27,5 @@ public interface ICraftingTaskFactory { * @param tag the tag * @return the crafting task */ - ICraftingTask createFromNbt(INetwork network, CompoundNBT tag) throws CraftingTaskReadException; + ICraftingTask createFromNbt(INetwork network, CompoundTag tag) throws CraftingTaskReadException; } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingTaskRegistry.java b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingTaskRegistry.java index bd7e36110..c56214435 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingTaskRegistry.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ICraftingTaskRegistry.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.api.autocrafting.task; -import net.minecraft.util.ResourceLocation; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/INetwork.java b/src/main/java/com/refinedmods/refinedstorage/api/network/INetwork.java index a4c5d4d4d..fd7e1f091 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/INetwork.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/INetwork.java @@ -10,10 +10,10 @@ import com.refinedmods.refinedstorage.api.storage.cache.IStorageCache; import com.refinedmods.refinedstorage.api.storage.tracker.IStorageTracker; import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.api.util.IComparer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.fluids.FluidStack; @@ -244,7 +244,7 @@ public interface INetwork { /** * @return the world where this network is in */ - World getWorld(); + Level getWorld(); /** * @return the position of this network in the world @@ -254,13 +254,13 @@ public interface INetwork { /** * @return a read network */ - INetwork readFromNbt(CompoundNBT tag); + INetwork readFromNbt(CompoundTag tag); /** * @param tag the tag to write to * @return a written tag */ - CompoundNBT writeToNbt(CompoundNBT tag); + CompoundTag writeToNbt(CompoundTag tag); /** * @return sampled tick times diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/INetworkManager.java b/src/main/java/com/refinedmods/refinedstorage/api/network/INetworkManager.java index c32100963..09fc3826f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/INetworkManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/INetworkManager.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.api.network; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; import javax.annotation.Nullable; import java.util.Collection; diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/INetworkNodeGraph.java b/src/main/java/com/refinedmods/refinedstorage/api/network/INetworkNodeGraph.java index b7915ca9f..047e56ced 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/INetworkNodeGraph.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/INetworkNodeGraph.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.api.network; import com.refinedmods.refinedstorage.api.util.Action; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; import java.util.Collection; import java.util.function.Consumer; @@ -18,7 +18,7 @@ public interface INetworkNodeGraph { * @param world the origin world * @param origin the origin, usually the network position */ - void invalidate(Action action, World world, BlockPos origin); + void invalidate(Action action, Level world, BlockPos origin); /** * Runs an action on the network. diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/INetworkNodeVisitor.java b/src/main/java/com/refinedmods/refinedstorage/api/network/INetworkNodeVisitor.java index 2497c6a05..9ec20c9f8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/INetworkNodeVisitor.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/INetworkNodeVisitor.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.api.network; import com.refinedmods.refinedstorage.api.util.Action; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.Level; import javax.annotation.Nullable; @@ -31,7 +31,7 @@ public interface INetworkNodeVisitor { * @param pos the position * @param side the side */ - void apply(World world, BlockPos pos, @Nullable Direction side); + void apply(Level world, BlockPos pos, @Nullable Direction side); /** * Returns whether the network graph is scanning in simulation mode. diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/IWirelessTransmitter.java b/src/main/java/com/refinedmods/refinedstorage/api/network/IWirelessTransmitter.java index f8bd0b87e..fe8ca140d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/IWirelessTransmitter.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/IWirelessTransmitter.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.api.network; -import net.minecraft.util.RegistryKey; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.Level; /** * Represents a node that can send a wireless signal. @@ -21,5 +21,5 @@ public interface IWirelessTransmitter { /** * @return the dimension in which the transmitter is */ - RegistryKey getDimension(); + ResourceKey getDimension(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/GridType.java b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/GridType.java index 128b4269c..bd3267cc5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/GridType.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/GridType.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.api.network.grid; -import net.minecraft.util.IStringSerializable; +import net.minecraft.util.StringRepresentable; import javax.annotation.Nonnull; @@ -8,7 +8,7 @@ import javax.annotation.Nonnull; * Represents a grid type. * Used in {@link IGrid} to determine grid GUI rendering. */ -public enum GridType implements IStringSerializable { +public enum GridType implements StringRepresentable { /** * A regular grid. */ diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/ICraftingGridBehavior.java b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/ICraftingGridBehavior.java index 169756f87..dd02341a5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/ICraftingGridBehavior.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/ICraftingGridBehavior.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.api.network.grid; import com.refinedmods.refinedstorage.api.util.IStackList; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.ICraftingRecipe; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CraftingRecipe; import javax.annotation.Nullable; @@ -20,7 +20,7 @@ public interface ICraftingGridBehavior { * @param availableItems the items available for shift crafting * @param usedItems the items used by shift crafting */ - void onCrafted(INetworkAwareGrid grid, ICraftingRecipe recipe, PlayerEntity player, @Nullable IStackList availableItems, @Nullable IStackList usedItems); + void onCrafted(INetworkAwareGrid grid, CraftingRecipe recipe, Player player, @Nullable IStackList availableItems, @Nullable IStackList usedItems); /** * Logic for crafting with shift click (mass crafting). @@ -28,7 +28,7 @@ public interface ICraftingGridBehavior { * @param grid the grid * @param player the player */ - void onCraftedShift(INetworkAwareGrid grid, PlayerEntity player); + void onCraftedShift(INetworkAwareGrid grid, Player player); /** * Logic for when a recipe is transferred to the grid. @@ -37,5 +37,5 @@ public interface ICraftingGridBehavior { * @param player the player * @param recipe the recipe */ - void onRecipeTransfer(INetworkAwareGrid grid, PlayerEntity player, ItemStack[][] recipe); + void onRecipeTransfer(INetworkAwareGrid grid, Player player, ItemStack[][] recipe); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGrid.java b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGrid.java index a47d611f0..f1ed4d894 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGrid.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGrid.java @@ -6,12 +6,12 @@ import com.refinedmods.refinedstorage.api.storage.cache.IStorageCache; import com.refinedmods.refinedstorage.api.storage.cache.IStorageCacheListener; import com.refinedmods.refinedstorage.api.util.IFilter; import com.refinedmods.refinedstorage.api.util.IStackList; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.CraftResultInventory; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.inventory.ResultContainer; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nullable; @@ -48,6 +48,53 @@ public interface IGrid { int SIZE_MEDIUM = 2; int SIZE_LARGE = 3; + static boolean isValidViewType(int type) { + return type == VIEW_TYPE_NORMAL || + type == VIEW_TYPE_CRAFTABLES || + type == VIEW_TYPE_NON_CRAFTABLES; + } + + static boolean isValidSearchBoxMode(int mode) { + return mode == SEARCH_BOX_MODE_NORMAL || + mode == SEARCH_BOX_MODE_NORMAL_AUTOSELECTED || + mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED || + mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED || + mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY || + mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY_AUTOSELECTED; + } + + static boolean isSearchBoxModeWithAutoselection(int mode) { + return mode == SEARCH_BOX_MODE_NORMAL_AUTOSELECTED || + mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED || + mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY_AUTOSELECTED; + } + + static boolean doesSearchBoxModeUseJEI(int mode) { + return mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED || + mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED || + mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY || + mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY_AUTOSELECTED; + } + + static boolean isValidSortingType(int type) { + return type == SORTING_TYPE_QUANTITY || + type == SORTING_TYPE_NAME || + type == SORTING_TYPE_ID || + type == SORTING_TYPE_INVENTORYTWEAKS || + type == SORTING_TYPE_LAST_MODIFIED; + } + + static boolean isValidSortingDirection(int direction) { + return direction == SORTING_DIRECTION_ASCENDING || direction == SORTING_DIRECTION_DESCENDING; + } + + static boolean isValidSize(int size) { + return size == SIZE_STRETCH || + size == SIZE_SMALL || + size == SIZE_MEDIUM || + size == SIZE_LARGE; + } + /** * @return the grid type */ @@ -57,7 +104,7 @@ public interface IGrid { * @param player the player to create a listener for * @return a listener for this grid, will be attached to the storage cache in {@link #getStorageCache()} */ - IStorageCacheListener createListener(ServerPlayerEntity player); + IStorageCacheListener createListener(ServerPlayer player); /** * @return the storage cache for this grid, or null if this grid is unavailable @@ -92,7 +139,7 @@ public interface IGrid { /** * @return the title */ - ITextComponent getTitle(); + Component getTitle(); /** * @return the view type @@ -188,13 +235,13 @@ public interface IGrid { * @return the crafting matrix, or null if not a crafting grid */ @Nullable - CraftingInventory getCraftingMatrix(); + CraftingContainer getCraftingMatrix(); /** * @return the crafting result inventory, or null if not a crafting grid */ @Nullable - CraftResultInventory getCraftingResult(); + ResultContainer getCraftingResult(); /** * Called when the crafting matrix changes. @@ -208,19 +255,19 @@ public interface IGrid { * @param availableItems the items available for shift crafting * @param usedItems the items used by shift crafting */ - void onCrafted(PlayerEntity player, @Nullable IStackList availableItems, @Nullable IStackList usedItems); + void onCrafted(Player player, @Nullable IStackList availableItems, @Nullable IStackList usedItems); /** * Called when the clear button is pressed in the pattern grid or crafting grid. */ - void onClear(PlayerEntity player); + void onClear(Player player); /** * Called when an item is crafted with shift click (up to 64 items) in a crafting grid. * * @param player the player that crafted the item */ - void onCraftedShift(PlayerEntity player); + void onCraftedShift(Player player); /** * Called when a JEI recipe transfer occurs. @@ -228,14 +275,14 @@ public interface IGrid { * @param player the player * @param recipe a 9*x array stack array, where x is the possible combinations for the given slot */ - void onRecipeTransfer(PlayerEntity player, ItemStack[][] recipe); + void onRecipeTransfer(Player player, ItemStack[][] recipe); /** * Called when the grid is closed. * * @param player the player */ - void onClosed(PlayerEntity player); + void onClosed(Player player); /** * @return true if the grid is active, false otherwise @@ -246,51 +293,4 @@ public interface IGrid { * @return the slot id where this grid is located, if applicable, otherwise -1 */ int getSlotId(); - - static boolean isValidViewType(int type) { - return type == VIEW_TYPE_NORMAL || - type == VIEW_TYPE_CRAFTABLES || - type == VIEW_TYPE_NON_CRAFTABLES; - } - - static boolean isValidSearchBoxMode(int mode) { - return mode == SEARCH_BOX_MODE_NORMAL || - mode == SEARCH_BOX_MODE_NORMAL_AUTOSELECTED || - mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED || - mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED || - mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY || - mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY_AUTOSELECTED; - } - - static boolean isSearchBoxModeWithAutoselection(int mode) { - return mode == SEARCH_BOX_MODE_NORMAL_AUTOSELECTED || - mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED || - mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY_AUTOSELECTED; - } - - static boolean doesSearchBoxModeUseJEI(int mode) { - return mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED || - mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED || - mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY || - mode == SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY_AUTOSELECTED; - } - - static boolean isValidSortingType(int type) { - return type == SORTING_TYPE_QUANTITY || - type == SORTING_TYPE_NAME || - type == SORTING_TYPE_ID || - type == SORTING_TYPE_INVENTORYTWEAKS || - type == SORTING_TYPE_LAST_MODIFIED; - } - - static boolean isValidSortingDirection(int direction) { - return direction == SORTING_DIRECTION_ASCENDING || direction == SORTING_DIRECTION_DESCENDING; - } - - static boolean isValidSize(int size) { - return size == SIZE_STRETCH || - size == SIZE_SMALL || - size == SIZE_MEDIUM || - size == SIZE_LARGE; - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGridFactory.java b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGridFactory.java index 057ed2e50..32adbc87c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGridFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGridFactory.java @@ -1,11 +1,11 @@ package com.refinedmods.refinedstorage.api.network.grid; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nullable; @@ -22,7 +22,7 @@ public interface IGridFactory { * @return the grid, or null if a problem occurred */ @Nullable - IGrid createFromStack(PlayerEntity player, ItemStack stack, PlayerSlot slot); + IGrid createFromStack(Player player, ItemStack stack, PlayerSlot slot); /** * Creates a grid from a block. Used when {@link #getType()} is BLOCK. @@ -32,7 +32,7 @@ public interface IGridFactory { * @return the grid, or null if a problem occurred */ @Nullable - IGrid createFromBlock(PlayerEntity player, BlockPos pos); + IGrid createFromBlock(Player player, BlockPos pos); /** * Returns a possible tile for this grid if {@link #getType()} is BLOCK. @@ -42,7 +42,7 @@ public interface IGridFactory { * @return the tile, or null if no tile is required */ @Nullable - TileEntity getRelevantTile(World world, BlockPos pos); + BlockEntity getRelevantTile(Level world, BlockPos pos); /** * @return the type diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGridManager.java b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGridManager.java index e2c91dab3..9c130a0c7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGridManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGridManager.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.api.network.grid; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; import org.apache.commons.lang3.tuple.Pair; import javax.annotation.Nullable; @@ -28,7 +28,7 @@ public interface IGridManager { * @param player the player * @param pos the block position */ - void openGrid(ResourceLocation id, ServerPlayerEntity player, BlockPos pos); + void openGrid(ResourceLocation id, ServerPlayer player, BlockPos pos); /** * Opens a grid. Can only be called on the server. @@ -38,7 +38,7 @@ public interface IGridManager { * @param stack the stack * @param slot the slot in the players inventory or curio slot, otherwise -1 */ - void openGrid(ResourceLocation id, ServerPlayerEntity player, ItemStack stack, PlayerSlot slot); + void openGrid(ResourceLocation id, ServerPlayer player, ItemStack stack, PlayerSlot slot); /** * Creates a grid. @@ -51,5 +51,5 @@ public interface IGridManager { * @return a grid, or null if an error has occurred */ @Nullable - Pair createGrid(ResourceLocation id, PlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos, PlayerSlot slot); + Pair createGrid(ResourceLocation id, Player player, @Nullable ItemStack stack, @Nullable BlockPos pos, PlayerSlot slot); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGridTab.java b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGridTab.java index f36ecf2f7..db7d9ddf1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGridTab.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/IGridTab.java @@ -1,10 +1,10 @@ package com.refinedmods.refinedstorage.api.network.grid; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.render.IElementDrawer; import com.refinedmods.refinedstorage.api.util.IFilter; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.item.ItemStack; +import net.minecraft.client.gui.Font; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import java.util.List; @@ -31,7 +31,7 @@ public interface IGridTab { * @param screenHeight the screen height * @param fontRenderer the font renderer */ - void drawTooltip(MatrixStack matrixStack, int x, int y, int screenWidth, int screenHeight, FontRenderer fontRenderer); + void drawTooltip(PoseStack matrixStack, int x, int y, int screenWidth, int screenHeight, Font fontRenderer); /** * Draws the icon. @@ -40,5 +40,5 @@ public interface IGridTab { * @param x the x position * @param y the y position */ - void drawIcon(MatrixStack matrixStack, int x, int y, IElementDrawer itemDrawer, IElementDrawer fluidDrawer); + void drawIcon(PoseStack matrixStack, int x, int y, IElementDrawer itemDrawer, IElementDrawer fluidDrawer); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/handler/IFluidGridHandler.java b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/handler/IFluidGridHandler.java index 134286428..01bc52286 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/handler/IFluidGridHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/handler/IFluidGridHandler.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.api.network.grid.handler; import com.refinedmods.refinedstorage.api.util.StackListEntry; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nonnull; import java.util.UUID; @@ -18,7 +18,7 @@ public interface IFluidGridHandler { * @param id the id of the fluid we're trying to extract, this id is the id from {@link StackListEntry} * @param shift true if shift click was used, false otherwise */ - void onExtract(ServerPlayerEntity player, UUID id, boolean shift); + void onExtract(ServerPlayer player, UUID id, boolean shift); /** * Called when a player tries to insert fluids in the grid. @@ -28,14 +28,14 @@ public interface IFluidGridHandler { * @return the remainder, or an empty stack if there is no remainder */ @Nonnull - ItemStack onInsert(ServerPlayerEntity player, ItemStack container); + ItemStack onInsert(ServerPlayer player, ItemStack container); /** * Called when a player is trying to insert a fluid that it is holding in their hand in the GUI. * * @param player the player that is attempting the insert */ - void onInsertHeldContainer(ServerPlayerEntity player); + void onInsertHeldContainer(ServerPlayer player); /** * Called when a player requests the crafting preview window to be opened. @@ -45,7 +45,7 @@ public interface IFluidGridHandler { * @param quantity the amount of that item that we need a preview for * @param noPreview true if the crafting preview window shouldn't be shown, false otherwise */ - void onCraftingPreviewRequested(ServerPlayerEntity player, UUID id, int quantity, boolean noPreview); + void onCraftingPreviewRequested(ServerPlayer player, UUID id, int quantity, boolean noPreview); /** * Called when a player requested crafting for an item. @@ -54,5 +54,5 @@ public interface IFluidGridHandler { * @param id the id of the fluid we're trying to extract, this id is the id from {@link StackListEntry} * @param quantity the amount of the item that has to be crafted */ - void onCraftingRequested(ServerPlayerEntity player, UUID id, int quantity); + void onCraftingRequested(ServerPlayer player, UUID id, int quantity); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/handler/IItemGridHandler.java b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/handler/IItemGridHandler.java index f95cdcf85..59e886e7a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/grid/handler/IItemGridHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/grid/handler/IItemGridHandler.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.api.network.grid.handler; import com.refinedmods.refinedstorage.api.util.StackListEntry; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -24,7 +24,7 @@ public interface IItemGridHandler { * @param preferredSlot playerInventory slot to prefer when adding or -1 * @param flags how we are extracting, see the flags in {@link IItemGridHandler} */ - void onExtract(ServerPlayerEntity player, ItemStack stack, int preferredSlot, int flags); + void onExtract(ServerPlayer player, ItemStack stack, int preferredSlot, int flags); /** * Called when a player tries to extract an item from the grid. @@ -34,7 +34,7 @@ public interface IItemGridHandler { * @param preferredSlot playerInventory slot to prefer when adding or -1 * @param flags how we are extracting, see the flags in {@link IItemGridHandler} */ - void onExtract(ServerPlayerEntity player, UUID id, int preferredSlot, int flags); + void onExtract(ServerPlayer player, UUID id, int preferredSlot, int flags); /** * Called when a player tries to insert an item in the grid. @@ -45,7 +45,7 @@ public interface IItemGridHandler { * @return the remainder, or an empty stack if there is no remainder */ @Nonnull - ItemStack onInsert(ServerPlayerEntity player, ItemStack stack, boolean single); + ItemStack onInsert(ServerPlayer player, ItemStack stack, boolean single); /** * Called when a player is trying to insert an item that it is holding in their hand in the GUI. @@ -53,7 +53,7 @@ public interface IItemGridHandler { * @param player the player that is attempting the insert * @param single true if we are only inserting a single item, false otherwise */ - void onInsertHeldItem(ServerPlayerEntity player, boolean single); + void onInsertHeldItem(ServerPlayer player, boolean single); /** * Called when a player requests the crafting preview window to be opened. @@ -63,7 +63,7 @@ public interface IItemGridHandler { * @param quantity the amount of that item that we need a preview for * @param noPreview true if the crafting preview window shouldn't be shown, false otherwise */ - void onCraftingPreviewRequested(ServerPlayerEntity player, UUID id, int quantity, boolean noPreview); + void onCraftingPreviewRequested(ServerPlayer player, UUID id, int quantity, boolean noPreview); /** * Called when a player requested crafting for an item. @@ -72,7 +72,7 @@ public interface IItemGridHandler { * @param id the id of the item we're trying to extract, this id is the id from {@link StackListEntry} * @param quantity the amount of the item that has to be crafted */ - void onCraftingRequested(ServerPlayerEntity player, UUID id, int quantity); + void onCraftingRequested(ServerPlayer player, UUID id, int quantity); /** * Called when a player wants to cancel a crafting task. @@ -80,7 +80,7 @@ public interface IItemGridHandler { * @param player the player that requested the cancel * @param id the task id, or null to cancel all tasks that are in the network currently */ - void onCraftingCancelRequested(ServerPlayerEntity player, @Nullable UUID id); + void onCraftingCancelRequested(ServerPlayer player, @Nullable UUID id); /** * Called when a player shift or ctrl scrolls in the player inventory @@ -90,7 +90,7 @@ public interface IItemGridHandler { * @param shift if true shift is pressed, if false ctrl is pressed * @param up whether the player is scrolling up or down */ - void onInventoryScroll(ServerPlayerEntity player, int slot, boolean shift, boolean up); + void onInventoryScroll(ServerPlayer player, int slot, boolean shift, boolean up); /** * Called when a player shift or ctrl scrolls in the Grid View @@ -100,5 +100,5 @@ public interface IItemGridHandler { * @param shift if true shift is pressed, if false ctrl is pressed * @param up whether the player is scrolling up or down */ - void onGridScroll(ServerPlayerEntity player, @Nullable UUID id, boolean shift, boolean up); + void onGridScroll(ServerPlayer player, @Nullable UUID id, boolean shift, boolean up); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/item/INetworkItem.java b/src/main/java/com/refinedmods/refinedstorage/api/network/item/INetworkItem.java index bde54c423..d4e49f812 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/item/INetworkItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/item/INetworkItem.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.api.network.item; import com.refinedmods.refinedstorage.api.network.INetwork; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; /** * Represents a network item (an item that is connected to the network somehow). @@ -12,7 +12,7 @@ public interface INetworkItem { /** * @return the player using the network item */ - PlayerEntity getPlayer(); + Player getPlayer(); /** * Called when the network item is being opened. diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/item/INetworkItemManager.java b/src/main/java/com/refinedmods/refinedstorage/api/network/item/INetworkItemManager.java index 78c0ddb92..08f10c25e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/item/INetworkItemManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/item/INetworkItemManager.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.api.network.item; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nullable; @@ -18,14 +18,14 @@ public interface INetworkItemManager { * @param stack the stack that has been opened * @param slot the slot in the players inventory or curio slot, otherwise -1 */ - void open(PlayerEntity player, ItemStack stack, PlayerSlot slot); + void open(Player player, ItemStack stack, PlayerSlot slot); /** * Called when the player closes a network item. * * @param player the player that closed the network item */ - void close(PlayerEntity player); + void close(Player player); /** * Returns a {@link INetworkItem} for a player. @@ -34,11 +34,11 @@ public interface INetworkItemManager { * @return the {@link INetworkItem} that corresponds to a player, or null if the player isn't using a network item */ @Nullable - INetworkItem getItem(PlayerEntity player); + INetworkItem getItem(Player player); /** * @param player the player * @param energy energy to extract */ - void drainEnergy(PlayerEntity player, int energy); + void drainEnergy(Player player, int energy); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/item/INetworkItemProvider.java b/src/main/java/com/refinedmods/refinedstorage/api/network/item/INetworkItemProvider.java index ea0f0e701..08d6efdea 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/item/INetworkItemProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/item/INetworkItemProvider.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.api.network.item; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nonnull; @@ -20,5 +20,5 @@ public interface INetworkItemProvider { * @return the network item */ @Nonnull - INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot); + INetworkItem provide(INetworkItemManager handler, Player player, ItemStack stack, PlayerSlot slot); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNode.java index 1ac168a88..60417445b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNode.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.api.network.node; import com.refinedmods.refinedstorage.api.network.INetwork; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -70,7 +70,7 @@ public interface INetworkNode { * @param tag the tag * @return the written tag */ - CompoundNBT write(CompoundNBT tag); + CompoundTag write(CompoundTag tag); /** * @return the position of this network node @@ -80,7 +80,7 @@ public interface INetworkNode { /** * @return the world of this network node */ - World getWorld(); + Level getWorld(); /** * Marks this node as dirty for saving. @@ -108,14 +108,14 @@ public interface INetworkNode { return canConduct(direction); } - /** - * @param owner the owner - */ - void setOwner(@Nullable UUID owner); - /** * @return the owner */ @Nullable UUID getOwner(); + + /** + * @param owner the owner + */ + void setOwner(@Nullable UUID owner); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNodeFactory.java b/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNodeFactory.java index 8ff7dd83c..40f48f8f5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNodeFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNodeFactory.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.api.network.node; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.level.Level; import javax.annotation.Nonnull; @@ -19,5 +19,5 @@ public interface INetworkNodeFactory { * @return the network node */ @Nonnull - INetworkNode create(CompoundNBT tag, World world, BlockPos pos); + INetworkNode create(CompoundTag tag, Level world, BlockPos pos); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNodeManager.java b/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNodeManager.java index 715bed5d4..107468546 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNodeManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNodeManager.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.api.network.node; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; import javax.annotation.Nullable; import java.util.Collection; diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNodeRegistry.java b/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNodeRegistry.java index 2fd561114..5079f8694 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNodeRegistry.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/node/INetworkNodeRegistry.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.api.network.node; -import net.minecraft.util.ResourceLocation; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; diff --git a/src/main/java/com/refinedmods/refinedstorage/api/network/security/ISecurityManager.java b/src/main/java/com/refinedmods/refinedstorage/api/network/security/ISecurityManager.java index b202833e3..79efadb55 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/network/security/ISecurityManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/network/security/ISecurityManager.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.api.network.security; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; /** * The security manager of a network. @@ -11,7 +11,7 @@ public interface ISecurityManager { * @param player the player to check that permission for * @return true if the player has the given permission, false otherwise */ - boolean hasPermission(Permission permission, PlayerEntity player); + boolean hasPermission(Permission permission, Player player); /** * Invalidates the security list. diff --git a/src/main/java/com/refinedmods/refinedstorage/api/render/IElementDrawer.java b/src/main/java/com/refinedmods/refinedstorage/api/render/IElementDrawer.java index 7163e057f..3c60adb33 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/render/IElementDrawer.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/render/IElementDrawer.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.api.render; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; /** * This {@link FunctionalInterface} is used to define a draw/render function. @@ -16,5 +16,5 @@ public interface IElementDrawer { * @param y the y axis * @param element the element type */ - void draw(MatrixStack matrixStack, int x, int y, T element); + void draw(PoseStack matrixStack, int x, int y, T element); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/render/IElementDrawers.java b/src/main/java/com/refinedmods/refinedstorage/api/render/IElementDrawers.java index 33c82ae2a..ccc91326c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/render/IElementDrawers.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/render/IElementDrawers.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.api.render; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; /** diff --git a/src/main/java/com/refinedmods/refinedstorage/api/storage/IStorageProvider.java b/src/main/java/com/refinedmods/refinedstorage/api/storage/IStorageProvider.java index ce8cf7238..672bbb50d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/storage/IStorageProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/storage/IStorageProvider.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.api.storage; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import java.util.List; diff --git a/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDisk.java b/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDisk.java index b50fea531..f99aa41f1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDisk.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDisk.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.api.storage.disk; import com.refinedmods.refinedstorage.api.storage.IStorage; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; import java.util.UUID; @@ -36,7 +36,7 @@ public interface IStorageDisk extends IStorage { /** * Writes the storage to NBT. */ - CompoundNBT writeToNbt(); + CompoundTag writeToNbt(); /** * @return the factory id as registered in {@link IStorageDiskRegistry} diff --git a/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskFactory.java b/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskFactory.java index 1616737a3..0e3775906 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskFactory.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.api.storage.disk; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nullable; import java.util.UUID; @@ -20,7 +20,7 @@ public interface IStorageDiskFactory { * @param tag the tag * @return the storage disk */ - IStorageDisk createFromNbt(ServerWorld world, CompoundNBT tag); + IStorageDisk createFromNbt(ServerLevel world, CompoundTag tag); /** * Creates a storage disk item based on ID. @@ -39,5 +39,5 @@ public interface IStorageDiskFactory { * @param owner the owner, or null if no owner * @return the storage disk */ - IStorageDisk create(ServerWorld world, int capacity, @Nullable UUID owner); + IStorageDisk create(ServerLevel world, int capacity, @Nullable UUID owner); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskManager.java b/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskManager.java index 2ca28e5d6..027bb732a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskManager.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.api.storage.disk; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nullable; import java.util.Map; diff --git a/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskProvider.java b/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskProvider.java index 11afc6a6b..b7f5b9cfa 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskProvider.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.api.storage.disk; import com.refinedmods.refinedstorage.api.storage.StorageType; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import java.util.UUID; diff --git a/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskRegistry.java b/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskRegistry.java index ed74d1f9e..5d6852be9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskRegistry.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/storage/disk/IStorageDiskRegistry.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.api.storage.disk; -import net.minecraft.util.ResourceLocation; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; diff --git a/src/main/java/com/refinedmods/refinedstorage/api/storage/externalstorage/IExternalStorageContext.java b/src/main/java/com/refinedmods/refinedstorage/api/storage/externalstorage/IExternalStorageContext.java index 08ecd6d41..8c0afd066 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/storage/externalstorage/IExternalStorageContext.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/storage/externalstorage/IExternalStorageContext.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.api.storage.externalstorage; import com.refinedmods.refinedstorage.api.storage.AccessType; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; /** diff --git a/src/main/java/com/refinedmods/refinedstorage/api/storage/externalstorage/IExternalStorageProvider.java b/src/main/java/com/refinedmods/refinedstorage/api/storage/externalstorage/IExternalStorageProvider.java index fe7cb906a..0b4abc223 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/storage/externalstorage/IExternalStorageProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/storage/externalstorage/IExternalStorageProvider.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.api.storage.externalstorage; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nonnull; @@ -16,7 +16,7 @@ public interface IExternalStorageProvider { * @param direction the direction of the external storage * @return true if the provider can provide, false otherwise */ - boolean canProvide(TileEntity tile, Direction direction); + boolean canProvide(BlockEntity tile, Direction direction); /** * @param context the context of the external storage @@ -25,7 +25,7 @@ public interface IExternalStorageProvider { * @return the external storage handler */ @Nonnull - IExternalStorage provide(IExternalStorageContext context, TileEntity tile, Direction direction); + IExternalStorage provide(IExternalStorageContext context, BlockEntity tile, Direction direction); /** * Returns the priority of this external storage provider. diff --git a/src/main/java/com/refinedmods/refinedstorage/api/storage/tracker/IStorageTracker.java b/src/main/java/com/refinedmods/refinedstorage/api/storage/tracker/IStorageTracker.java index 66a4604ba..fd232abbb 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/storage/tracker/IStorageTracker.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/storage/tracker/IStorageTracker.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.api.storage.tracker; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.nbt.ListNBT; +import net.minecraft.nbt.ListTag; +import net.minecraft.world.entity.player.Player; import javax.annotation.Nullable; @@ -15,7 +15,7 @@ public interface IStorageTracker { * @param player player * @param stack the stack */ - void changed(PlayerEntity player, T stack); + void changed(Player player, T stack); /** * @param stack the stack @@ -29,12 +29,12 @@ public interface IStorageTracker { * * @param nbt to read from */ - void readFromNbt(ListNBT nbt); + void readFromNbt(ListTag nbt); /** * write data to nbt * * @return data as nbt */ - ListNBT serializeNbt(); + ListTag serializeNbt(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/api/util/IComparer.java b/src/main/java/com/refinedmods/refinedstorage/api/util/IComparer.java index f5f212f23..f2f57fae5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/api/util/IComparer.java +++ b/src/main/java/com/refinedmods/refinedstorage/api/util/IComparer.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.api.util; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/API.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/API.java index 5d19d194d..02d125fce 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/API.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/API.java @@ -41,12 +41,12 @@ import com.refinedmods.refinedstorage.apiimpl.util.FluidStackList; import com.refinedmods.refinedstorage.apiimpl.util.ItemStackList; import com.refinedmods.refinedstorage.apiimpl.util.QuantityFormatter; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.INBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.Tag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fml.ModList; import net.minecraftforge.forgespi.language.ModFileScanData; @@ -59,7 +59,6 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.lang.reflect.Field; import java.util.*; -import java.util.stream.Collectors; public class API implements IRSAPI { private static final Logger LOGGER = LogManager.getLogger(API.class); @@ -89,23 +88,23 @@ public class API implements IRSAPI { List annotations = ModList.get().getAllScanData().stream() .map(ModFileScanData::getAnnotations) .flatMap(Collection::stream) - .filter(a -> annotationType.equals(a.getAnnotationType())) - .collect(Collectors.toList()); + .filter(a -> annotationType.equals(a.annotationType())) + .toList(); LOGGER.info("Found {} RS API injection {}", annotations.size(), annotations.size() == 1 ? "point" : "points"); for (ModFileScanData.AnnotationData annotation : annotations) { try { - Class clazz = Class.forName(annotation.getClassType().getClassName()); - Field field = clazz.getField(annotation.getMemberName()); + Class clazz = Class.forName(annotation.clazz().getClassName()); + Field field = clazz.getField(annotation.memberName()); if (field.getType() == IRSAPI.class) { field.set(null, INSTANCE); } - LOGGER.info("Injected RS API in {} {}", annotation.getClassType().getClassName(), annotation.getMemberName()); + LOGGER.info("Injected RS API in {} {}", annotation.clazz().getClassName(), annotation.memberName()); } catch (ClassNotFoundException | IllegalAccessException | IllegalArgumentException | NoSuchFieldException | SecurityException e) { - LOGGER.error("Could not inject RS API in {} {}", annotation.getClassType().getClassName(), annotation.getMemberName(), e); + LOGGER.error("Could not inject RS API in {} {}", annotation.clazz().getClassName(), annotation.memberName(), e); } } } @@ -129,13 +128,21 @@ public class API implements IRSAPI { } @Override - public INetworkNodeManager getNetworkNodeManager(ServerWorld world) { - return world.getDataStorage().computeIfAbsent(() -> new NetworkNodeManager(NetworkNodeManager.NAME, world), NetworkNodeManager.NAME); + public INetworkNodeManager getNetworkNodeManager(ServerLevel world) { + return world.getDataStorage().computeIfAbsent(tag -> { + NetworkNodeManager manager = new NetworkNodeManager( world); + manager.load(tag); + return manager; + }, () -> new NetworkNodeManager(world), NetworkNodeManager.NAME); } @Override - public INetworkManager getNetworkManager(ServerWorld world) { - return world.getDataStorage().computeIfAbsent(() -> new NetworkManager(NetworkManager.NAME, world), NetworkManager.NAME); + public INetworkManager getNetworkManager(ServerLevel world) { + return world.getDataStorage().computeIfAbsent(tag -> { + NetworkManager manager = new NetworkManager(world); + manager.load(tag); + return manager; + }, () -> new NetworkManager(world), NetworkManager.NAME); } @Override @@ -194,10 +201,14 @@ public class API implements IRSAPI { @Nonnull @Override - public IStorageDiskManager getStorageDiskManager(ServerWorld anyWorld) { - ServerWorld world = anyWorld.getServer().overworld(); // Get the overworld + public IStorageDiskManager getStorageDiskManager(ServerLevel anyWorld) { + ServerLevel world = anyWorld.getServer().overworld(); // Get the overworld - return world.getDataStorage().computeIfAbsent(() -> new StorageDiskManager(StorageDiskManager.NAME, world), StorageDiskManager.NAME); + return world.getDataStorage().computeIfAbsent(tag -> { + StorageDiskManager manager = new StorageDiskManager(world); + manager.load(tag); + return manager; + }, () -> new StorageDiskManager( world), StorageDiskManager.NAME); } @Nonnull @@ -208,10 +219,14 @@ public class API implements IRSAPI { @Nonnull @Override - public IStorageTrackerManager getStorageTrackerManager(ServerWorld anyWorld) { - ServerWorld world = anyWorld.getServer().overworld(); // Get the overworld + public IStorageTrackerManager getStorageTrackerManager(ServerLevel anyWorld) { + ServerLevel world = anyWorld.getServer().overworld(); // Get the overworld - return world.getDataStorage().computeIfAbsent(() -> new StorageTrackerManager(StorageTrackerManager.NAME), StorageTrackerManager.NAME); + return world.getDataStorage().computeIfAbsent(tag -> { + StorageTrackerManager manager = new StorageTrackerManager(); + manager.load(tag); + return manager; + }, StorageTrackerManager::new, StorageTrackerManager.NAME); } @Override @@ -228,7 +243,7 @@ public class API implements IRSAPI { @Override @Nonnull - public IStorageDisk createDefaultItemDisk(ServerWorld world, int capacity, @Nullable PlayerEntity owner) { + public IStorageDisk createDefaultItemDisk(ServerLevel world, int capacity, @Nullable Player owner) { if (world == null) { throw new IllegalArgumentException("World cannot be null"); } @@ -238,7 +253,7 @@ public class API implements IRSAPI { @Override @Nonnull - public IStorageDisk createDefaultFluidDisk(ServerWorld world, int capacity, @Nullable PlayerEntity owner) { + public IStorageDisk createDefaultFluidDisk(ServerLevel world, int capacity, @Nullable Player owner) { if (world == null) { throw new IllegalArgumentException("World cannot be null"); } @@ -257,7 +272,7 @@ public class API implements IRSAPI { } @Override - public ICraftingRequestInfo createCraftingRequestInfo(CompoundNBT tag) throws CraftingTaskReadException { + public ICraftingRequestInfo createCraftingRequestInfo(CompoundTag tag) throws CraftingTaskReadException { return new CraftingRequestInfo(tag); } @@ -282,11 +297,11 @@ public class API implements IRSAPI { return result; } - private int getHashCode(INBT tag, int result) { - if (tag instanceof CompoundNBT) { - result = getHashCode((CompoundNBT) tag, result); - } else if (tag instanceof ListNBT) { - result = getHashCode((ListNBT) tag, result); + private int getHashCode(Tag tag, int result) { + if (tag instanceof CompoundTag) { + result = getHashCode((CompoundTag) tag, result); + } else if (tag instanceof ListTag) { + result = getHashCode((ListTag) tag, result); } else { result = 31 * result + tag.hashCode(); } @@ -294,7 +309,7 @@ public class API implements IRSAPI { return result; } - private int getHashCode(CompoundNBT tag, int result) { + private int getHashCode(CompoundTag tag, int result) { for (String key : tag.getAllKeys()) { result = 31 * result + key.hashCode(); result = getHashCode(tag.get(key), result); @@ -303,8 +318,8 @@ public class API implements IRSAPI { return result; } - private int getHashCode(ListNBT tag, int result) { - for (INBT tagItem : tag) { + private int getHashCode(ListTag tag, int result) { + for (Tag tagItem : tag) { result = getHashCode(tagItem, result); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/AllowedTagList.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/AllowedTagList.java index 2fab37882..fe63f9fc4 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/AllowedTagList.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/AllowedTagList.java @@ -1,10 +1,10 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.nbt.StringNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.Constants; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.StringTag; +import net.minecraft.nbt.Tag; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; import java.util.ArrayList; @@ -15,12 +15,10 @@ import java.util.Set; public class AllowedTagList { private static final String NBT_ALLOWED_ITEM_TAGS = "AllowedItemTags"; private static final String NBT_ALLOWED_FLUID_TAGS = "AllowedFluidTags"; - - private List> allowedItemTags = new ArrayList<>(); - private List> allowedFluidTags = new ArrayList<>(); - @Nullable private final Runnable listener; + private List> allowedItemTags = new ArrayList<>(); + private List> allowedFluidTags = new ArrayList<>(); public AllowedTagList(@Nullable Runnable listener, int size) { for (int i = 0; i < size; ++i) { @@ -31,8 +29,8 @@ public class AllowedTagList { this.listener = listener; } - public CompoundNBT writeToNbt() { - CompoundNBT tag = new CompoundNBT(); + public CompoundTag writeToNbt() { + CompoundTag tag = new CompoundTag(); tag.put(NBT_ALLOWED_ITEM_TAGS, getList(allowedItemTags)); tag.put(NBT_ALLOWED_FLUID_TAGS, getList(allowedFluidTags)); @@ -40,23 +38,23 @@ public class AllowedTagList { return tag; } - public void readFromNbt(CompoundNBT tag) { + public void readFromNbt(CompoundTag tag) { if (tag.contains(NBT_ALLOWED_ITEM_TAGS)) { - applyList(allowedItemTags, tag.getList(NBT_ALLOWED_ITEM_TAGS, Constants.NBT.TAG_LIST)); + applyList(allowedItemTags, tag.getList(NBT_ALLOWED_ITEM_TAGS, Tag.TAG_LIST)); } if (tag.contains(NBT_ALLOWED_FLUID_TAGS)) { - applyList(allowedFluidTags, tag.getList(NBT_ALLOWED_FLUID_TAGS, Constants.NBT.TAG_LIST)); + applyList(allowedFluidTags, tag.getList(NBT_ALLOWED_FLUID_TAGS, Tag.TAG_LIST)); } } - private ListNBT getList(List> tagsPerSlot) { - ListNBT list = new ListNBT(); + private ListTag getList(List> tagsPerSlot) { + ListTag list = new ListTag(); for (Set tags : tagsPerSlot) { - ListNBT subList = new ListNBT(); + ListTag subList = new ListTag(); - tags.forEach(t -> subList.add(StringNBT.valueOf(t.toString()))); + tags.forEach(t -> subList.add(StringTag.valueOf(t.toString()))); list.add(subList); } @@ -64,9 +62,9 @@ public class AllowedTagList { return list; } - private void applyList(List> list, ListNBT tagList) { + private void applyList(List> list, ListTag tagList) { for (int i = 0; i < tagList.size(); ++i) { - ListNBT subList = tagList.getList(i); + ListTag subList = tagList.getList(i); for (int j = 0; j < subList.size(); ++j) { list.get(i).add(new ResourceLocation(subList.getString(j))); @@ -78,16 +76,16 @@ public class AllowedTagList { return allowedItemTags; } - public List> getAllowedFluidTags() { - return allowedFluidTags; - } - public void setAllowedItemTags(List> allowedItemTags) { this.allowedItemTags = allowedItemTags; notifyListener(); } + public List> getAllowedFluidTags() { + return allowedFluidTags; + } + public void setAllowedFluidTags(List> allowedFluidTags) { this.allowedFluidTags = allowedFluidTags; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingManager.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingManager.java index 5e25aef4d..432399d7d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingManager.java @@ -10,12 +10,12 @@ import com.refinedmods.refinedstorage.api.network.INetworkNodeGraphEntry; import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.calculator.CalculationResult; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; -import net.minecraftforge.common.util.Constants; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.nbt.Tag; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.IItemHandlerModifiable; import org.apache.logging.log4j.LogManager; @@ -36,7 +36,7 @@ public class CraftingManager implements ICraftingManager { private final INetwork network; - private final Map> containerInventories = new LinkedHashMap<>(); + private final Map> containerInventories = new LinkedHashMap<>(); private final Map> patternToContainer = new HashMap<>(); private final List patterns = new ArrayList<>(); @@ -44,11 +44,9 @@ public class CraftingManager implements ICraftingManager { private final Map tasks = new LinkedHashMap<>(); private final List tasksToAdd = new ArrayList<>(); private final List tasksToCancel = new ArrayList<>(); - private ListNBT tasksToRead; - private final Map throttledRequesters = new HashMap<>(); - private final Set listeners = new HashSet<>(); + private ListTag tasksToRead; public CraftingManager(INetwork network) { this.network = network; @@ -66,7 +64,7 @@ public class CraftingManager implements ICraftingManager { } @Override - public Map> getNamedContainers() { + public Map> getNamedContainers() { return containerInventories; } @@ -179,10 +177,10 @@ public class CraftingManager implements ICraftingManager { private void readTasks() { for (int i = 0; i < tasksToRead.size(); ++i) { - CompoundNBT taskTag = tasksToRead.getCompound(i); + CompoundTag taskTag = tasksToRead.getCompound(i); ResourceLocation taskType = new ResourceLocation(taskTag.getString(NBT_TASK_TYPE)); - CompoundNBT taskData = taskTag.getCompound(NBT_TASK_DATA); + CompoundTag taskData = taskTag.getCompound(NBT_TASK_DATA); ICraftingTaskFactory factory = API.instance().getCraftingTaskRegistry().get(taskType); if (factory != null) { @@ -200,19 +198,19 @@ public class CraftingManager implements ICraftingManager { } @Override - public void readFromNbt(CompoundNBT tag) { - this.tasksToRead = tag.getList(NBT_TASKS, Constants.NBT.TAG_COMPOUND); + public void readFromNbt(CompoundTag tag) { + this.tasksToRead = tag.getList(NBT_TASKS, Tag.TAG_COMPOUND); } @Override - public CompoundNBT writeToNbt(CompoundNBT tag) { - ListNBT list = new ListNBT(); + public CompoundTag writeToNbt(CompoundTag tag) { + ListTag list = new ListTag(); for (ICraftingTask task : tasks.values()) { - CompoundNBT taskTag = new CompoundNBT(); + CompoundTag taskTag = new CompoundTag(); taskTag.putString(NBT_TASK_TYPE, task.getPattern().getCraftingTaskFactoryId().toString()); - taskTag.put(NBT_TASK_DATA, task.writeToNbt(new CompoundNBT())); + taskTag.put(NBT_TASK_DATA, task.writeToNbt(new CompoundTag())); list.add(taskTag); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPattern.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPattern.java index e5b9f6c81..74ab92021 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPattern.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPattern.java @@ -5,14 +5,14 @@ import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPatternContainer import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.CraftingTaskFactory; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.ICraftingRecipe; -import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.core.NonNullList; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CraftingRecipe; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; @@ -23,13 +23,13 @@ public class CraftingPattern implements ICraftingPattern { private final boolean processing; private final boolean exact; @Nullable - private final ICraftingRecipe recipe; + private final CraftingRecipe recipe; private final CraftingPatternInputs inputs; private final CraftingPatternOutputs outputs; @Nullable private final AllowedTagList allowedTagList; - public CraftingPattern(CraftingPatternContext context, boolean processing, boolean exact, @Nullable ICraftingRecipe recipe, CraftingPatternInputs inputs, CraftingPatternOutputs outputs, @Nullable AllowedTagList allowedTagList) { + public CraftingPattern(CraftingPatternContext context, boolean processing, boolean exact, @Nullable CraftingRecipe recipe, CraftingPatternInputs inputs, CraftingPatternOutputs outputs, @Nullable AllowedTagList allowedTagList) { this.context = context; this.processing = processing; this.exact = exact; @@ -61,7 +61,7 @@ public class CraftingPattern implements ICraftingPattern { @Nullable @Override - public ITextComponent getErrorMessage() { + public Component getErrorMessage() { return null; } @@ -89,7 +89,7 @@ public class CraftingPattern implements ICraftingPattern { throw new IllegalArgumentException("The items that are taken (" + took.size() + ") should match the inputs for this pattern (" + inputs.getInputs().size() + ")"); } - CraftingInventory inv = new DummyCraftingInventory(); + CraftingContainer inv = new DummyCraftingInventory(); for (int i = 0; i < took.size(); ++i) { inv.setItem(i, took.get(i)); @@ -122,7 +122,7 @@ public class CraftingPattern implements ICraftingPattern { throw new IllegalArgumentException("The items that are taken (" + took.size() + ") should match the inputs for this pattern (" + inputs.getInputs().size() + ")"); } - CraftingInventory inv = new DummyCraftingInventory(); + CraftingContainer inv = new DummyCraftingInventory(); for (int i = 0; i < took.size(); ++i) { inv.setItem(i, took.get(i)); @@ -265,11 +265,11 @@ public class CraftingPattern implements ICraftingPattern { return result; } - public static class DummyCraftingInventory extends CraftingInventory { + public static class DummyCraftingInventory extends CraftingContainer { public DummyCraftingInventory() { - super(new Container(null, 0) { + super(new AbstractContainerMenu(null, 0) { @Override - public boolean stillValid(PlayerEntity player) { + public boolean stillValid(Player player) { return true; } }, 3, 3); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternContext.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternContext.java index 32777ea46..c06973d75 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternContext.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternContext.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting; import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPatternContainer; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; public class CraftingPatternContext { private final ICraftingPatternContainer container; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternFactory.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternFactory.java index 4221349ab..a66f6b5a6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternFactory.java @@ -4,18 +4,18 @@ import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPattern; import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPatternContainer; import com.refinedmods.refinedstorage.apiimpl.network.node.GridNetworkNode; import com.refinedmods.refinedstorage.item.PatternItem; -import net.minecraft.fluid.Fluid; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.ICraftingRecipe; -import net.minecraft.item.crafting.IRecipeType; +import net.minecraft.core.NonNullList; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.FluidTags; import net.minecraft.tags.ItemTags; -import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CraftingRecipe; +import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.material.Fluid; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; @@ -24,7 +24,7 @@ import java.util.*; public class CraftingPatternFactory { public static final CraftingPatternFactory INSTANCE = new CraftingPatternFactory(); - public ICraftingPattern create(World world, ICraftingPatternContainer container, ItemStack stack) { + public ICraftingPattern create(Level world, ICraftingPatternContainer container, ItemStack stack) { CraftingPatternContext context = new CraftingPatternContext(container, stack); boolean processing = PatternItem.isProcessing(stack); @@ -36,7 +36,7 @@ public class CraftingPatternFactory { NonNullList byproducts = NonNullList.create(); List> fluidInputs = new ArrayList<>(); NonNullList fluidOutputs = NonNullList.create(); - ICraftingRecipe recipe = null; + CraftingRecipe recipe = null; try { if (processing) { @@ -46,16 +46,16 @@ public class CraftingPatternFactory { } if (outputs.isEmpty() && fluidOutputs.isEmpty()) { - throw new CraftingPatternFactoryException(new TranslationTextComponent("misc.refinedstorage.pattern.error.processing_no_outputs")); + throw new CraftingPatternFactoryException(new TranslatableComponent("misc.refinedstorage.pattern.error.processing_no_outputs")); } } else { - CraftingInventory inv = new CraftingPattern.DummyCraftingInventory(); + CraftingContainer inv = new CraftingPattern.DummyCraftingInventory(); for (int i = 0; i < 9; ++i) { fillCraftingInputs(inv, stack, inputs, i); } - Optional foundRecipe = world.getRecipeManager().getRecipeFor(IRecipeType.CRAFTING, inv, world); + Optional foundRecipe = world.getRecipeManager().getRecipeFor(RecipeType.CRAFTING, inv, world); if (foundRecipe.isPresent()) { recipe = foundRecipe.get(); @@ -70,10 +70,10 @@ public class CraftingPatternFactory { modifyCraftingInputsToUseAlternatives(recipe, inputs); } } else { - throw new CraftingPatternFactoryException(new TranslationTextComponent("misc.refinedstorage.pattern.error.no_output")); + throw new CraftingPatternFactoryException(new TranslatableComponent("misc.refinedstorage.pattern.error.no_output")); } } else { - throw new CraftingPatternFactoryException(new TranslationTextComponent("misc.refinedstorage.pattern.error.recipe_does_not_exist")); + throw new CraftingPatternFactoryException(new TranslatableComponent("misc.refinedstorage.pattern.error.recipe_does_not_exist")); } } } catch (CraftingPatternFactoryException e) { @@ -108,7 +108,7 @@ public class CraftingPatternFactory { for (ResourceLocation declaredAllowedTag : declaredAllowedTags) { if (!tagsOfItem.contains(declaredAllowedTag)) { throw new CraftingPatternFactoryException( - new TranslationTextComponent( + new TranslatableComponent( "misc.refinedstorage.pattern.error.tag_no_longer_applicable", declaredAllowedTag.toString(), input.getHoverName() @@ -147,7 +147,7 @@ public class CraftingPatternFactory { for (ResourceLocation declaredAllowedTag : declaredAllowedTags) { if (!tagsOfFluid.contains(declaredAllowedTag)) { throw new CraftingPatternFactoryException( - new TranslationTextComponent( + new TranslatableComponent( "misc.refinedstorage.pattern.error.tag_no_longer_applicable", declaredAllowedTag.toString(), input.getDisplayName() @@ -170,7 +170,7 @@ public class CraftingPatternFactory { } } - private void fillCraftingInputs(CraftingInventory inv, ItemStack stack, List> inputs, int i) { + private void fillCraftingInputs(CraftingContainer inv, ItemStack stack, List> inputs, int i) { ItemStack input = PatternItem.getInputSlot(stack, i); inputs.add(input.isEmpty() ? NonNullList.create() : NonNullList.of(ItemStack.EMPTY, input)); @@ -178,7 +178,7 @@ public class CraftingPatternFactory { inv.setItem(i, input); } - private void modifyCraftingInputsToUseAlternatives(ICraftingRecipe recipe, List> inputs) { + private void modifyCraftingInputsToUseAlternatives(CraftingRecipe recipe, List> inputs) { if (!recipe.getIngredients().isEmpty()) { inputs.clear(); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternFactoryException.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternFactoryException.java index 32be7a176..3a3cc8939 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternFactoryException.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternFactoryException.java @@ -1,15 +1,15 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.network.chat.Component; public class CraftingPatternFactoryException extends Exception { - private final transient ITextComponent errorMessage; + private final transient Component errorMessage; - public CraftingPatternFactoryException(ITextComponent errorMessage) { + public CraftingPatternFactoryException(Component errorMessage) { this.errorMessage = errorMessage; } - public ITextComponent getErrorMessage() { + public Component getErrorMessage() { return errorMessage; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternInputs.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternInputs.java index f83261480..c32b1d2b0 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternInputs.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternInputs.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; +import net.minecraft.core.NonNullList; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import java.util.List; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternOutputs.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternOutputs.java index d25551c1e..9fc2c9412 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternOutputs.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/CraftingPatternOutputs.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; +import net.minecraft.core.NonNullList; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; public class CraftingPatternOutputs { diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/InvalidCraftingPattern.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/InvalidCraftingPattern.java index d603a6348..ce1d11e6e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/InvalidCraftingPattern.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/InvalidCraftingPattern.java @@ -2,10 +2,10 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting; import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPattern; import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPatternContainer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.core.NonNullList; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; @@ -15,9 +15,9 @@ public class InvalidCraftingPattern implements ICraftingPattern { private static final String EXCEPTION_MESSAGE = "Crafting pattern is invalid"; private final CraftingPatternContext context; - private final ITextComponent errorMessage; + private final Component errorMessage; - public InvalidCraftingPattern(CraftingPatternContext context, ITextComponent errorMessage) { + public InvalidCraftingPattern(CraftingPatternContext context, Component errorMessage) { this.context = context; this.errorMessage = errorMessage; } @@ -39,7 +39,7 @@ public class InvalidCraftingPattern implements ICraftingPattern { @Nullable @Override - public ITextComponent getErrorMessage() { + public Component getErrorMessage() { return errorMessage; } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementList.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementList.java index b61e84da8..a95bdcaf8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementList.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementList.java @@ -2,7 +2,7 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.craftingmonitor; import com.refinedmods.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; import com.refinedmods.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElementList; -import net.minecraft.util.ResourceLocation; +import net.minecraft.resources.ResourceLocation; import java.util.*; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementRegistry.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementRegistry.java index 4d8786686..69d667104 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementRegistry.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementRegistry.java @@ -2,8 +2,8 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.craftingmonitor; import com.refinedmods.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; import com.refinedmods.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElementRegistry; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; import java.util.HashMap; @@ -11,16 +11,16 @@ import java.util.Map; import java.util.function.Function; public class CraftingMonitorElementRegistry implements ICraftingMonitorElementRegistry { - private final Map> registry = new HashMap<>(); + private final Map> registry = new HashMap<>(); @Override - public void add(ResourceLocation id, Function factory) { + public void add(ResourceLocation id, Function factory) { registry.put(id, factory); } @Nullable @Override - public Function get(ResourceLocation id) { + public Function get(ResourceLocation id) { return registry.get(id); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/ErrorCraftingMonitorElement.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/ErrorCraftingMonitorElement.java index e4c03fc82..6e7398c66 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/ErrorCraftingMonitorElement.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/ErrorCraftingMonitorElement.java @@ -1,15 +1,15 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.craftingmonitor; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; import com.refinedmods.refinedstorage.api.render.IElementDrawers; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.render.Styles; import com.refinedmods.refinedstorage.util.PacketBufferUtils; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; import java.util.ArrayList; @@ -26,9 +26,19 @@ public class ErrorCraftingMonitorElement implements ICraftingMonitorElement { this.message = message; } + public static ErrorCraftingMonitorElement read(FriendlyByteBuf buf) { + ResourceLocation id = buf.readResourceLocation(); + String message = PacketBufferUtils.readString(buf); + + return new ErrorCraftingMonitorElement( + API.instance().getCraftingMonitorElementRegistry().get(id).apply(buf), + message + ); + } + @Override @SuppressWarnings("unchecked") - public void draw(MatrixStack matrixStack, int x, int y, IElementDrawers drawers) { + public void draw(PoseStack matrixStack, int x, int y, IElementDrawers drawers) { base.draw(matrixStack, x, y, drawers); drawers.getErrorDrawer().draw(matrixStack, x, y, null); @@ -36,9 +46,9 @@ public class ErrorCraftingMonitorElement implements ICraftingMonitorElement { @Nullable @Override - public List getTooltip() { - List items = new ArrayList<>(base.getTooltip()); - items.add(new TranslationTextComponent(message).setStyle(Styles.RED)); + public List getTooltip() { + List items = new ArrayList<>(base.getTooltip()); + items.add(new TranslatableComponent(message).setStyle(Styles.RED)); return items; } @@ -53,23 +63,13 @@ public class ErrorCraftingMonitorElement implements ICraftingMonitorElement { } @Override - public void write(PacketBuffer buf) { + public void write(FriendlyByteBuf buf) { buf.writeResourceLocation(base.getId()); buf.writeUtf(message); base.write(buf); } - public static ErrorCraftingMonitorElement read(PacketBuffer buf) { - ResourceLocation id = buf.readResourceLocation(); - String message = PacketBufferUtils.readString(buf); - - return new ErrorCraftingMonitorElement( - API.instance().getCraftingMonitorElementRegistry().get(id).apply(buf), - message - ); - } - @Override public boolean merge(ICraftingMonitorElement element) { return elementHashCode() == element.elementHashCode() && base.merge(((ErrorCraftingMonitorElement) element).base); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/FluidCraftingMonitorElement.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/FluidCraftingMonitorElement.java index 95bc0a647..0c253a6c6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/FluidCraftingMonitorElement.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/FluidCraftingMonitorElement.java @@ -1,16 +1,16 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.craftingmonitor; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; import com.refinedmods.refinedstorage.api.render.IElementDrawers; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.util.RenderUtils; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.fluids.FluidStack; @@ -20,13 +20,11 @@ import java.util.Collections; import java.util.List; public class FluidCraftingMonitorElement implements ICraftingMonitorElement { + public static final ResourceLocation ID = new ResourceLocation(RS.ID, "fluid"); private static final int COLOR_PROCESSING = 0xFFD9EDF7; private static final int COLOR_MISSING = 0xFFF2DEDE; private static final int COLOR_SCHEDULED = 0xFFE8E5CA; private static final int COLOR_CRAFTING = 0xFFADDBC6; - - public static final ResourceLocation ID = new ResourceLocation(RS.ID, "fluid"); - private final FluidStack stack; private int stored; private int missing; @@ -43,9 +41,20 @@ public class FluidCraftingMonitorElement implements ICraftingMonitorElement { this.crafting = crafting; } + public static FluidCraftingMonitorElement read(FriendlyByteBuf buf) { + return new FluidCraftingMonitorElement( + FluidStack.readFromPacket(buf), + buf.readInt(), + buf.readInt(), + buf.readInt(), + buf.readInt(), + buf.readInt() + ); + } + @Override @OnlyIn(Dist.CLIENT) - public void draw(MatrixStack matrixStack, int x, int y, IElementDrawers drawers) { + public void draw(PoseStack matrixStack, int x, int y, IElementDrawers drawers) { if (missing > 0) { drawers.getOverlayDrawer().draw(matrixStack, x, y, COLOR_MISSING); } else if (processing > 0) { @@ -108,12 +117,12 @@ public class FluidCraftingMonitorElement implements ICraftingMonitorElement { @Nullable @Override - public List getTooltip() { + public List getTooltip() { return Collections.singletonList(stack.getFluid().getAttributes().getDisplayName(stack)); } @Override - public void write(PacketBuffer buf) { + public void write(FriendlyByteBuf buf) { stack.writeToPacket(buf); buf.writeInt(stored); buf.writeInt(missing); @@ -122,17 +131,6 @@ public class FluidCraftingMonitorElement implements ICraftingMonitorElement { buf.writeInt(crafting); } - public static FluidCraftingMonitorElement read(PacketBuffer buf) { - return new FluidCraftingMonitorElement( - FluidStack.readFromPacket(buf), - buf.readInt(), - buf.readInt(), - buf.readInt(), - buf.readInt(), - buf.readInt() - ); - } - @Override public boolean merge(ICraftingMonitorElement element) { if (element.getId().equals(getId()) && elementHashCode() == element.elementHashCode()) { @@ -170,6 +168,10 @@ public class FluidCraftingMonitorElement implements ICraftingMonitorElement { this.stack = stack; } + public static FluidCraftingMonitorElement.Builder forStack(FluidStack stack) { + return new FluidCraftingMonitorElement.Builder(stack); + } + public FluidCraftingMonitorElement.Builder stored(int stored) { this.stored = stored; return this; @@ -198,9 +200,5 @@ public class FluidCraftingMonitorElement implements ICraftingMonitorElement { public FluidCraftingMonitorElement build() { return new FluidCraftingMonitorElement(stack, stored, missing, processing, scheduled, crafting); } - - public static FluidCraftingMonitorElement.Builder forStack(FluidStack stack) { - return new FluidCraftingMonitorElement.Builder(stack); - } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/ItemCraftingMonitorElement.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/ItemCraftingMonitorElement.java index b32bf8264..5c809217a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/ItemCraftingMonitorElement.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/craftingmonitor/ItemCraftingMonitorElement.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.craftingmonitor; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; import com.refinedmods.refinedstorage.api.render.IElementDrawers; @@ -8,11 +8,11 @@ import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.util.RenderUtils; import com.refinedmods.refinedstorage.util.StackUtils; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -20,13 +20,11 @@ import javax.annotation.Nullable; import java.util.List; public class ItemCraftingMonitorElement implements ICraftingMonitorElement { + public static final ResourceLocation ID = new ResourceLocation(RS.ID, "item"); private static final int COLOR_PROCESSING = 0xFFD9EDF7; private static final int COLOR_MISSING = 0xFFF2DEDE; private static final int COLOR_SCHEDULED = 0xFFE8E5CA; private static final int COLOR_CRAFTING = 0xFFADDBC6; - - public static final ResourceLocation ID = new ResourceLocation(RS.ID, "item"); - private final ItemStack stack; private int stored; private int missing; @@ -43,9 +41,20 @@ public class ItemCraftingMonitorElement implements ICraftingMonitorElement { this.crafting = crafting; } + public static ItemCraftingMonitorElement read(FriendlyByteBuf buf) { + return new ItemCraftingMonitorElement( + StackUtils.readItemStack(buf), + buf.readInt(), + buf.readInt(), + buf.readInt(), + buf.readInt(), + buf.readInt() + ); + } + @Override @OnlyIn(Dist.CLIENT) - public void draw(MatrixStack matrixStack, int x, int y, IElementDrawers drawers) { + public void draw(PoseStack matrixStack, int x, int y, IElementDrawers drawers) { if (missing > 0) { drawers.getOverlayDrawer().draw(matrixStack, x, y, COLOR_MISSING); } else if (processing > 0) { @@ -108,12 +117,12 @@ public class ItemCraftingMonitorElement implements ICraftingMonitorElement { @Nullable @Override - public List getTooltip() { + public List getTooltip() { return RenderUtils.getTooltipFromItem(this.stack); } @Override - public void write(PacketBuffer buf) { + public void write(FriendlyByteBuf buf) { StackUtils.writeItemStack(buf, stack); buf.writeInt(stored); buf.writeInt(missing); @@ -122,17 +131,6 @@ public class ItemCraftingMonitorElement implements ICraftingMonitorElement { buf.writeInt(crafting); } - public static ItemCraftingMonitorElement read(PacketBuffer buf) { - return new ItemCraftingMonitorElement( - StackUtils.readItemStack(buf), - buf.readInt(), - buf.readInt(), - buf.readInt(), - buf.readInt(), - buf.readInt() - ); - } - @Override public boolean merge(ICraftingMonitorElement element) { if (element.getId().equals(getId()) && elementHashCode() == element.elementHashCode()) { @@ -170,6 +168,10 @@ public class ItemCraftingMonitorElement implements ICraftingMonitorElement { this.stack = stack; } + public static Builder forStack(ItemStack stack) { + return new Builder(stack); + } + public Builder stored(int stored) { this.stored = stored; return this; @@ -198,9 +200,5 @@ public class ItemCraftingMonitorElement implements ICraftingMonitorElement { public ItemCraftingMonitorElement build() { return new ItemCraftingMonitorElement(stack, stored, missing, processing, scheduled, crafting); } - - public static Builder forStack(ItemStack stack) { - return new Builder(stack); - } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/CraftingPreviewElementRegistry.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/CraftingPreviewElementRegistry.java index f7530a9e9..166f91a6e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/CraftingPreviewElementRegistry.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/CraftingPreviewElementRegistry.java @@ -2,8 +2,8 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.preview; import com.refinedmods.refinedstorage.api.autocrafting.preview.ICraftingPreviewElement; import com.refinedmods.refinedstorage.api.autocrafting.preview.ICraftingPreviewElementRegistry; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; import java.util.HashMap; @@ -11,16 +11,16 @@ import java.util.Map; import java.util.function.Function; public class CraftingPreviewElementRegistry implements ICraftingPreviewElementRegistry { - private final Map> registry = new HashMap<>(); + private final Map> registry = new HashMap<>(); @Override - public void add(ResourceLocation id, Function factory) { + public void add(ResourceLocation id, Function factory) { registry.put(id, factory); } @Nullable @Override - public Function get(ResourceLocation id) { + public Function get(ResourceLocation id) { return registry.get(id); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/ErrorCraftingPreviewElement.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/ErrorCraftingPreviewElement.java index 063fac890..98dc8e194 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/ErrorCraftingPreviewElement.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/ErrorCraftingPreviewElement.java @@ -1,13 +1,13 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.preview; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.autocrafting.preview.ICraftingPreviewElement; import com.refinedmods.refinedstorage.api.autocrafting.task.CalculationResultType; import com.refinedmods.refinedstorage.api.render.IElementDrawers; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; public class ErrorCraftingPreviewElement implements ICraftingPreviewElement { public static final ResourceLocation ID = new ResourceLocation(RS.ID, "error"); @@ -20,12 +20,20 @@ public class ErrorCraftingPreviewElement implements ICraftingPreviewElement { this.recursedPattern = recursedPattern; } + public static ErrorCraftingPreviewElement read(FriendlyByteBuf buf) { + int errorIdx = buf.readInt(); + CalculationResultType error = errorIdx >= 0 && errorIdx < CalculationResultType.values().length ? CalculationResultType.values()[errorIdx] : CalculationResultType.TOO_COMPLEX; + ItemStack stack = buf.readItem(); + + return new ErrorCraftingPreviewElement(error, stack); + } + public ItemStack getRecursedPattern() { return recursedPattern; } @Override - public void draw(MatrixStack matrixStack, int x, int y, IElementDrawers drawers) { + public void draw(PoseStack matrixStack, int x, int y, IElementDrawers drawers) { // NO OP } @@ -35,7 +43,7 @@ public class ErrorCraftingPreviewElement implements ICraftingPreviewElement { } @Override - public void write(PacketBuffer buf) { + public void write(FriendlyByteBuf buf) { buf.writeInt(type.ordinal()); buf.writeItem(recursedPattern); } @@ -44,14 +52,6 @@ public class ErrorCraftingPreviewElement implements ICraftingPreviewElement { return type; } - public static ErrorCraftingPreviewElement read(PacketBuffer buf) { - int errorIdx = buf.readInt(); - CalculationResultType error = errorIdx >= 0 && errorIdx < CalculationResultType.values().length ? CalculationResultType.values()[errorIdx] : CalculationResultType.TOO_COMPLEX; - ItemStack stack = buf.readItem(); - - return new ErrorCraftingPreviewElement(error, stack); - } - @Override public ResourceLocation getId() { return ID; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/FluidCraftingPreviewElement.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/FluidCraftingPreviewElement.java index 4b01cac74..9a11a42ad 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/FluidCraftingPreviewElement.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/FluidCraftingPreviewElement.java @@ -1,15 +1,15 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.preview; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.autocrafting.preview.ICraftingPreviewElement; import com.refinedmods.refinedstorage.api.render.IElementDrawers; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.util.RenderUtils; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.fluids.FluidStack; @@ -34,15 +34,7 @@ public class FluidCraftingPreviewElement implements ICraftingPreviewElement { this.toCraft = toCraft; } - @Override - public void write(PacketBuffer buf) { - stack.writeToPacket(buf); - buf.writeInt(available); - buf.writeBoolean(missing); - buf.writeInt(toCraft); - } - - public static FluidCraftingPreviewElement read(PacketBuffer buf) { + public static FluidCraftingPreviewElement read(FriendlyByteBuf buf) { FluidStack stack = FluidStack.readFromPacket(buf); int available = buf.readInt(); boolean missing = buf.readBoolean(); @@ -51,13 +43,21 @@ public class FluidCraftingPreviewElement implements ICraftingPreviewElement { return new FluidCraftingPreviewElement(stack, available, missing, toCraft); } + @Override + public void write(FriendlyByteBuf buf) { + stack.writeToPacket(buf); + buf.writeInt(available); + buf.writeBoolean(missing); + buf.writeInt(toCraft); + } + public FluidStack getStack() { return stack; } @Override @OnlyIn(Dist.CLIENT) - public void draw(MatrixStack matrixStack, int x, int y, IElementDrawers drawers) { + public void draw(PoseStack matrixStack, int x, int y, IElementDrawers drawers) { if (missing) { drawers.getOverlayDrawer().draw(matrixStack, x, y, 0xFFF2DEDE); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/ItemCraftingPreviewElement.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/ItemCraftingPreviewElement.java index bc3c0ffdb..67842a395 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/ItemCraftingPreviewElement.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/preview/ItemCraftingPreviewElement.java @@ -1,15 +1,15 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.preview; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.autocrafting.preview.ICraftingPreviewElement; import com.refinedmods.refinedstorage.api.render.IElementDrawers; import com.refinedmods.refinedstorage.util.RenderUtils; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.items.ItemHandlerHelper; @@ -34,19 +34,7 @@ public class ItemCraftingPreviewElement implements ICraftingPreviewElement { this.toCraft = toCraft; } - public ItemStack getStack() { - return stack; - } - - @Override - public void write(PacketBuffer buf) { - buf.writeItem(stack); - buf.writeInt(available); - buf.writeBoolean(missing); - buf.writeInt(toCraft); - } - - public static ItemCraftingPreviewElement read(PacketBuffer buf) { + public static ItemCraftingPreviewElement read(FriendlyByteBuf buf) { ItemStack stack = buf.readItem(); int available = buf.readInt(); boolean missing = buf.readBoolean(); @@ -55,9 +43,21 @@ public class ItemCraftingPreviewElement implements ICraftingPreviewElement { return new ItemCraftingPreviewElement(stack, available, missing, toCraft); } + public ItemStack getStack() { + return stack; + } + + @Override + public void write(FriendlyByteBuf buf) { + buf.writeItem(stack); + buf.writeInt(available); + buf.writeBoolean(missing); + buf.writeInt(toCraft); + } + @Override @OnlyIn(Dist.CLIENT) - public void draw(MatrixStack matrixStack, int x, int y, IElementDrawers drawers) { + public void draw(PoseStack matrixStack, int x, int y, IElementDrawers drawers) { if (missing) { drawers.getOverlayDrawer().draw(matrixStack, x, y, 0xFFF2DEDE); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/CraftingRequestInfo.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/CraftingRequestInfo.java index 4a469094a..6f1f0f51a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/CraftingRequestInfo.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/CraftingRequestInfo.java @@ -3,8 +3,8 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.task; import com.refinedmods.refinedstorage.api.autocrafting.task.CraftingTaskReadException; import com.refinedmods.refinedstorage.api.autocrafting.task.ICraftingRequestInfo; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; @@ -16,7 +16,7 @@ public class CraftingRequestInfo implements ICraftingRequestInfo { private ItemStack item; private FluidStack fluid; - public CraftingRequestInfo(CompoundNBT tag) throws CraftingTaskReadException { + public CraftingRequestInfo(CompoundTag tag) throws CraftingTaskReadException { if (!tag.getBoolean(NBT_FLUID)) { item = StackUtils.deserializeStackFromNbt(tag.getCompound(NBT_STACK)); @@ -53,13 +53,13 @@ public class CraftingRequestInfo implements ICraftingRequestInfo { } @Override - public CompoundNBT writeToNbt() { - CompoundNBT tag = new CompoundNBT(); + public CompoundTag writeToNbt() { + CompoundTag tag = new CompoundTag(); tag.putBoolean(NBT_FLUID, fluid != null); if (fluid != null) { - tag.put(NBT_STACK, fluid.writeToNBT(new CompoundNBT())); + tag.put(NBT_STACK, fluid.writeToNBT(new CompoundTag())); } else { tag.put(NBT_STACK, StackUtils.serializeStackToNbt(item)); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/CraftingTaskRegistry.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/CraftingTaskRegistry.java index bd8c1f6a2..7123cd633 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/CraftingTaskRegistry.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/CraftingTaskRegistry.java @@ -2,7 +2,7 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.task; import com.refinedmods.refinedstorage.api.autocrafting.task.ICraftingTaskFactory; import com.refinedmods.refinedstorage.api.autocrafting.task.ICraftingTaskRegistry; -import net.minecraft.util.ResourceLocation; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; import java.util.HashMap; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/README.md b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/README.md index 32e989d04..76c1684e7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/README.md +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/README.md @@ -1,4 +1,5 @@ # Autocrafting + Autocrafting has had several refactors. Some history: diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/CraftingPatternInputs.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/CraftingPatternInputs.java index b8440a641..5a97534bd 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/CraftingPatternInputs.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/CraftingPatternInputs.java @@ -3,8 +3,8 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6; import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPattern; import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; +import net.minecraft.core.NonNullList; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/CraftingTask.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/CraftingTask.java index 04d2d2ec0..031d8ad2d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/CraftingTask.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/CraftingTask.java @@ -20,10 +20,10 @@ import com.refinedmods.refinedstorage.apiimpl.storage.disk.FluidStorageDisk; import com.refinedmods.refinedstorage.apiimpl.storage.disk.ItemStorageDisk; import com.refinedmods.refinedstorage.apiimpl.storage.disk.factory.FluidStorageDiskFactory; import com.refinedmods.refinedstorage.apiimpl.storage.disk.factory.ItemStorageDiskFactory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraftforge.common.util.Constants; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.world.item.ItemStack; +import net.minecraft.nbt.Tag; import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; @@ -56,14 +56,12 @@ public class CraftingTask implements ICraftingTask, NodeListener { private final NodeList nodes; private final IStackList toExtractInitial; private final IStackList toExtractInitialFluids; - + private final CraftingMonitorElementFactory craftingMonitorElementFactory = new CraftingMonitorElementFactory(); private int ticks; private long startTime = -1; private int totalSteps; private int currentStep; - private final CraftingMonitorElementFactory craftingMonitorElementFactory = new CraftingMonitorElementFactory(); - public CraftingTask(INetwork network, ICraftingRequestInfo requested, int quantity, @@ -86,7 +84,7 @@ public class CraftingTask implements ICraftingTask, NodeListener { this.toExtractInitialFluids = toExtractInitialFluids; } - public CraftingTask(INetwork network, CompoundNBT tag) throws CraftingTaskReadException { + public CraftingTask(INetwork network, CompoundTag tag) throws CraftingTaskReadException { this.network = network; this.requested = API.instance().createCraftingRequestInfo(tag.getCompound(NBT_REQUESTED)); @@ -103,10 +101,10 @@ public class CraftingTask implements ICraftingTask, NodeListener { this.internalStorage = new ItemStorageDiskFactory().createFromNbt(null, tag.getCompound(NBT_INTERNAL_STORAGE)); this.internalFluidStorage = new FluidStorageDiskFactory().createFromNbt(null, tag.getCompound(NBT_INTERNAL_FLUID_STORAGE)); - this.toExtractInitial = SerializationUtil.readItemStackList(tag.getList(NBT_TO_EXTRACT_INITIAL, Constants.NBT.TAG_COMPOUND)); - this.toExtractInitialFluids = SerializationUtil.readFluidStackList(tag.getList(NBT_TO_EXTRACT_INITIAL_FLUIDS, Constants.NBT.TAG_COMPOUND)); + this.toExtractInitial = SerializationUtil.readItemStackList(tag.getList(NBT_TO_EXTRACT_INITIAL, Tag.TAG_COMPOUND)); + this.toExtractInitialFluids = SerializationUtil.readFluidStackList(tag.getList(NBT_TO_EXTRACT_INITIAL_FLUIDS, Tag.TAG_COMPOUND)); - ListNBT nodeList = tag.getList(NBT_CRAFTS, Constants.NBT.TAG_COMPOUND); + ListTag nodeList = tag.getList(NBT_CRAFTS, Tag.TAG_COMPOUND); for (int i = 0; i < nodeList.size(); ++i) { Node node = Node.fromNbt(network, nodeList.getCompound(i)); nodes.put(node.getPattern(), node); @@ -114,7 +112,7 @@ public class CraftingTask implements ICraftingTask, NodeListener { } @Override - public CompoundNBT writeToNbt(CompoundNBT tag) { + public CompoundTag writeToNbt(CompoundTag tag) { tag.put(NBT_REQUESTED, requested.writeToNbt()); tag.putInt(NBT_QUANTITY, quantity); tag.put(NBT_PATTERN, SerializationUtil.writePatternToNbt(pattern)); @@ -128,7 +126,7 @@ public class CraftingTask implements ICraftingTask, NodeListener { tag.putInt(NBT_TOTAL_STEPS, totalSteps); tag.putInt(NBT_CURRENT_STEP, currentStep); - ListNBT nodeList = new ListNBT(); + ListTag nodeList = new ListTag(); for (Node node : this.nodes.all()) { nodeList.add(node.writeToNbt()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/CraftingTaskFactory.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/CraftingTaskFactory.java index 5287d6e5f..263b4be58 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/CraftingTaskFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/CraftingTaskFactory.java @@ -5,8 +5,8 @@ import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPattern; import com.refinedmods.refinedstorage.api.autocrafting.task.*; import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.calculator.CraftingCalculator; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; public class CraftingTaskFactory implements ICraftingTaskFactory { public static final ResourceLocation ID = new ResourceLocation(RS.ID, "v6"); @@ -18,7 +18,7 @@ public class CraftingTaskFactory implements ICraftingTaskFactory { } @Override - public ICraftingTask createFromNbt(INetwork network, CompoundNBT tag) throws CraftingTaskReadException { + public ICraftingTask createFromNbt(INetwork network, CompoundTag tag) throws CraftingTaskReadException { return new CraftingTask(network, tag); } } \ No newline at end of file diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/IoUtil.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/IoUtil.java index afdb90e3e..c25b424f9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/IoUtil.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/IoUtil.java @@ -7,7 +7,7 @@ import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.api.util.IStackList; import com.refinedmods.refinedstorage.api.util.StackListEntry; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/SerializationUtil.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/SerializationUtil.java index 054b165bf..1c002ba5c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/SerializationUtil.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/SerializationUtil.java @@ -9,12 +9,12 @@ import com.refinedmods.refinedstorage.api.util.IStackList; import com.refinedmods.refinedstorage.api.util.StackListEntry; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.fluids.FluidStack; public class SerializationUtil { @@ -24,8 +24,8 @@ public class SerializationUtil { private SerializationUtil() { } - public static ListNBT writeItemStackList(IStackList stacks) { - ListNBT list = new ListNBT(); + public static ListTag writeItemStackList(IStackList stacks) { + ListTag list = new ListTag(); for (StackListEntry entry : stacks.getStacks()) { list.add(StackUtils.serializeStackToNbt(entry.getStack())); @@ -34,7 +34,7 @@ public class SerializationUtil { return list; } - public static IStackList readItemStackList(ListNBT list) throws CraftingTaskReadException { + public static IStackList readItemStackList(ListTag list) throws CraftingTaskReadException { IStackList stacks = API.instance().createItemStackList(); for (int i = 0; i < list.size(); ++i) { @@ -50,17 +50,17 @@ public class SerializationUtil { return stacks; } - public static ListNBT writeFluidStackList(IStackList stacks) { - ListNBT list = new ListNBT(); + public static ListTag writeFluidStackList(IStackList stacks) { + ListTag list = new ListTag(); for (StackListEntry entry : stacks.getStacks()) { - list.add(entry.getStack().writeToNBT(new CompoundNBT())); + list.add(entry.getStack().writeToNBT(new CompoundTag())); } return list; } - public static IStackList readFluidStackList(ListNBT list) throws CraftingTaskReadException { + public static IStackList readFluidStackList(ListTag list) throws CraftingTaskReadException { IStackList stacks = API.instance().createFluidStackList(); for (int i = 0; i < list.size(); ++i) { @@ -76,8 +76,8 @@ public class SerializationUtil { return stacks; } - public static CompoundNBT writePatternToNbt(ICraftingPattern pattern) { - CompoundNBT tag = new CompoundNBT(); + public static CompoundTag writePatternToNbt(ICraftingPattern pattern) { + CompoundTag tag = new CompoundTag(); tag.put(NBT_PATTERN_STACK, pattern.getStack().serializeNBT()); tag.putLong(NBT_PATTERN_CONTAINER_POS, pattern.getContainer().getPosition().asLong()); @@ -85,10 +85,10 @@ public class SerializationUtil { return tag; } - public static ICraftingPattern readPatternFromNbt(CompoundNBT tag, World world) throws CraftingTaskReadException { + public static ICraftingPattern readPatternFromNbt(CompoundTag tag, Level world) throws CraftingTaskReadException { BlockPos containerPos = BlockPos.of(tag.getLong(NBT_PATTERN_CONTAINER_POS)); - INetworkNode node = API.instance().getNetworkNodeManager((ServerWorld) world).getNode(containerPos); + INetworkNode node = API.instance().getNetworkNodeManager((ServerLevel) world).getNode(containerPos); if (node instanceof ICraftingPatternContainer) { ItemStack stack = ItemStack.of(tag.getCompound(NBT_PATTERN_STACK)); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/calculator/CraftingCalculator.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/calculator/CraftingCalculator.java index 707c8e079..d7cfc77c4 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/calculator/CraftingCalculator.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/calculator/CraftingCalculator.java @@ -19,7 +19,7 @@ import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.node.Processi import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.preview.CraftingPreviewElementFactory; import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.preview.CraftingPreviewInfo; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.ItemHandlerHelper; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/monitor/CraftingMonitorElementFactory.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/monitor/CraftingMonitorElementFactory.java index 54826aa40..bd36b79cd 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/monitor/CraftingMonitorElementFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/monitor/CraftingMonitorElementFactory.java @@ -12,7 +12,7 @@ import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.node.Crafting import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.node.Node; import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.node.ProcessingNode; import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.node.ProcessingState; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import java.util.Collection; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/CraftingNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/CraftingNode.java index 7adafa245..978bd4096 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/CraftingNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/CraftingNode.java @@ -8,11 +8,11 @@ import com.refinedmods.refinedstorage.api.storage.disk.IStorageDisk; import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.IoUtil; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.util.NonNullList; -import net.minecraftforge.common.util.Constants; +import net.minecraft.core.NonNullList; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.world.item.ItemStack; +import net.minecraft.nbt.Tag; import net.minecraftforge.fluids.FluidStack; public class CraftingNode extends Node { @@ -26,12 +26,12 @@ public class CraftingNode extends Node { this.recipe = recipe; } - public CraftingNode(INetwork network, CompoundNBT tag) throws CraftingTaskReadException { + public CraftingNode(INetwork network, CompoundTag tag) throws CraftingTaskReadException { super(network, tag); this.recipe = NonNullList.create(); - ListNBT tookList = tag.getList(NBT_RECIPE, Constants.NBT.TAG_COMPOUND); + ListTag tookList = tag.getList(NBT_RECIPE, Tag.TAG_COMPOUND); for (int i = 0; i < tookList.size(); ++i) { recipe.add(StackUtils.deserializeStackFromNbt(tookList.getCompound(i))); } @@ -83,10 +83,10 @@ public class CraftingNode extends Node { } @Override - public CompoundNBT writeToNbt() { - CompoundNBT tag = super.writeToNbt(); + public CompoundTag writeToNbt() { + CompoundTag tag = super.writeToNbt(); - ListNBT tookList = new ListNBT(); + ListTag tookList = new ListTag(); for (ItemStack took : this.recipe) { tookList.add(StackUtils.serializeStackToNbt(took)); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/Node.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/Node.java index 860db50e1..aaf4aa4f6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/Node.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/Node.java @@ -5,8 +5,8 @@ import com.refinedmods.refinedstorage.api.autocrafting.task.CraftingTaskReadExce import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.api.storage.disk.IStorageDisk; import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.SerializationUtil; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; public abstract class Node { @@ -15,21 +15,18 @@ public abstract class Node { private static final String NBT_IS_PROCESSING = "IsProcessing"; private static final String NBT_QUANTITY = "Quantity"; private static final String NBT_QUANTITY_TOTAL = "TotalQuantity"; - + protected final NodeRequirements requirements = new NodeRequirements(); private final boolean root; private final ICraftingPattern pattern; - protected int quantity; protected int totalQuantity; - protected final NodeRequirements requirements = new NodeRequirements(); - protected Node(ICraftingPattern pattern, boolean root) { this.pattern = pattern; this.root = root; } - protected Node(INetwork network, CompoundNBT tag) throws CraftingTaskReadException { + protected Node(INetwork network, CompoundTag tag) throws CraftingTaskReadException { this.quantity = tag.getInt(NBT_QUANTITY); this.totalQuantity = tag.getInt(NBT_QUANTITY_TOTAL); this.pattern = SerializationUtil.readPatternFromNbt(tag.getCompound(NBT_PATTERN), network.getWorld()); @@ -37,7 +34,7 @@ public abstract class Node { this.requirements.readFromNbt(tag); } - public static Node fromNbt(INetwork network, CompoundNBT tag) throws CraftingTaskReadException { + public static Node fromNbt(INetwork network, CompoundTag tag) throws CraftingTaskReadException { return tag.getBoolean(NBT_IS_PROCESSING) ? new ProcessingNode(network, tag) : new CraftingNode(network, tag); } @@ -71,8 +68,8 @@ public abstract class Node { return requirements; } - public CompoundNBT writeToNbt() { - CompoundNBT tag = new CompoundNBT(); + public CompoundTag writeToNbt() { + CompoundTag tag = new CompoundTag(); tag.putInt(NBT_QUANTITY, quantity); tag.putInt(NBT_QUANTITY_TOTAL, totalQuantity); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/NodeList.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/NodeList.java index 152549f81..a6f442b07 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/NodeList.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/NodeList.java @@ -3,8 +3,8 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.node; import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPattern; import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPatternContainer; import com.refinedmods.refinedstorage.api.network.INetwork; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; +import net.minecraft.core.NonNullList; +import net.minecraft.world.item.ItemStack; import java.util.*; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/NodeRequirements.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/NodeRequirements.java index c98288228..fe2e3559f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/NodeRequirements.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/NodeRequirements.java @@ -6,10 +6,10 @@ import com.refinedmods.refinedstorage.api.util.IStackList; import com.refinedmods.refinedstorage.api.util.StackListEntry; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.SerializationUtil; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraftforge.common.util.Constants; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.Tag; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; @@ -146,8 +146,8 @@ public class NodeRequirements { return toReturn; } - public void readFromNbt(CompoundNBT tag) throws CraftingTaskReadException { - ListNBT itemRequirementsTag = tag.getList(NBT_ITEMS_TO_USE, Constants.NBT.TAG_LIST); + public void readFromNbt(CompoundTag tag) throws CraftingTaskReadException { + ListTag itemRequirementsTag = tag.getList(NBT_ITEMS_TO_USE, Tag.TAG_LIST); for (int i = 0; i < itemRequirementsTag.size(); i++) { itemRequirements.put(i, SerializationUtil.readItemStackList(itemRequirementsTag.getList(i))); } @@ -157,7 +157,7 @@ public class NodeRequirements { itemsNeededPerCraft.put(i, itemsNeededPerCraftTag.get(i)); } - ListNBT fluidRequirementsTag = tag.getList(NBT_FLUIDS_TO_USE, Constants.NBT.TAG_LIST); + ListTag fluidRequirementsTag = tag.getList(NBT_FLUIDS_TO_USE, Tag.TAG_LIST); for (int i = 0; i < fluidRequirementsTag.size(); i++) { fluidRequirements.put(i, SerializationUtil.readFluidStackList(fluidRequirementsTag.getList(i))); } @@ -168,8 +168,8 @@ public class NodeRequirements { } } - public CompoundNBT writeToNbt(CompoundNBT tag) { - ListNBT itemRequirementsTag = new ListNBT(); + public CompoundTag writeToNbt(CompoundTag tag) { + ListTag itemRequirementsTag = new ListTag(); for (IStackList list : itemRequirements.values()) { itemRequirementsTag.add(SerializationUtil.writeItemStackList(list)); } @@ -177,7 +177,7 @@ public class NodeRequirements { tag.putIntArray(NBT_ITEMS_NEEDED_PER_CRAFT, Ints.toArray(itemsNeededPerCraft.values())); - ListNBT fluidRequirementsTag = new ListNBT(); + ListTag fluidRequirementsTag = new ListTag(); for (IStackList list : fluidRequirements.values()) { fluidRequirementsTag.add(SerializationUtil.writeFluidStackList(list)); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/ProcessingNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/ProcessingNode.java index fc51f65a6..bab8673e3 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/ProcessingNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/node/ProcessingNode.java @@ -11,9 +11,9 @@ import com.refinedmods.refinedstorage.api.util.StackListEntry; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.IoUtil; import com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.SerializationUtil; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraftforge.common.util.Constants; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; +import net.minecraft.nbt.Tag; import net.minecraftforge.fluids.FluidStack; public class ProcessingNode extends Node { @@ -42,14 +42,14 @@ public class ProcessingNode extends Node { initSetsToReceive(); } - public ProcessingNode(INetwork network, CompoundNBT tag) throws CraftingTaskReadException { + public ProcessingNode(INetwork network, CompoundTag tag) throws CraftingTaskReadException { super(network, tag); - this.itemsReceived = SerializationUtil.readItemStackList(tag.getList(NBT_ITEMS_RECEIVED, Constants.NBT.TAG_COMPOUND)); - this.fluidsReceived = SerializationUtil.readFluidStackList(tag.getList(NBT_FLUIDS_RECEIVED, Constants.NBT.TAG_COMPOUND)); + this.itemsReceived = SerializationUtil.readItemStackList(tag.getList(NBT_ITEMS_RECEIVED, Tag.TAG_COMPOUND)); + this.fluidsReceived = SerializationUtil.readFluidStackList(tag.getList(NBT_FLUIDS_RECEIVED, Tag.TAG_COMPOUND)); - this.singleItemSetToRequire = SerializationUtil.readItemStackList(tag.getList(NBT_SINGLE_ITEM_SET_TO_REQUIRE, Constants.NBT.TAG_COMPOUND)); - this.singleFluidSetToRequire = SerializationUtil.readFluidStackList(tag.getList(NBT_SINGLE_FLUID_SET_TO_REQUIRE, Constants.NBT.TAG_COMPOUND)); + this.singleItemSetToRequire = SerializationUtil.readItemStackList(tag.getList(NBT_SINGLE_ITEM_SET_TO_REQUIRE, Tag.TAG_COMPOUND)); + this.singleFluidSetToRequire = SerializationUtil.readFluidStackList(tag.getList(NBT_SINGLE_FLUID_SET_TO_REQUIRE, Tag.TAG_COMPOUND)); this.state = ProcessingState.values()[tag.getInt(NBT_STATE)]; @@ -254,8 +254,8 @@ public class ProcessingNode extends Node { } @Override - public CompoundNBT writeToNbt() { - CompoundNBT tag = super.writeToNbt(); + public CompoundTag writeToNbt() { + CompoundTag tag = super.writeToNbt(); tag.put(NBT_ITEMS_RECEIVED, SerializationUtil.writeItemStackList(itemsReceived)); tag.put(NBT_FLUIDS_RECEIVED, SerializationUtil.writeFluidStackList(fluidsReceived)); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/preview/CraftingPreviewElementFactory.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/preview/CraftingPreviewElementFactory.java index b1ce5244d..be9d1fc39 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/preview/CraftingPreviewElementFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/preview/CraftingPreviewElementFactory.java @@ -6,7 +6,7 @@ import com.refinedmods.refinedstorage.api.util.StackListEntry; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.autocrafting.preview.FluidCraftingPreviewElement; import com.refinedmods.refinedstorage.apiimpl.autocrafting.preview.ItemCraftingPreviewElement; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; @@ -38,7 +38,7 @@ public class CraftingPreviewElementFactory { for (ItemStack stack : ImmutableList.copyOf(info.getToCraft()).reverse()) { int hash = API.instance().getItemStackHashCode(stack); - ItemCraftingPreviewElement previewStack = map.computeIfAbsent(hash, key -> new ItemCraftingPreviewElement(stack.getStack())); + ItemCraftingPreviewElement previewStack = map.computeIfAbsent(hash, key -> new ItemCraftingPreviewElement(stack)); previewStack.addToCraft(stack.getCount()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/preview/CraftingPreviewInfo.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/preview/CraftingPreviewInfo.java index f10f32ce1..836019c46 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/preview/CraftingPreviewInfo.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/autocrafting/task/v6/preview/CraftingPreviewInfo.java @@ -2,7 +2,7 @@ package com.refinedmods.refinedstorage.apiimpl.autocrafting.task.v6.preview; import com.refinedmods.refinedstorage.api.util.IStackList; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/Network.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/Network.java index 944154941..3ef581159 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/Network.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/Network.java @@ -35,15 +35,15 @@ import com.refinedmods.refinedstorage.tile.ControllerTile; import com.refinedmods.refinedstorage.tile.config.IRedstoneConfigurable; import com.refinedmods.refinedstorage.tile.config.RedstoneMode; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.block.BlockState; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Util; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; -import net.minecraftforge.common.util.Constants; +import net.minecraft.Util; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.nbt.Tag; import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.ItemHandlerHelper; @@ -76,16 +76,13 @@ public class Network implements INetwork, IRedstoneConfigurable { private final IStorageCache fluidStorage = new FluidStorageCache(this); private final BaseEnergyStorage energy = new BaseEnergyStorage(RS.SERVER_CONFIG.getController().getCapacity(), RS.SERVER_CONFIG.getController().getMaxTransfer(), 0); private final RootNetworkNode root; - - + private final BlockPos pos; + private final Level world; + private final NetworkType type; private ItemStorageTracker itemStorageTracker; private UUID itemStorageTrackerId; private FluidStorageTracker fluidStorageTracker; private UUID fluidStorageTrackerId; - - private final BlockPos pos; - private final World world; - private final NetworkType type; private ControllerBlock.EnergyType lastEnergyType = ControllerBlock.EnergyType.OFF; private int lastEnergyUsage; private RedstoneMode redstoneMode = RedstoneMode.IGNORE; @@ -99,13 +96,13 @@ public class Network implements INetwork, IRedstoneConfigurable { private long[] tickTimes = new long[100]; private int tickCounter = 0; - public Network(World world, BlockPos pos, NetworkType type) { + public Network(Level world, BlockPos pos, NetworkType type) { this.pos = pos; this.world = world; this.type = type; this.root = new RootNetworkNode(this, world, pos); this.nodeGraph.addListener(() -> { - TileEntity tile = world.getBlockEntity(pos); + BlockEntity tile = world.getBlockEntity(pos); if (tile instanceof ControllerTile) { ((ControllerTile) tile).getDataManager().sendParameterToWatchers(ControllerTile.NODES); @@ -113,6 +110,24 @@ public class Network implements INetwork, IRedstoneConfigurable { }); } + public static int getEnergyScaled(int stored, int capacity, int scale) { + return (int) ((float) stored / (float) capacity * (float) scale); + } + + public static ControllerBlock.EnergyType getEnergyType(int stored, int capacity) { + int energy = getEnergyScaled(stored, capacity, 100); + + if (energy <= 0) { + return ControllerBlock.EnergyType.OFF; + } else if (energy <= 10) { + return ControllerBlock.EnergyType.NEARLY_OFF; + } else if (energy <= 20) { + return ControllerBlock.EnergyType.NEARLY_ON; + } + + return ControllerBlock.EnergyType.ON; + } + public RootNetworkNode getRoot() { return root; } @@ -236,8 +251,8 @@ public class Network implements INetwork, IRedstoneConfigurable { } nodeGraph.disconnectAll(); - API.instance().getStorageTrackerManager((ServerWorld) getWorld()).remove(itemStorageTrackerId); - API.instance().getStorageTrackerManager((ServerWorld) getWorld()).remove(fluidStorageTrackerId); + API.instance().getStorageTrackerManager((ServerLevel) getWorld()).remove(itemStorageTrackerId); + API.instance().getStorageTrackerManager((ServerLevel) getWorld()).remove(fluidStorageTrackerId); } @Override @@ -471,7 +486,7 @@ public class Network implements INetwork, IRedstoneConfigurable { this.itemStorageTrackerId = UUID.randomUUID(); } - this.itemStorageTracker = (ItemStorageTracker) API.instance().getStorageTrackerManager((ServerWorld) world).getOrCreate(itemStorageTrackerId, StorageType.ITEM); + this.itemStorageTracker = (ItemStorageTracker) API.instance().getStorageTrackerManager((ServerLevel) world).getOrCreate(itemStorageTrackerId, StorageType.ITEM); } return itemStorageTracker; @@ -484,19 +499,19 @@ public class Network implements INetwork, IRedstoneConfigurable { this.fluidStorageTrackerId = UUID.randomUUID(); } - this.fluidStorageTracker = (FluidStorageTracker) API.instance().getStorageTrackerManager((ServerWorld) world).getOrCreate(fluidStorageTrackerId, StorageType.FLUID); + this.fluidStorageTracker = (FluidStorageTracker) API.instance().getStorageTrackerManager((ServerLevel) world).getOrCreate(fluidStorageTrackerId, StorageType.FLUID); } return fluidStorageTracker; } @Override - public World getWorld() { + public Level getWorld() { return world; } @Override - public INetwork readFromNbt(CompoundNBT tag) { + public INetwork readFromNbt(CompoundTag tag) { if (tag.contains(NBT_ENERGY)) { this.energy.setStored(tag.getInt(NBT_ENERGY)); } @@ -509,7 +524,7 @@ public class Network implements INetwork, IRedstoneConfigurable { this.itemStorageTrackerId = tag.getUUID(NBT_ITEM_STORAGE_TRACKER_ID); } else { if (tag.contains(NBT_ITEM_STORAGE_TRACKER)) { //TODO: remove next version - getItemStorageTracker().readFromNbt(tag.getList(NBT_ITEM_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND)); + getItemStorageTracker().readFromNbt(tag.getList(NBT_ITEM_STORAGE_TRACKER, Tag.TAG_COMPOUND)); } } @@ -517,7 +532,7 @@ public class Network implements INetwork, IRedstoneConfigurable { this.fluidStorageTrackerId = tag.getUUID(NBT_FLUID_STORAGE_TRACKER_ID); } else { if (tag.contains(NBT_FLUID_STORAGE_TRACKER)) { //TODO: remove next version - getFluidStorageTracker().readFromNbt(tag.getList(NBT_FLUID_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND)); + getFluidStorageTracker().readFromNbt(tag.getList(NBT_FLUID_STORAGE_TRACKER, Tag.TAG_COMPOUND)); } } @@ -525,7 +540,7 @@ public class Network implements INetwork, IRedstoneConfigurable { } @Override - public CompoundNBT writeToNbt(CompoundNBT tag) { + public CompoundTag writeToNbt(CompoundTag tag) { tag.putInt(NBT_ENERGY, this.energy.getEnergyStored()); redstoneMode.write(tag); @@ -549,11 +564,7 @@ public class Network implements INetwork, IRedstoneConfigurable { @Override public void markDirty() { - API.instance().getNetworkManager((ServerWorld) world).markForSaving(); - } - - public static int getEnergyScaled(int stored, int capacity, int scale) { - return (int) ((float) stored / (float) capacity * (float) scale); + API.instance().getNetworkManager((ServerLevel) world).markForSaving(); } public ControllerBlock.EnergyType getEnergyType() { @@ -564,20 +575,6 @@ public class Network implements INetwork, IRedstoneConfigurable { return getEnergyType(this.energy.getEnergyStored(), this.energy.getMaxEnergyStored()); } - public static ControllerBlock.EnergyType getEnergyType(int stored, int capacity) { - int energy = getEnergyScaled(stored, capacity, 100); - - if (energy <= 0) { - return ControllerBlock.EnergyType.OFF; - } else if (energy <= 10) { - return ControllerBlock.EnergyType.NEARLY_OFF; - } else if (energy <= 20) { - return ControllerBlock.EnergyType.NEARLY_ON; - } - - return ControllerBlock.EnergyType.ON; - } - @Override public RedstoneMode getRedstoneMode() { return redstoneMode; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkListener.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkListener.java index 13b40e080..080c2b645 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkListener.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkListener.java @@ -3,7 +3,7 @@ package com.refinedmods.refinedstorage.apiimpl.network; import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.api.network.node.INetworkNode; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.server.level.ServerLevel; import net.minecraftforge.event.TickEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -13,7 +13,7 @@ public class NetworkListener { if (!e.world.isClientSide() && e.phase == TickEvent.Phase.END) { e.world.getProfiler().push("network ticking"); - for (INetwork network : API.instance().getNetworkManager((ServerWorld) e.world).all()) { + for (INetwork network : API.instance().getNetworkManager((ServerLevel) e.world).all()) { network.update(); } @@ -21,7 +21,7 @@ public class NetworkListener { e.world.getProfiler().push("network node ticking"); - for (INetworkNode node : API.instance().getNetworkNodeManager((ServerWorld) e.world).all()) { + for (INetworkNode node : API.instance().getNetworkNodeManager((ServerLevel) e.world).all()) { node.update(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkManager.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkManager.java index 48dd8abfb..bf9661c4d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkManager.java @@ -4,11 +4,11 @@ import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.api.network.INetworkManager; import com.refinedmods.refinedstorage.api.network.NetworkType; import com.refinedmods.refinedstorage.apiimpl.util.RSWorldSavedData; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.common.util.Constants; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.Tag; +import net.minecraft.world.level.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -24,29 +24,27 @@ public class NetworkManager extends RSWorldSavedData implements INetworkManager private static final String NBT_DATA = "Data"; private static final String NBT_POS = "Pos"; - private final World world; + private final Level world; private final Logger logger = LogManager.getLogger(getClass()); private final ConcurrentHashMap networks = new ConcurrentHashMap<>(); - public NetworkManager(String name, World world) { - super(name); - + public NetworkManager(Level world) { this.world = world; } @Override - public void load(CompoundNBT tag) { + public void load(CompoundTag tag) { if (tag.contains(NBT_NETWORKS)) { - ListNBT networksTag = tag.getList(NBT_NETWORKS, Constants.NBT.TAG_COMPOUND); + ListTag networksTag = tag.getList(NBT_NETWORKS, Tag.TAG_COMPOUND); this.networks.clear(); for (int i = 0; i < networksTag.size(); ++i) { - CompoundNBT networkTag = networksTag.getCompound(i); + CompoundTag networkTag = networksTag.getCompound(i); - CompoundNBT data = networkTag.getCompound(NBT_DATA); + CompoundTag data = networkTag.getCompound(NBT_DATA); BlockPos pos = BlockPos.of(networkTag.getLong(NBT_POS)); int type = networkTag.getInt(NBT_TYPE); @@ -64,15 +62,15 @@ public class NetworkManager extends RSWorldSavedData implements INetworkManager } @Override - public CompoundNBT save(CompoundNBT tag) { - ListNBT list = new ListNBT(); + public CompoundTag save(CompoundTag tag) { + ListTag list = new ListTag(); for (INetwork network : all()) { try { - CompoundNBT networkTag = new CompoundNBT(); + CompoundTag networkTag = new CompoundTag(); networkTag.putLong(NBT_POS, network.getPosition().asLong()); - networkTag.put(NBT_DATA, network.writeToNbt(new CompoundNBT())); + networkTag.put(NBT_DATA, network.writeToNbt(new CompoundTag())); networkTag.putInt(NBT_TYPE, network.getType().ordinal()); list.add(networkTag); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeGraph.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeGraph.java index d2805d755..89549f810 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeGraph.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeGraph.java @@ -5,25 +5,21 @@ import com.refinedmods.refinedstorage.api.network.*; import com.refinedmods.refinedstorage.api.network.node.INetworkNode; import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.Block; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nullable; import java.util.*; import java.util.function.Consumer; -import com.refinedmods.refinedstorage.api.network.INetworkNodeVisitor.Operator; - public class NetworkNodeGraph implements INetworkNodeGraph { private final INetwork network; - private Set entries = Sets.newConcurrentHashSet(); private final List listeners = new LinkedList<>(); - private final Set> actions = new HashSet<>(); - + private Set entries = Sets.newConcurrentHashSet(); private boolean invalidating = false; public NetworkNodeGraph(INetwork network) { @@ -31,7 +27,7 @@ public class NetworkNodeGraph implements INetworkNodeGraph { } @Override - public void invalidate(Action action, World world, BlockPos origin) { + public void invalidate(Action action, Level world, BlockPos origin) { this.invalidating = true; Operator operator = new Operator(action); @@ -95,10 +91,43 @@ public class NetworkNodeGraph implements INetworkNodeGraph { listeners.forEach(INetworkNodeGraphListener::onChanged); } - protected World getWorld() { + protected Level getWorld() { return network.getWorld(); } + private static class Visitor implements INetworkNodeVisitor { + private final INetworkNode node; + private final Level world; + private final BlockPos pos; + private final Direction side; + private final BlockEntity tile; + + Visitor(INetworkNode node, Level world, BlockPos pos, Direction side, BlockEntity tile) { + this.node = node; + this.world = world; + this.pos = pos; + this.side = side; + this.tile = tile; + } + + @Override + public void visit(Operator operator) { + if (node instanceof INetworkNodeVisitor) { + ((INetworkNodeVisitor) node).visit(operator); + } else { + for (Direction checkSide : Direction.values()) { + if (checkSide != side) { // Avoid going backward + INetworkNode nodeOnSide = NetworkUtils.getNodeFromTile(tile); + + if (nodeOnSide == node) { + operator.apply(world, pos.relative(checkSide), checkSide.getOpposite()); + } + } + } + } + } + } + private class Operator implements INetworkNodeVisitor.Operator { private final Set foundNodes = Sets.newConcurrentHashSet(); // All scanned entries @@ -114,8 +143,8 @@ public class NetworkNodeGraph implements INetworkNodeGraph { } @Override - public void apply(World world, BlockPos pos, @Nullable Direction side) { - TileEntity tile = world.getBlockEntity(pos); + public void apply(Level world, BlockPos pos, @Nullable Direction side) { + BlockEntity tile = world.getBlockEntity(pos); INetworkNode otherNode = NetworkUtils.getNodeFromTile(tile); if (otherNode != null) { @@ -144,7 +173,7 @@ public class NetworkNodeGraph implements INetworkNodeGraph { } } - private void dropConflictingBlock(World world, BlockPos pos) { + private void dropConflictingBlock(Level world, BlockPos pos) { if (!network.getPosition().equals(pos)) { Block.dropResources(world.getBlockState(pos), world, pos, world.getBlockEntity(pos)); @@ -157,37 +186,4 @@ public class NetworkNodeGraph implements INetworkNodeGraph { return action; } } - - private static class Visitor implements INetworkNodeVisitor { - private final INetworkNode node; - private final World world; - private final BlockPos pos; - private final Direction side; - private final TileEntity tile; - - Visitor(INetworkNode node, World world, BlockPos pos, Direction side, TileEntity tile) { - this.node = node; - this.world = world; - this.pos = pos; - this.side = side; - this.tile = tile; - } - - @Override - public void visit(Operator operator) { - if (node instanceof INetworkNodeVisitor) { - ((INetworkNodeVisitor) node).visit(operator); - } else { - for (Direction checkSide : Direction.values()) { - if (checkSide != side) { // Avoid going backward - INetworkNode nodeOnSide = NetworkUtils.getNodeFromTile(tile); - - if (nodeOnSide == node) { - operator.apply(world, pos.relative(checkSide), checkSide.getOpposite()); - } - } - } - } - } - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeListener.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeListener.java index 5b38a1910..862938e90 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeListener.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeListener.java @@ -6,19 +6,19 @@ import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.PlayerUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.LevelAccessor; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; public class NetworkNodeListener { @SubscribeEvent public void onBlockPlace(BlockEvent.EntityPlaceEvent e) { - if (!e.getWorld().isClientSide() && e.getEntity() instanceof PlayerEntity) { - PlayerEntity player = (PlayerEntity) e.getEntity(); + if (!e.getWorld().isClientSide() && e.getEntity() instanceof Player) { + Player player = (Player) e.getEntity(); INetworkNode placed = NetworkUtils.getNodeFromTile(e.getWorld().getBlockEntity(e.getPos())); @@ -32,7 +32,7 @@ public class NetworkNodeListener { e.setCanceled(true); //Fixes desync as we do not cancel the event clientside - PlayerUtils.updateHeldItems((ServerPlayerEntity) player); + PlayerUtils.updateHeldItems((ServerPlayer) player); return; } @@ -45,7 +45,7 @@ public class NetworkNodeListener { } } - private void discoverNode(IWorld world, BlockPos pos) { + private void discoverNode(LevelAccessor world, BlockPos pos) { for (Direction facing : Direction.values()) { INetworkNode node = NetworkUtils.getNodeFromTile(world.getBlockEntity(pos.relative(facing))); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeManager.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeManager.java index 5c3273ae6..753cf4ae7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeManager.java @@ -5,12 +5,12 @@ import com.refinedmods.refinedstorage.api.network.node.INetworkNodeFactory; import com.refinedmods.refinedstorage.api.network.node.INetworkNodeManager; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.util.RSWorldSavedData; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.common.util.Constants; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.Level; +import net.minecraft.nbt.Tag; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -26,30 +26,28 @@ public class NetworkNodeManager extends RSWorldSavedData implements INetworkNode private static final String NBT_NODE_DATA = "Data"; private static final String NBT_NODE_POS = "Pos"; - private final World world; + private final Level world; private final Logger logger = LogManager.getLogger(getClass()); private final ConcurrentHashMap nodes = new ConcurrentHashMap<>(); - public NetworkNodeManager(String name, World world) { - super(name); - + public NetworkNodeManager(Level world) { this.world = world; } @Override - public void load(CompoundNBT tag) { + public void load(CompoundTag tag) { if (tag.contains(NBT_NODES)) { - ListNBT nodesTag = tag.getList(NBT_NODES, Constants.NBT.TAG_COMPOUND); + ListTag nodesTag = tag.getList(NBT_NODES, Tag.TAG_COMPOUND); this.nodes.clear(); for (int i = 0; i < nodesTag.size(); ++i) { - CompoundNBT nodeTag = nodesTag.getCompound(i); + CompoundTag nodeTag = nodesTag.getCompound(i); ResourceLocation id = new ResourceLocation(nodeTag.getString(NBT_NODE_ID)); - CompoundNBT data = nodeTag.getCompound(NBT_NODE_DATA); + CompoundTag data = nodeTag.getCompound(NBT_NODE_DATA); BlockPos pos = BlockPos.of(nodeTag.getLong(NBT_NODE_POS)); INetworkNodeFactory factory = API.instance().getNetworkNodeRegistry().get(id); @@ -74,16 +72,16 @@ public class NetworkNodeManager extends RSWorldSavedData implements INetworkNode } @Override - public CompoundNBT save(CompoundNBT tag) { - ListNBT list = new ListNBT(); + public CompoundTag save(CompoundTag tag) { + ListTag list = new ListTag(); for (INetworkNode node : all()) { try { - CompoundNBT nodeTag = new CompoundNBT(); + CompoundTag nodeTag = new CompoundTag(); nodeTag.putString(NBT_NODE_ID, node.getId().toString()); nodeTag.putLong(NBT_NODE_POS, node.getPos().asLong()); - nodeTag.put(NBT_NODE_DATA, node.write(new CompoundNBT())); + nodeTag.put(NBT_NODE_DATA, node.write(new CompoundTag())); list.add(nodeTag); } catch (Throwable t) { diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeRegistry.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeRegistry.java index a3a16aa89..c0b874bf0 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeRegistry.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/NetworkNodeRegistry.java @@ -2,7 +2,7 @@ package com.refinedmods.refinedstorage.apiimpl.network; import com.refinedmods.refinedstorage.api.network.node.INetworkNodeFactory; import com.refinedmods.refinedstorage.api.network.node.INetworkNodeRegistry; -import net.minecraft.util.ResourceLocation; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; import java.util.HashMap; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/CraftingGridBehavior.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/CraftingGridBehavior.java index 5b1c13a2d..dce3e72d0 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/CraftingGridBehavior.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/CraftingGridBehavior.java @@ -13,15 +13,15 @@ import com.refinedmods.refinedstorage.api.util.IStackList; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.network.node.GridNetworkNode; import com.refinedmods.refinedstorage.item.PatternItem; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.ICraftingRecipe; -import net.minecraft.util.NonNullList; +import net.minecraft.core.NonNullList; +import net.minecraft.world.Containers; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CraftingRecipe; import net.minecraftforge.common.ForgeHooks; -import net.minecraftforge.fml.hooks.BasicEventHooks; +import net.minecraftforge.event.ForgeEventFactory; import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nullable; @@ -30,12 +30,12 @@ import java.util.concurrent.atomic.AtomicReference; public class CraftingGridBehavior implements ICraftingGridBehavior { @Override - public void onCrafted(INetworkAwareGrid grid, ICraftingRecipe recipe, PlayerEntity player, @Nullable IStackList availableItems, @Nullable IStackList usedItems) { + public void onCrafted(INetworkAwareGrid grid, CraftingRecipe recipe, Player player, @Nullable IStackList availableItems, @Nullable IStackList usedItems) { NonNullList remainder = recipe.getRemainingItems(grid.getCraftingMatrix()); INetwork network = grid.getNetwork(); - CraftingInventory matrix = grid.getCraftingMatrix(); + CraftingContainer matrix = grid.getCraftingMatrix(); for (int i = 0; i < grid.getCraftingMatrix().getContainerSize(); ++i) { ItemStack slot = matrix.getItem(i); @@ -44,12 +44,12 @@ public class CraftingGridBehavior implements ICraftingGridBehavior { if (i < remainder.size() && !remainder.get(i).isEmpty()) { // If there is no space for the remainder, dump it in the player inventory. if (!slot.isEmpty() && slot.getCount() > 1) { - if (!player.inventory.add(remainder.get(i).copy())) { // If there is no space in the player inventory, try to dump it in the network. + if (!player.getInventory().add(remainder.get(i).copy())) { // If there is no space in the player inventory, try to dump it in the network. ItemStack remainderStack = network == null ? remainder.get(i).copy() : network.insertItem(remainder.get(i).copy(), remainder.get(i).getCount(), Action.PERFORM); // If there is no space in the network, just dump it in the world. if (!remainderStack.isEmpty()) { - InventoryHelper.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), remainderStack); + Containers.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), remainderStack); } } @@ -87,8 +87,8 @@ public class CraftingGridBehavior implements ICraftingGridBehavior { } @Override - public void onCraftedShift(INetworkAwareGrid grid, PlayerEntity player) { - CraftingInventory matrix = grid.getCraftingMatrix(); + public void onCraftedShift(INetworkAwareGrid grid, Player player) { + CraftingContainer matrix = grid.getCraftingMatrix(); INetwork network = grid.getNetwork(); List craftedItemsList = new ArrayList<>(); ItemStack crafted = grid.getCraftingResult().getItem(0); @@ -123,8 +123,7 @@ public class CraftingGridBehavior implements ICraftingGridBehavior { } for (ItemStack craftedItem : craftedItemsList) { - if (!player.inventory.add(craftedItem.copy())) { - + if (!player.getInventory().add(craftedItem.copy())) { ItemStack remainder = craftedItem; if (useNetwork) { @@ -132,7 +131,7 @@ public class CraftingGridBehavior implements ICraftingGridBehavior { } if (!remainder.isEmpty()) { - InventoryHelper.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), remainder); + Containers.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), remainder); } } } @@ -141,11 +140,11 @@ public class CraftingGridBehavior implements ICraftingGridBehavior { // otherwise it's not being called. // For regular crafting, this is already called in ResultCraftingGridSlot#onTake -> onCrafting(stack) crafted.onCraftedBy(player.level, player, amountCrafted); - BasicEventHooks.firePlayerCraftingEvent(player, ItemHandlerHelper.copyStackWithSize(crafted, amountCrafted), grid.getCraftingMatrix()); + ForgeEventFactory.firePlayerCraftingEvent(player, ItemHandlerHelper.copyStackWithSize(crafted, amountCrafted), grid.getCraftingMatrix()); ForgeHooks.setCraftingPlayer(null); } - private void filterDuplicateStacks(INetwork network, CraftingInventory matrix, IStackList availableItems) { + private void filterDuplicateStacks(INetwork network, CraftingContainer matrix, IStackList availableItems) { for (int i = 0; i < matrix.getContainerSize(); ++i) { ItemStack stack = network.getItemStorageCache().getList().get(matrix.getItem(i)); @@ -157,7 +156,7 @@ public class CraftingGridBehavior implements ICraftingGridBehavior { } @Override - public void onRecipeTransfer(INetworkAwareGrid grid, PlayerEntity player, ItemStack[][] recipe) { + public void onRecipeTransfer(INetworkAwareGrid grid, Player player, ItemStack[][] recipe) { INetwork network = grid.getNetwork(); if (network != null && grid.getGridType() == GridType.CRAFTING && !network.getSecurityManager().hasPermission(Permission.EXTRACT, player)) { @@ -182,7 +181,7 @@ public class CraftingGridBehavior implements ICraftingGridBehavior { } } else { // If we aren't connected, try to insert into player inventory. If it fails, stop. - if (!player.inventory.add(slot.copy())) { + if (!player.getInventory().add(slot.copy())) { return; } } @@ -228,11 +227,11 @@ public class CraftingGridBehavior implements ICraftingGridBehavior { // If we haven't found anything in the network (or we are disconnected), go look in the player inventory if (!found) { for (ItemStack possibility : possibilities) { - for (int j = 0; j < player.inventory.getContainerSize(); ++j) { - if (API.instance().getComparer().isEqual(possibility, player.inventory.getItem(j), IComparer.COMPARE_NBT)) { - grid.getCraftingMatrix().setItem(i, ItemHandlerHelper.copyStackWithSize(player.inventory.getItem(j), 1)); + for (int j = 0; j < player.getInventory().getContainerSize(); ++j) { + if (API.instance().getComparer().isEqual(possibility, player.getInventory().getItem(j), IComparer.COMPARE_NBT)) { + grid.getCraftingMatrix().setItem(i, ItemHandlerHelper.copyStackWithSize(player.getInventory().getItem(j), 1)); - player.inventory.removeItem(j, 1); + player.getInventory().removeItem(j, 1); found = true; @@ -258,7 +257,7 @@ public class CraftingGridBehavior implements ICraftingGridBehavior { } } - private Comparator compareByItemStackCounts(PlayerEntity player, INetwork network, AtomicReference> playerItems) { + private Comparator compareByItemStackCounts(Player player, INetwork network, AtomicReference> playerItems) { return Comparator.comparingInt((ItemStack itemStack) -> { ItemStack stack = network.getItemStorageCache().getList().get(itemStack); @@ -282,10 +281,10 @@ public class CraftingGridBehavior implements ICraftingGridBehavior { }).reversed(); } - private Map makePlayerInventoryMap(PlayerEntity player, INetwork network) { + private Map makePlayerInventoryMap(Player player, INetwork network) { Map playerItems = new HashMap<>(); - for (int j = 0; j < player.inventory.getContainerSize(); j++) { - ItemStack inventoryStack = player.inventory.getItem(j); + for (int j = 0; j < player.getInventory().getContainerSize(); j++) { + ItemStack inventoryStack = player.getInventory().getItem(j); if (inventoryStack.getItem() instanceof ICraftingPatternProvider) { ICraftingPattern pattern = PatternItem.fromCache(network.getWorld(), inventoryStack); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/GridManager.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/GridManager.java index 3feeabe05..6d8540499 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/GridManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/GridManager.java @@ -6,13 +6,13 @@ import com.refinedmods.refinedstorage.api.network.grid.IGridFactory; import com.refinedmods.refinedstorage.api.network.grid.IGridManager; import com.refinedmods.refinedstorage.container.factory.GridContainerProvider; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraftforge.network.NetworkHooks; import org.apache.commons.lang3.tuple.Pair; import javax.annotation.Nullable; @@ -28,17 +28,17 @@ public class GridManager implements IGridManager { } @Override - public void openGrid(ResourceLocation id, ServerPlayerEntity player, BlockPos pos) { + public void openGrid(ResourceLocation id, ServerPlayer player, BlockPos pos) { openGrid(id, player, null, pos, new PlayerSlot(-1)); } @Override - public void openGrid(ResourceLocation id, ServerPlayerEntity player, ItemStack stack, PlayerSlot slot) { + public void openGrid(ResourceLocation id, ServerPlayer player, ItemStack stack, PlayerSlot slot) { openGrid(id, player, stack, null, slot); } - private void openGrid(ResourceLocation id, ServerPlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos, PlayerSlot slot) { - Pair grid = createGrid(id, player, stack, pos, slot); + private void openGrid(ResourceLocation id, ServerPlayer player, @Nullable ItemStack stack, @Nullable BlockPos pos, PlayerSlot slot) { + Pair grid = createGrid(id, player, stack, pos, slot); if (grid == null) { return; } @@ -62,7 +62,7 @@ public class GridManager implements IGridManager { @Override @Nullable - public Pair createGrid(ResourceLocation id, PlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos, PlayerSlot slot) { + public Pair createGrid(ResourceLocation id, Player player, @Nullable ItemStack stack, @Nullable BlockPos pos, PlayerSlot slot) { IGridFactory factory = factories.get(id); if (factory == null) { @@ -70,7 +70,7 @@ public class GridManager implements IGridManager { } IGrid grid = null; - TileEntity tile = factory.getRelevantTile(player.level, pos); + BlockEntity tile = factory.getRelevantTile(player.level, pos); if (factory.getType() == GridFactoryType.STACK) { grid = factory.createFromStack(player, stack, slot); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/GridTab.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/GridTab.java index 9c9a04ddf..d65dec700 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/GridTab.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/GridTab.java @@ -1,25 +1,26 @@ package com.refinedmods.refinedstorage.apiimpl.network.grid; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.platform.Lighting; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.network.grid.IGridTab; import com.refinedmods.refinedstorage.api.render.IElementDrawer; import com.refinedmods.refinedstorage.api.util.IFilter; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.StringTextComponent; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.client.gui.GuiUtils; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.Collections; import java.util.List; public class GridTab implements IGridTab { private final List filters; - private final String name; + @Nullable + private final TextComponent name; @Nonnull private final ItemStack icon; @Nullable @@ -27,7 +28,7 @@ public class GridTab implements IGridTab { public GridTab(List filters, String name, @Nonnull ItemStack icon, @Nullable FluidStack fluidIcon) { this.filters = filters; - this.name = name; + this.name = name.trim().isEmpty() ? null : new TextComponent(name); this.icon = icon; this.fluidIcon = fluidIcon; } @@ -38,22 +39,23 @@ public class GridTab implements IGridTab { } @Override - public void drawTooltip(MatrixStack matrixStack, int x, int y, int screenWidth, int screenHeight, FontRenderer fontRenderer) { - if (!name.trim().equals("")) { - GuiUtils.drawHoveringText(matrixStack, Collections.singletonList(new StringTextComponent(name)), x, y, screenWidth, screenHeight, -1, fontRenderer); + public void drawTooltip(PoseStack matrixStack, int x, int y, int screenWidth, int screenHeight, Font fontRenderer) { + if (name != null) { + Screen screen = Minecraft.getInstance().screen; + if (screen != null) { + screen.renderTooltip(matrixStack, name, x, y); + } } } @Override - public void drawIcon(MatrixStack matrixStack, int x, int y, IElementDrawer itemDrawer, IElementDrawer fluidDrawer) { + public void drawIcon(PoseStack matrixStack, int x, int y, IElementDrawer itemDrawer, IElementDrawer fluidDrawer) { if (!icon.isEmpty()) { - RenderHelper.setupFor3DItems(); + Lighting.setupFor3DItems(); itemDrawer.draw(matrixStack, x, y, icon); } else { fluidDrawer.draw(matrixStack, x, y, fluidIcon); - - RenderSystem.enableAlphaTest(); } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/GridBlockGridFactory.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/GridBlockGridFactory.java index 1985be640..ae7a94ba2 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/GridBlockGridFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/GridBlockGridFactory.java @@ -6,12 +6,12 @@ import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.api.network.grid.IGridFactory; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.tile.grid.GridTile; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nullable; @@ -20,14 +20,14 @@ public class GridBlockGridFactory implements IGridFactory { @Override @Nullable - public IGrid createFromStack(PlayerEntity player, ItemStack stack, PlayerSlot slot) { + public IGrid createFromStack(Player player, ItemStack stack, PlayerSlot slot) { return null; } @Override @Nullable - public IGrid createFromBlock(PlayerEntity player, BlockPos pos) { - TileEntity tile = getRelevantTile(player.getCommandSenderWorld(), pos); + public IGrid createFromBlock(Player player, BlockPos pos) { + BlockEntity tile = getRelevantTile(player.getCommandSenderWorld(), pos); if (tile instanceof GridTile) { return ((GridTile) tile).getNode(); @@ -38,7 +38,7 @@ public class GridBlockGridFactory implements IGridFactory { @Nullable @Override - public TileEntity getRelevantTile(World world, BlockPos pos) { + public BlockEntity getRelevantTile(Level world, BlockPos pos) { return world.getBlockEntity(pos); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/PortableGridBlockGridFactory.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/PortableGridBlockGridFactory.java index dbb365490..06c845a97 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/PortableGridBlockGridFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/PortableGridBlockGridFactory.java @@ -6,12 +6,12 @@ import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.api.network.grid.IGridFactory; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.tile.grid.portable.PortableGridTile; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nullable; @@ -20,14 +20,14 @@ public class PortableGridBlockGridFactory implements IGridFactory { @Override @Nullable - public IGrid createFromStack(PlayerEntity player, ItemStack stack, PlayerSlot slot) { + public IGrid createFromStack(Player player, ItemStack stack, PlayerSlot slot) { return null; } @Override @Nullable - public IGrid createFromBlock(PlayerEntity player, BlockPos pos) { - TileEntity tile = getRelevantTile(player.level, pos); + public IGrid createFromBlock(Player player, BlockPos pos) { + BlockEntity tile = getRelevantTile(player.level, pos); if (tile instanceof PortableGridTile) { return (PortableGridTile) tile; @@ -38,7 +38,7 @@ public class PortableGridBlockGridFactory implements IGridFactory { @Nullable @Override - public TileEntity getRelevantTile(World world, BlockPos pos) { + public BlockEntity getRelevantTile(Level world, BlockPos pos) { return world.getBlockEntity(pos); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/PortableGridGridFactory.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/PortableGridGridFactory.java index aa6b02059..d1d5d69bc 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/PortableGridGridFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/PortableGridGridFactory.java @@ -6,12 +6,12 @@ import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.api.network.grid.IGridFactory; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.tile.grid.portable.PortableGrid; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nullable; @@ -20,7 +20,7 @@ public class PortableGridGridFactory implements IGridFactory { @Nullable @Override - public IGrid createFromStack(PlayerEntity player, ItemStack stack, PlayerSlot slot) { + public IGrid createFromStack(Player player, ItemStack stack, PlayerSlot slot) { PortableGrid portableGrid = new PortableGrid(player, stack, slot); portableGrid.onOpen(); @@ -30,13 +30,13 @@ public class PortableGridGridFactory implements IGridFactory { @Nullable @Override - public IGrid createFromBlock(PlayerEntity player, BlockPos pos) { + public IGrid createFromBlock(Player player, BlockPos pos) { return null; } @Nullable @Override - public TileEntity getRelevantTile(World world, BlockPos pos) { + public BlockEntity getRelevantTile(Level world, BlockPos pos) { return null; } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/WirelessFluidGridGridFactory.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/WirelessFluidGridGridFactory.java index d7522506d..2f05928b9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/WirelessFluidGridGridFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/WirelessFluidGridGridFactory.java @@ -6,12 +6,12 @@ import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.api.network.grid.IGridFactory; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.tile.grid.WirelessFluidGrid; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nullable; @@ -20,19 +20,19 @@ public class WirelessFluidGridGridFactory implements IGridFactory { @Nullable @Override - public IGrid createFromStack(PlayerEntity player, ItemStack stack, PlayerSlot slot) { + public IGrid createFromStack(Player player, ItemStack stack, PlayerSlot slot) { return new WirelessFluidGrid(stack, player.getServer(), slot); } @Nullable @Override - public IGrid createFromBlock(PlayerEntity player, BlockPos pos) { + public IGrid createFromBlock(Player player, BlockPos pos) { return null; } @Nullable @Override - public TileEntity getRelevantTile(World world, BlockPos pos) { + public BlockEntity getRelevantTile(Level world, BlockPos pos) { return null; } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/WirelessGridGridFactory.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/WirelessGridGridFactory.java index 5c39aa1df..a015138a7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/WirelessGridGridFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/factory/WirelessGridGridFactory.java @@ -6,12 +6,12 @@ import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.api.network.grid.IGridFactory; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.tile.grid.WirelessGrid; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nullable; @@ -20,19 +20,19 @@ public class WirelessGridGridFactory implements IGridFactory { @Nullable @Override - public IGrid createFromStack(PlayerEntity player, ItemStack stack, PlayerSlot slot) { + public IGrid createFromStack(Player player, ItemStack stack, PlayerSlot slot) { return new WirelessGrid(stack, player.getServer(), slot); } @Nullable @Override - public IGrid createFromBlock(PlayerEntity player, BlockPos pos) { + public IGrid createFromBlock(Player player, BlockPos pos) { return null; } @Nullable @Override - public TileEntity getRelevantTile(World world, BlockPos pos) { + public BlockEntity getRelevantTile(Level world, BlockPos pos) { return null; } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/FluidGridHandler.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/FluidGridHandler.java index f0e8683cd..83139489b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/FluidGridHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/FluidGridHandler.java @@ -12,9 +12,9 @@ import com.refinedmods.refinedstorage.network.grid.GridCraftingPreviewResponseMe import com.refinedmods.refinedstorage.network.grid.GridCraftingStartResponseMessage; import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.ItemStack; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.Containers; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; @@ -33,7 +33,7 @@ public class FluidGridHandler implements IFluidGridHandler { } @Override - public void onExtract(ServerPlayerEntity player, UUID id, boolean shift) { + public void onExtract(ServerPlayer player, UUID id, boolean shift) { FluidStack stack = network.getFluidStorageCache().getList().get(id); if (stack == null || stack.getAmount() < FluidAttributes.BUCKET_VOLUME || !network.getSecurityManager().hasPermission(Permission.EXTRACT, player) || !network.canRun()) { @@ -48,12 +48,12 @@ public class FluidGridHandler implements IFluidGridHandler { fluidHandler.fill(extracted, IFluidHandler.FluidAction.EXECUTE); if (shift) { - if (!player.inventory.add(fluidHandler.getContainer().copy())) { - InventoryHelper.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), fluidHandler.getContainer()); + if (!player.getInventory().add(fluidHandler.getContainer().copy())) { + Containers.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), fluidHandler.getContainer()); } } else { - player.inventory.setCarried(fluidHandler.getContainer()); - player.broadcastCarriedItem(); + player.containerMenu.setCarried(fluidHandler.getContainer()); + // TODO player.broadcastCarriedItem(); } network.getNetworkItemManager().drainEnergy(player, RS.SERVER_CONFIG.getWirelessFluidGrid().getExtractUsage()); @@ -62,7 +62,7 @@ public class FluidGridHandler implements IFluidGridHandler { @Override @Nonnull - public ItemStack onInsert(ServerPlayerEntity player, ItemStack container) { + public ItemStack onInsert(ServerPlayer player, ItemStack container) { if (!network.getSecurityManager().hasPermission(Permission.INSERT, player) || !network.canRun()) { return container; } @@ -85,13 +85,13 @@ public class FluidGridHandler implements IFluidGridHandler { } @Override - public void onInsertHeldContainer(ServerPlayerEntity player) { - player.inventory.setCarried(onInsert(player, player.inventory.getCarried())); - player.broadcastCarriedItem(); + public void onInsertHeldContainer(ServerPlayer player) { + player.containerMenu.setCarried(onInsert(player, player.containerMenu.getCarried())); + // TODO player.broadcastCarriedItem(); } @Override - public void onCraftingPreviewRequested(ServerPlayerEntity player, UUID id, int quantity, boolean noPreview) { + public void onCraftingPreviewRequested(ServerPlayer player, UUID id, int quantity, boolean noPreview) { if (!network.getSecurityManager().hasPermission(Permission.AUTOCRAFTING, player)) { return; } @@ -133,7 +133,7 @@ public class FluidGridHandler implements IFluidGridHandler { } @Override - public void onCraftingRequested(ServerPlayerEntity player, UUID id, int quantity) { + public void onCraftingRequested(ServerPlayer player, UUID id, int quantity) { if (quantity <= 0 || !network.getSecurityManager().hasPermission(Permission.AUTOCRAFTING, player)) { return; } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java index 5889e9b6e..0021e7591 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java @@ -16,9 +16,9 @@ import com.refinedmods.refinedstorage.apiimpl.autocrafting.preview.ErrorCrafting import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.network.grid.GridCraftingPreviewResponseMessage; import com.refinedmods.refinedstorage.network.grid.GridCraftingStartResponseMessage; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Direction; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; @@ -36,8 +36,89 @@ public class ItemGridHandler implements IItemGridHandler { this.network = network; } + public static void onInventoryScroll(IItemGridHandler gridHandler, ServerPlayer player, int slot, boolean shift, boolean up, @Nullable INetwork network) { + if (player == null || !(player.containerMenu instanceof GridContainer)) { + return; + } + + if (network != null && ((up && !network.getSecurityManager().hasPermission(Permission.INSERT, player)) || (!up && !network.getSecurityManager().hasPermission(Permission.EXTRACT, player)))) { + return; + } + + int flags = EXTRACT_SINGLE; + ItemStack stackInSlot = player.getInventory().getItem(slot); + ItemStack stackOnCursor = player.containerMenu.getCarried(); + + if (shift) { // shift + flags |= EXTRACT_SHIFT; + + if (!stackInSlot.isEmpty()) { + if (up) { // scroll up + player.getInventory().setItem(slot, gridHandler.onInsert(player, stackInSlot, true)); + } else { // scroll down + gridHandler.onExtract(player, stackInSlot, slot, flags); + } + } + } else { //ctrl + if (up) { // scroll up + if (!stackOnCursor.isEmpty()) { + gridHandler.onInsert(player, stackOnCursor, true); + // TODO player.broadcastCarriedItem(); + } + } else { //scroll down + if (stackOnCursor.isEmpty()) { + gridHandler.onExtract(player, stackInSlot, -1, flags); + } else { + gridHandler.onExtract(player, stackOnCursor, -1, flags); + } + } + } + } + + public static void onGridScroll(IItemGridHandler gridHandler, ServerPlayer player, @Nullable UUID id, boolean shift, boolean up, @Nullable INetwork network) { + if (player == null || !(player.containerMenu instanceof GridContainer)) { + return; + } + + if (network != null && ((up && !network.getSecurityManager().hasPermission(Permission.INSERT, player)) || (!up && !network.getSecurityManager().hasPermission(Permission.EXTRACT, player)))) { + return; + } + + IGrid grid = ((GridContainer) player.containerMenu).getGrid(); + + int flags = EXTRACT_SINGLE; + + if (shift && id != null) { + flags |= EXTRACT_SHIFT; + if (up) { //scroll up, insert hovering stack pulled from Inventory + IStorageCache cache = grid.getStorageCache(); + if (cache == null || cache.getList().get(id) == null) { + return; + } + + for (int i = 0; i < player.getInventory().items.size(); i++) { + if (API.instance().getComparer().isEqual(player.getInventory().getItem(i), cache.getList().get(id), IComparer.COMPARE_NBT)) { + gridHandler.onInsert(player, player.getInventory().getItem(i), true); + break; + } + } + + } else { //scroll down, extract hovering item + gridHandler.onExtract(player, id, -1, flags); + } + } else { //ctrl + if (!up && id != null) { //scroll down, extract hovering item + gridHandler.onExtract(player, id, -1, flags); + + } else if (up && !player.containerMenu.getCarried().isEmpty()) { // insert stack from cursor + gridHandler.onInsert(player, player.containerMenu.getCarried(), true); + // TODO player.broadcastCarriedItem(); + } + } + } + @Override - public void onExtract(ServerPlayerEntity player, ItemStack stack, int preferredSlot, int flags) { + public void onExtract(ServerPlayer player, ItemStack stack, int preferredSlot, int flags) { StackListEntry stackEntry = network.getItemStorageCache().getList().getEntry(stack, IComparer.COMPARE_NBT); if (stackEntry != null) { onExtract(player, stackEntry.getId(), preferredSlot, flags); @@ -45,7 +126,7 @@ public class ItemGridHandler implements IItemGridHandler { } @Override - public void onExtract(ServerPlayerEntity player, UUID id, int preferredSlot, int flags) { + public void onExtract(ServerPlayer player, UUID id, int preferredSlot, int flags) { ItemStack item = network.getItemStorageCache().getList().get(id); if (item == null || !network.getSecurityManager().hasPermission(Permission.EXTRACT, player) || !network.canRun()) { @@ -58,13 +139,13 @@ public class ItemGridHandler implements IItemGridHandler { boolean single = (flags & EXTRACT_SINGLE) == EXTRACT_SINGLE; - ItemStack held = player.inventory.getCarried(); + ItemStack held = player.containerMenu.getCarried(); if (single) { if (!held.isEmpty() && (!API.instance().getComparer().isEqualNoQuantity(item, held) || held.getCount() + 1 > held.getMaxStackSize())) { return; } - } else if (!player.inventory.getCarried().isEmpty()) { + } else if (!player.containerMenu.getCarried().isEmpty()) { return; } @@ -119,10 +200,10 @@ public class ItemGridHandler implements IItemGridHandler { if (single && !held.isEmpty()) { held.grow(1); } else { - player.inventory.setCarried(took); + player.containerMenu.setCarried(took); } - player.broadcastCarriedItem(); + // TODO player.broadcastCarriedItem(); } } @@ -132,7 +213,7 @@ public class ItemGridHandler implements IItemGridHandler { @Override @Nonnull - public ItemStack onInsert(ServerPlayerEntity player, ItemStack stack, boolean single) { + public ItemStack onInsert(ServerPlayer player, ItemStack stack, boolean single) { if (!network.getSecurityManager().hasPermission(Permission.INSERT, player) || !network.canRun()) { return stack; } @@ -156,12 +237,12 @@ public class ItemGridHandler implements IItemGridHandler { } @Override - public void onInsertHeldItem(ServerPlayerEntity player, boolean single) { - if (player.inventory.getCarried().isEmpty() || !network.getSecurityManager().hasPermission(Permission.INSERT, player) || !network.canRun()) { + public void onInsertHeldItem(ServerPlayer player, boolean single) { + if (player.containerMenu.getCarried().isEmpty() || !network.getSecurityManager().hasPermission(Permission.INSERT, player) || !network.canRun()) { return; } - ItemStack stack = player.inventory.getCarried(); + ItemStack stack = player.containerMenu.getCarried(); int size = single ? 1 : stack.getCount(); network.getItemStorageTracker().changed(player, stack.copy()); @@ -173,16 +254,16 @@ public class ItemGridHandler implements IItemGridHandler { stack.shrink(size); } } else { - player.inventory.setCarried(network.insertItem(stack, size, Action.PERFORM)); + player.containerMenu.setCarried(network.insertItem(stack, size, Action.PERFORM)); } - player.broadcastCarriedItem(); + // TODO player.broadcastCarriedItem(); network.getNetworkItemManager().drainEnergy(player, RS.SERVER_CONFIG.getWirelessGrid().getInsertUsage()); } @Override - public void onCraftingPreviewRequested(ServerPlayerEntity player, UUID id, int quantity, boolean noPreview) { + public void onCraftingPreviewRequested(ServerPlayer player, UUID id, int quantity, boolean noPreview) { if (!network.getSecurityManager().hasPermission(Permission.AUTOCRAFTING, player)) { return; } @@ -221,7 +302,7 @@ public class ItemGridHandler implements IItemGridHandler { } @Override - public void onCraftingRequested(ServerPlayerEntity player, UUID id, int quantity) { + public void onCraftingRequested(ServerPlayer player, UUID id, int quantity) { if (quantity <= 0 || !network.getSecurityManager().hasPermission(Permission.AUTOCRAFTING, player)) { return; } @@ -237,7 +318,7 @@ public class ItemGridHandler implements IItemGridHandler { } @Override - public void onCraftingCancelRequested(ServerPlayerEntity player, @Nullable UUID id) { + public void onCraftingCancelRequested(ServerPlayer player, @Nullable UUID id) { if (!network.getSecurityManager().hasPermission(Permission.AUTOCRAFTING, player)) { return; } @@ -248,93 +329,12 @@ public class ItemGridHandler implements IItemGridHandler { } @Override - public void onInventoryScroll(ServerPlayerEntity player, int slot, boolean shift, boolean up) { + public void onInventoryScroll(ServerPlayer player, int slot, boolean shift, boolean up) { onInventoryScroll(this, player, slot, shift, up, network); } - public static void onInventoryScroll(IItemGridHandler gridHandler, ServerPlayerEntity player, int slot, boolean shift, boolean up, @Nullable INetwork network) { - if (player == null || !(player.containerMenu instanceof GridContainer)) { - return; - } - - if (network != null && ((up && !network.getSecurityManager().hasPermission(Permission.INSERT, player)) || (!up && !network.getSecurityManager().hasPermission(Permission.EXTRACT, player)))) { - return; - } - - int flags = EXTRACT_SINGLE; - ItemStack stackInSlot = player.inventory.getItem(slot); - ItemStack stackOnCursor = player.inventory.getCarried(); - - if (shift) { // shift - flags |= EXTRACT_SHIFT; - - if (!stackInSlot.isEmpty()) { - if (up) { // scroll up - player.inventory.setItem(slot, gridHandler.onInsert(player, stackInSlot, true)); - } else { // scroll down - gridHandler.onExtract(player, stackInSlot, slot, flags); - } - } - } else { //ctrl - if (up) { // scroll up - if (!stackOnCursor.isEmpty()) { - gridHandler.onInsert(player, stackOnCursor, true); - player.broadcastCarriedItem(); - } - } else { //scroll down - if (stackOnCursor.isEmpty()) { - gridHandler.onExtract(player, stackInSlot, -1, flags); - } else { - gridHandler.onExtract(player, stackOnCursor, -1, flags); - } - } - } - } - @Override - public void onGridScroll(ServerPlayerEntity player, @Nullable UUID id, boolean shift, boolean up) { + public void onGridScroll(ServerPlayer player, @Nullable UUID id, boolean shift, boolean up) { onGridScroll(this, player, id, shift, up, network); } - - public static void onGridScroll(IItemGridHandler gridHandler, ServerPlayerEntity player, @Nullable UUID id, boolean shift, boolean up, @Nullable INetwork network) { - if (player == null || !(player.containerMenu instanceof GridContainer)) { - return; - } - - if (network != null && ((up && !network.getSecurityManager().hasPermission(Permission.INSERT, player)) || (!up && !network.getSecurityManager().hasPermission(Permission.EXTRACT, player)))) { - return; - } - - IGrid grid = ((GridContainer) player.containerMenu).getGrid(); - - int flags = EXTRACT_SINGLE; - - if (shift && id != null) { - flags |= EXTRACT_SHIFT; - if (up) { //scroll up, insert hovering stack pulled from Inventory - IStorageCache cache = grid.getStorageCache(); - if (cache == null || cache.getList().get(id) == null) { - return; - } - - for (int i = 0; i < player.inventory.items.size(); i++) { - if (API.instance().getComparer().isEqual(player.inventory.getItem(i), cache.getList().get(id), IComparer.COMPARE_NBT)) { - gridHandler.onInsert(player, player.inventory.getItem(i), true); - break; - } - } - - } else { //scroll down, extract hovering item - gridHandler.onExtract(player, id, -1, flags); - } - } else { //ctrl - if (!up && id != null) { //scroll down, extract hovering item - gridHandler.onExtract(player, id, -1, flags); - - } else if (up && !player.inventory.getCarried().isEmpty()) { // insert stack from cursor - gridHandler.onInsert(player, player.inventory.getCarried(), true); - player.broadcastCarriedItem(); - } - } - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/PortableFluidGridHandler.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/PortableFluidGridHandler.java index e4a17d1f5..3b7c30c17 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/PortableFluidGridHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/PortableFluidGridHandler.java @@ -7,9 +7,9 @@ import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.tile.grid.portable.IPortableGrid; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.ItemStack; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.Containers; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; @@ -27,7 +27,7 @@ public class PortableFluidGridHandler implements IFluidGridHandler { } @Override - public void onExtract(ServerPlayerEntity player, UUID id, boolean shift) { + public void onExtract(ServerPlayer player, UUID id, boolean shift) { if (!portableGrid.isGridActive()) { return; } @@ -40,13 +40,13 @@ public class PortableFluidGridHandler implements IFluidGridHandler { ItemStack bucket = ItemStack.EMPTY; - for (int i = 0; i < player.inventory.getContainerSize(); ++i) { - ItemStack slot = player.inventory.getItem(i); + for (int i = 0; i < player.getInventory().getContainerSize(); ++i) { + ItemStack slot = player.getInventory().getItem(i); if (API.instance().getComparer().isEqualNoQuantity(StackUtils.EMPTY_BUCKET, slot)) { bucket = StackUtils.EMPTY_BUCKET.copy(); - player.inventory.removeItem(i, 1); + player.getInventory().removeItem(i, 1); break; } @@ -59,12 +59,12 @@ public class PortableFluidGridHandler implements IFluidGridHandler { fluidHandler.fill(portableGrid.getFluidStorage().extract(stack, FluidAttributes.BUCKET_VOLUME, IComparer.COMPARE_NBT, Action.PERFORM), IFluidHandler.FluidAction.EXECUTE); if (shift) { - if (!player.inventory.add(fluidHandler.getContainer().copy())) { - InventoryHelper.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), fluidHandler.getContainer()); + if (!player.getInventory().add(fluidHandler.getContainer().copy())) { + Containers.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), fluidHandler.getContainer()); } } else { - player.inventory.setCarried(fluidHandler.getContainer()); - player.broadcastCarriedItem(); + player.containerMenu.setCarried(fluidHandler.getContainer()); + // TODO player.broadcastCarriedItem(); } portableGrid.drainEnergy(RS.SERVER_CONFIG.getPortableGrid().getExtractUsage()); @@ -74,7 +74,7 @@ public class PortableFluidGridHandler implements IFluidGridHandler { @Override @Nonnull - public ItemStack onInsert(ServerPlayerEntity player, ItemStack container) { + public ItemStack onInsert(ServerPlayer player, ItemStack container) { if (!portableGrid.isGridActive()) { return container; } @@ -97,18 +97,18 @@ public class PortableFluidGridHandler implements IFluidGridHandler { } @Override - public void onInsertHeldContainer(ServerPlayerEntity player) { - player.inventory.setCarried(onInsert(player, player.inventory.getCarried())); - player.broadcastCarriedItem(); + public void onInsertHeldContainer(ServerPlayer player) { + player.containerMenu.setCarried(onInsert(player, player.containerMenu.getCarried())); + // TODO player.broadcastCarriedItem(); } @Override - public void onCraftingPreviewRequested(ServerPlayerEntity player, UUID id, int quantity, boolean noPreview) { + public void onCraftingPreviewRequested(ServerPlayer player, UUID id, int quantity, boolean noPreview) { // NO OP } @Override - public void onCraftingRequested(ServerPlayerEntity player, UUID id, int quantity) { + public void onCraftingRequested(ServerPlayer player, UUID id, int quantity) { // NO OP } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/PortableItemGridHandler.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/PortableItemGridHandler.java index 1cacd9b1b..8407a5669 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/PortableItemGridHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/handler/PortableItemGridHandler.java @@ -7,9 +7,9 @@ import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.tile.grid.portable.IPortableGrid; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Direction; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; @@ -28,7 +28,7 @@ public class PortableItemGridHandler implements IItemGridHandler { } @Override - public void onExtract(ServerPlayerEntity player, ItemStack stack, int preferredSlot, int flags) { + public void onExtract(ServerPlayer player, ItemStack stack, int preferredSlot, int flags) { if (portableGrid.getStorage() == null || !grid.isGridActive()) { return; } @@ -39,7 +39,7 @@ public class PortableItemGridHandler implements IItemGridHandler { } @Override - public void onExtract(ServerPlayerEntity player, UUID id, int preferredSlot, int flags) { + public void onExtract(ServerPlayer player, UUID id, int preferredSlot, int flags) { if (portableGrid.getStorage() == null || !grid.isGridActive()) { return; } @@ -56,13 +56,13 @@ public class PortableItemGridHandler implements IItemGridHandler { boolean single = (flags & EXTRACT_SINGLE) == EXTRACT_SINGLE; - ItemStack held = player.inventory.getCarried(); + ItemStack held = player.containerMenu.getCarried(); if (single) { if (!held.isEmpty() && (!API.instance().getComparer().isEqualNoQuantity(item, held) || held.getCount() + 1 > held.getMaxStackSize())) { return; } - } else if (!player.inventory.getCarried().isEmpty()) { + } else if (!player.containerMenu.getCarried().isEmpty()) { return; } @@ -116,10 +116,10 @@ public class PortableItemGridHandler implements IItemGridHandler { if (single && !held.isEmpty()) { held.grow(1); } else { - player.inventory.setCarried(took); + player.containerMenu.setCarried(took); } - player.broadcastCarriedItem(); + // TODO player.broadcastCarriedItem(); } portableGrid.drainEnergy(RS.SERVER_CONFIG.getPortableGrid().getExtractUsage()); @@ -128,7 +128,7 @@ public class PortableItemGridHandler implements IItemGridHandler { @Override @Nonnull - public ItemStack onInsert(ServerPlayerEntity player, ItemStack stack, boolean single) { + public ItemStack onInsert(ServerPlayer player, ItemStack stack, boolean single) { if (portableGrid.getStorage() == null || !grid.isGridActive()) { return stack; } @@ -151,12 +151,12 @@ public class PortableItemGridHandler implements IItemGridHandler { } @Override - public void onInsertHeldItem(ServerPlayerEntity player, boolean single) { - if (player.inventory.getCarried().isEmpty() || portableGrid.getStorage() == null || !grid.isGridActive()) { + public void onInsertHeldItem(ServerPlayer player, boolean single) { + if (player.containerMenu.getCarried().isEmpty() || portableGrid.getStorage() == null || !grid.isGridActive()) { return; } - ItemStack stack = player.inventory.getCarried(); + ItemStack stack = player.containerMenu.getCarried(); int size = single ? 1 : stack.getCount(); portableGrid.getItemStorageTracker().changed(player, stack.copy()); @@ -168,36 +168,36 @@ public class PortableItemGridHandler implements IItemGridHandler { stack.shrink(size); } } else { - player.inventory.setCarried(portableGrid.getItemStorage().insert(stack, size, Action.PERFORM)); + player.containerMenu.setCarried(portableGrid.getItemStorage().insert(stack, size, Action.PERFORM)); } - player.broadcastCarriedItem(); + // TODO player.broadcastCarriedItem(); portableGrid.drainEnergy(RS.SERVER_CONFIG.getPortableGrid().getInsertUsage()); } @Override - public void onCraftingPreviewRequested(ServerPlayerEntity player, UUID id, int quantity, boolean noPreview) { + public void onCraftingPreviewRequested(ServerPlayer player, UUID id, int quantity, boolean noPreview) { // NO OP } @Override - public void onCraftingRequested(ServerPlayerEntity player, UUID id, int quantity) { + public void onCraftingRequested(ServerPlayer player, UUID id, int quantity) { // NO OP } @Override - public void onCraftingCancelRequested(ServerPlayerEntity player, @Nullable UUID id) { + public void onCraftingCancelRequested(ServerPlayer player, @Nullable UUID id) { // NO OP } @Override - public void onInventoryScroll(ServerPlayerEntity player, int slot, boolean shift, boolean up) { + public void onInventoryScroll(ServerPlayer player, int slot, boolean shift, boolean up) { ItemGridHandler.onInventoryScroll(this, player, slot, shift, up, null); } @Override - public void onGridScroll(ServerPlayerEntity player, @Nullable UUID id, boolean shift, boolean up) { + public void onGridScroll(ServerPlayer player, @Nullable UUID id, boolean shift, boolean up) { ItemGridHandler.onGridScroll(this, player, id, shift, up, null); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/NetworkItemManager.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/NetworkItemManager.java index 8054d675b..6dcd3c6f4 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/NetworkItemManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/NetworkItemManager.java @@ -8,24 +8,24 @@ import com.refinedmods.refinedstorage.api.network.item.INetworkItemManager; import com.refinedmods.refinedstorage.api.network.item.INetworkItemProvider; import com.refinedmods.refinedstorage.api.network.node.INetworkNode; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.phys.Vec3; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class NetworkItemManager implements INetworkItemManager { private final INetwork network; - private final Map items = new ConcurrentHashMap<>(); + private final Map items = new ConcurrentHashMap<>(); public NetworkItemManager(INetwork network) { this.network = network; } @Override - public void open(PlayerEntity player, ItemStack stack, PlayerSlot slot) { + public void open(Player player, ItemStack stack, PlayerSlot slot) { boolean inRange = false; for (INetworkNodeGraphEntry entry : network.getNodeGraph().all()) { @@ -37,7 +37,7 @@ public class NetworkItemManager implements INetworkItemManager { ((IWirelessTransmitter) node).getDimension() == player.getCommandSenderWorld().dimension()) { IWirelessTransmitter transmitter = (IWirelessTransmitter) node; - Vector3d pos = player.position(); + Vec3 pos = player.position(); double distance = Math.sqrt(Math.pow(transmitter.getOrigin().getX() - pos.x(), 2) + Math.pow(transmitter.getOrigin().getY() - pos.y(), 2) + Math.pow(transmitter.getOrigin().getZ() - pos.z(), 2)); @@ -50,7 +50,7 @@ public class NetworkItemManager implements INetworkItemManager { } if (!inRange) { - player.sendMessage(new TranslationTextComponent("misc.refinedstorage.network_item.out_of_range"), player.getUUID()); + player.sendMessage(new TranslatableComponent("misc.refinedstorage.network_item.out_of_range"), player.getUUID()); return; } @@ -63,17 +63,17 @@ public class NetworkItemManager implements INetworkItemManager { } @Override - public void close(PlayerEntity player) { + public void close(Player player) { items.remove(player); } @Override - public INetworkItem getItem(PlayerEntity player) { + public INetworkItem getItem(Player player) { return items.get(player); } @Override - public void drainEnergy(PlayerEntity player, int energy) { + public void drainEnergy(Player player, int energy) { INetworkItem item = getItem(player); if (item != null) { diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/WirelessCraftingMonitorNetworkItem.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/WirelessCraftingMonitorNetworkItem.java index ce6674457..35bcc3b1c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/WirelessCraftingMonitorNetworkItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/WirelessCraftingMonitorNetworkItem.java @@ -11,21 +11,21 @@ import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.item.WirelessCraftingMonitorItem; import com.refinedmods.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraftforge.network.NetworkHooks; public class WirelessCraftingMonitorNetworkItem implements INetworkItem { private final INetworkItemManager handler; - private final PlayerEntity player; + private final Player player; private final ItemStack stack; private final PlayerSlot slot; - public WirelessCraftingMonitorNetworkItem(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot) { + public WirelessCraftingMonitorNetworkItem(INetworkItemManager handler, Player player, ItemStack stack, PlayerSlot slot) { this.handler = handler; this.player = player; this.stack = stack; @@ -33,7 +33,7 @@ public class WirelessCraftingMonitorNetworkItem implements INetworkItem { } @Override - public PlayerEntity getPlayer() { + public Player getPlayer() { return player; } @@ -60,7 +60,7 @@ public class WirelessCraftingMonitorNetworkItem implements INetworkItem { WirelessCraftingMonitor wirelessCraftingMonitor = new WirelessCraftingMonitor(stack, player.getServer(), slot); NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new CraftingMonitorContainerProvider(RSContainers.WIRELESS_CRAFTING_MONITOR, wirelessCraftingMonitor, null), slot::writePlayerSlot); drainEnergy(RS.SERVER_CONFIG.getWirelessCraftingMonitor().getOpenUsage()); @@ -86,6 +86,6 @@ public class WirelessCraftingMonitorNetworkItem implements INetworkItem { } private void sendOutOfEnergyMessage() { - player.sendMessage(new TranslationTextComponent("misc.refinedstorage.network_item.out_of_energy", new TranslationTextComponent(stack.getItem().getDescriptionId())), player.getUUID()); + player.sendMessage(new TranslatableComponent("misc.refinedstorage.network_item.out_of_energy", new TranslatableComponent(stack.getItem().getDescriptionId())), player.getUUID()); } } \ No newline at end of file diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/WirelessFluidGridNetworkItem.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/WirelessFluidGridNetworkItem.java index f3edd17f2..dfae8f2cb 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/WirelessFluidGridNetworkItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/WirelessFluidGridNetworkItem.java @@ -10,20 +10,20 @@ import com.refinedmods.refinedstorage.apiimpl.network.grid.factory.WirelessFluid import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.item.WirelessFluidGridItem; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; public class WirelessFluidGridNetworkItem implements INetworkItem { private final INetworkItemManager handler; - private final PlayerEntity player; + private final Player player; private final ItemStack stack; private final PlayerSlot slot; - public WirelessFluidGridNetworkItem(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot) { + public WirelessFluidGridNetworkItem(INetworkItemManager handler, Player player, ItemStack stack, PlayerSlot slot) { this.handler = handler; this.player = player; this.stack = stack; @@ -31,7 +31,7 @@ public class WirelessFluidGridNetworkItem implements INetworkItem { } @Override - public PlayerEntity getPlayer() { + public Player getPlayer() { return player; } @@ -54,7 +54,7 @@ public class WirelessFluidGridNetworkItem implements INetworkItem { return false; } - API.instance().getGridManager().openGrid(WirelessFluidGridGridFactory.ID, (ServerPlayerEntity) player, stack, slot); + API.instance().getGridManager().openGrid(WirelessFluidGridGridFactory.ID, (ServerPlayer) player, stack, slot); drainEnergy(RS.SERVER_CONFIG.getWirelessFluidGrid().getOpenUsage()); @@ -79,6 +79,6 @@ public class WirelessFluidGridNetworkItem implements INetworkItem { } private void sendOutOfEnergyMessage() { - player.sendMessage(new TranslationTextComponent("misc.refinedstorage.network_item.out_of_energy", new TranslationTextComponent(stack.getItem().getDescriptionId())), player.getUUID()); + player.sendMessage(new TranslatableComponent("misc.refinedstorage.network_item.out_of_energy", new TranslatableComponent(stack.getItem().getDescriptionId())), player.getUUID()); } } \ No newline at end of file diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/WirelessGridNetworkItem.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/WirelessGridNetworkItem.java index 4f9e20a8d..60922f91b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/WirelessGridNetworkItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/item/WirelessGridNetworkItem.java @@ -10,20 +10,20 @@ import com.refinedmods.refinedstorage.apiimpl.network.grid.factory.WirelessGridG import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.item.WirelessGridItem; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; public class WirelessGridNetworkItem implements INetworkItem { private final INetworkItemManager handler; - private final PlayerEntity player; + private final Player player; private final ItemStack stack; private final PlayerSlot slot; - public WirelessGridNetworkItem(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot) { + public WirelessGridNetworkItem(INetworkItemManager handler, Player player, ItemStack stack, PlayerSlot slot) { this.handler = handler; this.player = player; this.stack = stack; @@ -31,7 +31,7 @@ public class WirelessGridNetworkItem implements INetworkItem { } @Override - public PlayerEntity getPlayer() { + public Player getPlayer() { return player; } @@ -54,7 +54,7 @@ public class WirelessGridNetworkItem implements INetworkItem { return false; } - API.instance().getGridManager().openGrid(WirelessGridGridFactory.ID, (ServerPlayerEntity) player, stack, slot); + API.instance().getGridManager().openGrid(WirelessGridGridFactory.ID, (ServerPlayer) player, stack, slot); drainEnergy(RS.SERVER_CONFIG.getWirelessGrid().getOpenUsage()); @@ -79,6 +79,6 @@ public class WirelessGridNetworkItem implements INetworkItem { } private void sendOutOfEnergyMessage() { - player.sendMessage(new TranslationTextComponent("misc.refinedstorage.network_item.out_of_energy", new TranslationTextComponent(stack.getItem().getDescriptionId())), player.getUUID()); + player.sendMessage(new TranslatableComponent("misc.refinedstorage.network_item.out_of_energy", new TranslatableComponent(stack.getItem().getDescriptionId())), player.getUUID()); } } \ No newline at end of file diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CableNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CableNetworkNode.java index 7491f3a1e..c0864b255 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CableNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CableNetworkNode.java @@ -4,18 +4,18 @@ import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.network.node.ICoverable; import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager; import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverType; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.Level; public class CableNetworkNode extends NetworkNode implements ICoverable { public static final ResourceLocation ID = new ResourceLocation(RS.ID, "cable"); private final CoverManager coverManager; - public CableNetworkNode(World world, BlockPos pos) { + public CableNetworkNode(Level world, BlockPos pos) { super(world, pos); this.coverManager = new CoverManager(this); } @@ -41,15 +41,15 @@ public class CableNetworkNode extends NetworkNode implements ICoverable { } @Override - public void read(CompoundNBT tag) { - if (tag.contains(CoverManager.NBT_COVER_MANAGER)){ + public void read(CompoundTag tag) { + if (tag.contains(CoverManager.NBT_COVER_MANAGER)) { this.coverManager.readFromNbt(tag.getCompound(CoverManager.NBT_COVER_MANAGER)); } super.read(tag); } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { tag.put(CoverManager.NBT_COVER_MANAGER, this.coverManager.writeToNbt()); return super.write(tag); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ConstructorNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ConstructorNetworkNode.java index 49bdfd07b..536d8fc25 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ConstructorNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ConstructorNetworkNode.java @@ -16,24 +16,24 @@ import com.refinedmods.refinedstorage.tile.config.IComparable; import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.util.StackUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.dispenser.DefaultDispenseItemBehavior; -import net.minecraft.dispenser.Position; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.projectile.FireworkRocketEntity; -import net.minecraft.item.BlockItem; -import net.minecraft.item.BlockItemUseContext; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.Hand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.PositionImpl; +import net.minecraft.core.dispenser.DefaultDispenseItemBehavior; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.projectile.FireworkRocketEntity; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.Vec3; import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; @@ -45,8 +45,6 @@ import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; - public class ConstructorNetworkNode extends NetworkNode implements IComparable, IType, ICoverable { public static final ResourceLocation ID = new ResourceLocation(RS.ID, "constructor"); @@ -63,14 +61,12 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable, private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED, UpgradeItem.Type.CRAFTING, UpgradeItem.Type.STACK) .addListener(new NetworkNodeInventoryListener(this)); - + private final CoverManager coverManager; private int compare = IComparer.COMPARE_NBT; private int type = IType.ITEMS; private boolean drop = false; - private final CoverManager coverManager; - - public ConstructorNetworkNode(World world, BlockPos pos) { + public ConstructorNetworkNode(Level world, BlockPos pos) { super(world, pos); this.coverManager = new CoverManager(this); } @@ -109,22 +105,22 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable, network.getCraftingManager().request(this, stack, FluidAttributes.BUCKET_VOLUME); } } else if (!world.getBlockState(front).getFluidState().isSource()) { - FluidUtil.tryPlaceFluid(WorldUtils.getFakePlayer((ServerWorld) world, getOwner()), world, Hand.MAIN_HAND, front, new NetworkFluidHandler(StackUtils.copy(stack, FluidAttributes.BUCKET_VOLUME)), stack); + FluidUtil.tryPlaceFluid(WorldUtils.getFakePlayer((ServerLevel) world, getOwner()), world, InteractionHand.MAIN_HAND, front, new NetworkFluidHandler(StackUtils.copy(stack, FluidAttributes.BUCKET_VOLUME)), stack); } } private void extractAndPlaceBlock(ItemStack stack) { ItemStack took = network.extractItem(stack, 1, compare, Action.SIMULATE); if (!took.isEmpty()) { - BlockItemUseContext ctx = new ConstructorBlockItemUseContext( + BlockPlaceContext ctx = new ConstructorBlockItemUseContext( world, - WorldUtils.getFakePlayer((ServerWorld) world, getOwner()), - Hand.MAIN_HAND, + WorldUtils.getFakePlayer((ServerLevel) world, getOwner()), + InteractionHand.MAIN_HAND, took, - new BlockRayTraceResult(Vector3d.ZERO, getDirection(), pos, false) + new BlockHitResult(Vec3.ZERO, getDirection(), pos, false) ); - ActionResultType result = ForgeHooks.onPlaceItemIntoWorld(ctx); + InteractionResult result = ForgeHooks.onPlaceItemIntoWorld(ctx); if (result.consumesAction()) { network.extractItem(stack, 1, Action.PERFORM); } @@ -139,7 +135,7 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable, ItemStack took = network.extractItem(stack, upgrades.getStackInteractCount(), compare, Action.PERFORM); if (!took.isEmpty()) { - DefaultDispenseItemBehavior.spawnItem(world, took, 6, getDirection(), new Position(getDispensePositionX(), getDispensePositionY(), getDispensePositionZ())); + DefaultDispenseItemBehavior.spawnItem(world, took, 6, getDirection(), new PositionImpl(getDispensePositionX(), getDispensePositionY(), getDispensePositionZ())); } else if (upgrades.hasUpgrade(UpgradeItem.Type.CRAFTING)) { network.getCraftingManager().request(this, stack, 1); } @@ -178,10 +174,10 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable, } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); - if (tag.contains(CoverManager.NBT_COVER_MANAGER)){ + if (tag.contains(CoverManager.NBT_COVER_MANAGER)) { this.coverManager.readFromNbt(tag.getCompound(CoverManager.NBT_COVER_MANAGER)); } @@ -194,7 +190,7 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable, } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); tag.put(CoverManager.NBT_COVER_MANAGER, this.coverManager.writeToNbt()); @@ -205,7 +201,7 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable, } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); tag.putInt(NBT_COMPARE, compare); @@ -220,7 +216,7 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable, } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); if (tag.contains(NBT_COMPARE)) { @@ -286,6 +282,12 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable, return coverManager; } + private static class ConstructorBlockItemUseContext extends BlockPlaceContext { + public ConstructorBlockItemUseContext(Level world, @Nullable Player player, InteractionHand hand, ItemStack stack, BlockHitResult rayTraceResult) { + super(world, player, hand, stack, rayTraceResult); + } + } + private class NetworkFluidHandler implements IFluidHandler { private final FluidStack resource; @@ -331,10 +333,4 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable, return network.extractFluid(resource, resource.getAmount(), compare, action == FluidAction.SIMULATE ? Action.SIMULATE : Action.PERFORM); } } - - private static class ConstructorBlockItemUseContext extends BlockItemUseContext { - public ConstructorBlockItemUseContext(World world, @Nullable PlayerEntity player, Hand hand, ItemStack stack, BlockRayTraceResult rayTraceResult) { - super(world, player, hand, stack, rayTraceResult); - } - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CrafterManagerNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CrafterManagerNetworkNode.java index 184595e96..cc3f2cf69 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CrafterManagerNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CrafterManagerNetworkNode.java @@ -5,11 +5,11 @@ import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.block.CrafterManagerBlock; import com.refinedmods.refinedstorage.block.NetworkNodeBlock; import com.refinedmods.refinedstorage.tile.CrafterManagerTile; -import net.minecraft.block.BlockState; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; public class CrafterManagerNetworkNode extends NetworkNode { public static final ResourceLocation ID = new ResourceLocation(RS.ID, "crafter_manager"); @@ -20,7 +20,7 @@ public class CrafterManagerNetworkNode extends NetworkNode { private int size = IGrid.SIZE_STRETCH; private int searchBoxMode = IGrid.SEARCH_BOX_MODE_NORMAL; - public CrafterManagerNetworkNode(World world, BlockPos pos) { + public CrafterManagerNetworkNode(Level world, BlockPos pos) { super(world, pos); } @@ -43,7 +43,7 @@ public class CrafterManagerNetworkNode extends NetworkNode { } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); tag.putInt(NBT_SIZE, size); @@ -53,7 +53,7 @@ public class CrafterManagerNetworkNode extends NetworkNode { } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); if (tag.contains(NBT_SIZE)) { diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CrafterNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CrafterNetworkNode.java index 0cf183d56..ea9a5b47d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CrafterNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CrafterNetworkNode.java @@ -14,17 +14,17 @@ import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryLis import com.refinedmods.refinedstorage.item.UpgradeItem; import com.refinedmods.refinedstorage.util.StackUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.INameable; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.Nameable; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; @@ -39,32 +39,16 @@ import java.util.UUID; public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternContainer { - public enum CrafterMode { - IGNORE, - SIGNAL_UNLOCKS_AUTOCRAFTING, - SIGNAL_LOCKS_AUTOCRAFTING, - PULSE_INSERTS_NEXT_SET; - - public static CrafterMode getById(int id) { - if (id >= 0 && id < values().length) { - return values()[id]; - } - - return IGNORE; - } - } - public static final ResourceLocation ID = new ResourceLocation(RS.ID, "crafter"); - - private static final ITextComponent DEFAULT_NAME = new TranslationTextComponent("gui.refinedstorage.crafter"); - + private static final Component DEFAULT_NAME = new TranslatableComponent("gui.refinedstorage.crafter"); private static final String NBT_DISPLAY_NAME = "DisplayName"; private static final String NBT_UUID = "CrafterUuid"; private static final String NBT_MODE = "Mode"; private static final String NBT_LOCKED = "Locked"; private static final String NBT_WAS_POWERED = "WasPowered"; - - private final BaseItemHandler patternsInventory = new BaseItemHandler(9) { + private final List patterns = new ArrayList<>(); + private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED) + .addListener(new NetworkNodeInventoryListener(this)); private final BaseItemHandler patternsInventory = new BaseItemHandler(9) { @Override public int getSlotLimit(int slot) { return 1; @@ -93,26 +77,17 @@ public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternC } } }); - - private final List patterns = new ArrayList<>(); - - private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED) - .addListener(new NetworkNodeInventoryListener(this)); - // Used to prevent infinite recursion on getRootContainer() when there's e.g. two crafters facing each other. private boolean visited = false; - private CrafterMode mode = CrafterMode.IGNORE; private boolean locked = false; private boolean wasPowered; - @Nullable - private ITextComponent displayName; - + private Component displayName; @Nullable private UUID uuid = null; - public CrafterNetworkNode(World world, BlockPos pos) { + public CrafterNetworkNode(Level world, BlockPos pos) { super(world, pos); } @@ -185,7 +160,7 @@ public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternC } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); StackUtils.readItems(patternsInventory, 0, tag); @@ -195,7 +170,7 @@ public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternC StackUtils.readItems(upgrades, 1, tag); if (tag.contains(NBT_DISPLAY_NAME)) { - displayName = ITextComponent.Serializer.fromJson(tag.getString(NBT_DISPLAY_NAME)); + displayName = Component.Serializer.fromJson(tag.getString(NBT_DISPLAY_NAME)); } if (tag.hasUUID(NBT_UUID)) { @@ -221,14 +196,14 @@ public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternC } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); StackUtils.writeItems(patternsInventory, 0, tag); StackUtils.writeItems(upgrades, 1, tag); if (displayName != null) { - tag.putString(NBT_DISPLAY_NAME, ITextComponent.Serializer.toJson(displayName)); + tag.putString(NBT_DISPLAY_NAME, Component.Serializer.toJson(displayName)); } if (uuid != null) { @@ -302,7 +277,7 @@ public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternC @Override @Nullable - public TileEntity getConnectedTile() { + public BlockEntity getConnectedTile() { ICraftingPatternContainer proxy = getRootContainer(); if (proxy == null) { return null; @@ -313,7 +288,7 @@ public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternC @Nullable @Override - public TileEntity getFacingTile() { + public BlockEntity getFacingTile() { BlockPos facingPos = pos.relative(getDirection()); if (!world.isLoaded(facingPos)) { return null; @@ -334,31 +309,31 @@ public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternC } @Override - public ITextComponent getName() { + public Component getName() { if (displayName != null) { return displayName; } - TileEntity facing = getConnectedTile(); + BlockEntity facing = getConnectedTile(); - if (facing instanceof INameable && ((INameable) facing).getName() != null) { - return ((INameable) facing).getName(); + if (facing instanceof Nameable && ((Nameable) facing).getName() != null) { + return ((Nameable) facing).getName(); } if (facing != null) { - return new TranslationTextComponent(world.getBlockState(facing.getBlockPos()).getBlock().getDescriptionId()); + return new TranslatableComponent(world.getBlockState(facing.getBlockPos()).getBlock().getDescriptionId()); } return DEFAULT_NAME; } - public void setDisplayName(ITextComponent displayName) { - this.displayName = displayName; + @Nullable + public Component getDisplayName() { + return displayName; } - @Nullable - public ITextComponent getDisplayName() { - return displayName; + public void setDisplayName(Component displayName) { + this.displayName = displayName; } @Override @@ -394,7 +369,7 @@ public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternC return null; } - INetworkNode facing = API.instance().getNetworkNodeManager((ServerWorld) world).getNode(pos.relative(getDirection())); + INetworkNode facing = API.instance().getNetworkNodeManager((ServerLevel) world).getNode(pos.relative(getDirection())); if (!(facing instanceof ICraftingPatternContainer) || facing.getNetwork() != network) { return this; } @@ -469,4 +444,21 @@ public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternC } } + public enum CrafterMode { + IGNORE, + SIGNAL_UNLOCKS_AUTOCRAFTING, + SIGNAL_LOCKS_AUTOCRAFTING, + PULSE_INSERTS_NEXT_SET; + + public static CrafterMode getById(int id) { + if (id >= 0 && id < values().length) { + return values()[id]; + } + + return IGNORE; + } + } + + + } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CraftingMonitorNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CraftingMonitorNetworkNode.java index 542af3895..532fe0015 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CraftingMonitorNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/CraftingMonitorNetworkNode.java @@ -10,15 +10,15 @@ import com.refinedmods.refinedstorage.tile.craftingmonitor.CraftingMonitorTile; import com.refinedmods.refinedstorage.tile.craftingmonitor.ICraftingMonitor; import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import javax.annotation.Nullable; import java.util.Collection; @@ -35,7 +35,7 @@ public class CraftingMonitorNetworkNode extends NetworkNode implements ICrafting private Optional tabSelected = Optional.empty(); private int tabPage; - public CraftingMonitorNetworkNode(World world, BlockPos pos) { + public CraftingMonitorNetworkNode(Level world, BlockPos pos) { super(world, pos); } @@ -50,12 +50,12 @@ public class CraftingMonitorNetworkNode extends NetworkNode implements ICrafting } @Override - public ITextComponent getTitle() { - return new TranslationTextComponent("gui.refinedstorage.crafting_monitor"); + public Component getTitle() { + return new TranslatableComponent("gui.refinedstorage.crafting_monitor"); } @Override - public void onCancelled(ServerPlayerEntity player, @Nullable UUID id) { + public void onCancelled(ServerPlayer player, @Nullable UUID id) { if (network != null) { network.getItemGridHandler().onCraftingCancelRequested(player, id); } @@ -89,7 +89,7 @@ public class CraftingMonitorNetworkNode extends NetworkNode implements ICrafting } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); tag.putInt(NBT_TAB_PAGE, tabPage); @@ -100,7 +100,7 @@ public class CraftingMonitorNetworkNode extends NetworkNode implements ICrafting } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); if (tag.contains(NBT_TAB_PAGE)) { @@ -112,16 +112,8 @@ public class CraftingMonitorNetworkNode extends NetworkNode implements ICrafting } } - public void setTabSelected(Optional tabSelected) { - this.tabSelected = tabSelected; - } - - public void setTabPage(int tabPage) { - this.tabPage = tabPage; - } - @Override - public void onClosed(PlayerEntity player) { + public void onClosed(Player player) { // NO OP } @@ -130,11 +122,19 @@ public class CraftingMonitorNetworkNode extends NetworkNode implements ICrafting return world.isClientSide ? CraftingMonitorTile.TAB_SELECTED.getValue() : tabSelected; } + public void setTabSelected(Optional tabSelected) { + this.tabSelected = tabSelected; + } + @Override public int getTabPage() { return world.isClientSide ? CraftingMonitorTile.TAB_PAGE.getValue() : tabPage; } + public void setTabPage(int tabPage) { + this.tabPage = tabPage; + } + @Override public void onTabSelectionChanged(Optional tab) { TileDataManager.setParameter(CraftingMonitorTile.TAB_SELECTED, tab); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/DestructorNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/DestructorNetworkNode.java index 471df7ed5..ff01f7e09 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/DestructorNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/DestructorNetworkNode.java @@ -17,26 +17,25 @@ import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; import com.refinedmods.refinedstorage.util.StackUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.FlowingFluidBlock; -import net.minecraft.enchantment.Enchantments; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.ItemEntity; -import net.minecraft.fluid.Fluid; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.Containers; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.enchantment.Enchantments; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.LiquidBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.Vec3; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.fluids.FluidAttributes; @@ -46,7 +45,6 @@ import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; -import java.util.ArrayList; import java.util.List; public class DestructorNetworkNode extends NetworkNode implements IComparable, IWhitelistBlacklist, IType, ICoverable { @@ -62,24 +60,22 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I private final BaseItemHandler itemFilters = new BaseItemHandler(9).addListener(new NetworkNodeInventoryListener(this)); private final FluidInventory fluidFilters = new FluidInventory(9).addListener(new NetworkNodeFluidInventoryListener(this)); - + private final CoverManager coverManager; private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED, UpgradeItem.Type.SILK_TOUCH, UpgradeItem.Type.FORTUNE_1, UpgradeItem.Type.FORTUNE_2, UpgradeItem.Type.FORTUNE_3) .addListener(new NetworkNodeInventoryListener(this)) .addListener((handler, slot, reading) -> tool = createTool()); - private int compare = IComparer.COMPARE_NBT; private int mode = IWhitelistBlacklist.BLACKLIST; private int type = IType.ITEMS; private boolean pickupItem = false; - private ItemStack tool = createTool(); - private final CoverManager coverManager; - - public DestructorNetworkNode(World world, BlockPos pos) { + public DestructorNetworkNode(Level world, BlockPos pos) { super(world, pos); this.coverManager = new CoverManager(this); } + private ItemStack tool = createTool(); + @Override public int getEnergyUsage() { return RS.SERVER_CONFIG.getDestructor().getUsage() + upgrades.getEnergyUsage(); @@ -105,23 +101,18 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I private void pickupItems() { BlockPos front = pos.relative(getDirection()); - List droppedItems = new ArrayList<>(); + List droppedItems = world.getEntitiesOfClass(ItemEntity.class, new AABB(front)); - Chunk chunk = world.getChunkAt(front); - chunk.getEntities((Entity)null, new AxisAlignedBB(front), droppedItems, null); + for (ItemEntity entity : droppedItems) { + ItemStack droppedItem = ((ItemEntity) entity).getItem(); - for (Entity entity : droppedItems) { - if (entity instanceof ItemEntity) { - ItemStack droppedItem = ((ItemEntity) entity).getItem(); + if (IWhitelistBlacklist.acceptsItem(itemFilters, mode, compare, droppedItem) && + network.insertItem(droppedItem, droppedItem.getCount(), Action.SIMULATE).isEmpty()) { + network.insertItemTracked(droppedItem.copy(), droppedItem.getCount()); - if (IWhitelistBlacklist.acceptsItem(itemFilters, mode, compare, droppedItem) && - network.insertItem(droppedItem, droppedItem.getCount(), Action.SIMULATE).isEmpty()) { - network.insertItemTracked(droppedItem.copy(), droppedItem.getCount()); + entity.remove(Entity.RemovalReason.DISCARDED); - entity.remove(); - - break; - } + break; } } } @@ -130,12 +121,12 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I BlockPos front = pos.relative(getDirection()); BlockState frontBlockState = world.getBlockState(front); Block frontBlock = frontBlockState.getBlock(); - ItemStack frontStack = frontBlock.getPickBlock( + ItemStack frontStack = frontBlock.getCloneItemStack( frontBlockState, - new BlockRayTraceResult(Vector3d.ZERO, getDirection().getOpposite(), front, false), + new BlockHitResult(Vec3.ZERO, getDirection().getOpposite(), front, false), world, front, - WorldUtils.getFakePlayer((ServerWorld) world, getOwner()) + WorldUtils.getFakePlayer((ServerLevel) world, getOwner()) ); if (!frontStack.isEmpty() && @@ -143,10 +134,10 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I frontBlockState.getDestroySpeed(world, front) != -1.0) { List drops = Block.getDrops( frontBlockState, - (ServerWorld) world, + (ServerLevel) world, front, world.getBlockEntity(front), - WorldUtils.getFakePlayer((ServerWorld) world, getOwner()), + WorldUtils.getFakePlayer((ServerLevel) world, getOwner()), tool ); @@ -156,10 +147,10 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I } } - BlockEvent.BreakEvent e = new BlockEvent.BreakEvent(world, front, frontBlockState, WorldUtils.getFakePlayer((ServerWorld) world, getOwner())); + BlockEvent.BreakEvent e = new BlockEvent.BreakEvent(world, front, frontBlockState, WorldUtils.getFakePlayer((ServerLevel) world, getOwner())); if (!MinecraftForge.EVENT_BUS.post(e)) { - frontBlock.playerWillDestroy(world, front, frontBlockState, WorldUtils.getFakePlayer((ServerWorld) world, getOwner())); + frontBlock.playerWillDestroy(world, front, frontBlockState, WorldUtils.getFakePlayer((ServerLevel) world, getOwner())); world.removeBlock(front, false); @@ -167,7 +158,7 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I // We check if the controller isn't null here because when a destructor faces a node and removes it // it will essentially remove this block itself from the network without knowing if (network == null) { - InventoryHelper.dropItemStack(world, front.getX(), front.getY(), front.getZ(), drop); + Containers.dropItemStack(world, front.getX(), front.getY(), front.getZ(), drop); } else { network.insertItemTracked(drop, drop.getCount()); } @@ -181,10 +172,10 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I BlockState frontBlockState = world.getBlockState(front); Block frontBlock = frontBlockState.getBlock(); - if (frontBlock instanceof FlowingFluidBlock) { + if (frontBlock instanceof LiquidBlock) { // @Volatile: Logic from FlowingFluidBlock#pickupFluid - if (frontBlockState.getValue(FlowingFluidBlock.LEVEL) == 0) { - Fluid fluid = ((FlowingFluidBlock) frontBlock).getFluid(); + if (frontBlockState.getValue(LiquidBlock.LEVEL) == 0) { + Fluid fluid = ((LiquidBlock) frontBlock).getFluid(); FluidStack stack = new FluidStack(fluid, FluidAttributes.BUCKET_VOLUME); @@ -252,10 +243,10 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); - if (tag.contains(CoverManager.NBT_COVER_MANAGER)){ + if (tag.contains(CoverManager.NBT_COVER_MANAGER)) { this.coverManager.readFromNbt(tag.getCompound(CoverManager.NBT_COVER_MANAGER)); } @@ -268,7 +259,7 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); tag.put(CoverManager.NBT_COVER_MANAGER, this.coverManager.writeToNbt()); @@ -279,7 +270,7 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); tag.putInt(NBT_COMPARE, compare); @@ -295,7 +286,7 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); if (tag.contains(NBT_COMPARE)) { @@ -364,4 +355,6 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I public CoverManager getCoverManager() { return coverManager; } + + } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/DetectorNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/DetectorNetworkNode.java index 5b8968900..be634361b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/DetectorNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/DetectorNetworkNode.java @@ -13,11 +13,11 @@ import com.refinedmods.refinedstorage.tile.config.IComparable; import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.config.RedstoneMode; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.IItemHandlerModifiable; @@ -25,13 +25,10 @@ import javax.annotation.Nullable; public class DetectorNetworkNode extends NetworkNode implements IComparable, IType { public static final ResourceLocation ID = new ResourceLocation(RS.ID, "detector"); - - private static final int SPEED = 5; - public static final int MODE_UNDER = 0; public static final int MODE_EQUAL = 1; public static final int MODE_ABOVE = 2; - + private static final int SPEED = 5; private static final String NBT_COMPARE = "Compare"; private static final String NBT_MODE = "Mode"; private static final String NBT_AMOUNT = "Amount"; @@ -49,7 +46,7 @@ public class DetectorNetworkNode extends NetworkNode implements IComparable, ITy private boolean powered = false; private boolean wasPowered; - public DetectorNetworkNode(World world, BlockPos pos) { + public DetectorNetworkNode(Level world, BlockPos pos) { super(world, pos); } @@ -166,7 +163,7 @@ public class DetectorNetworkNode extends NetworkNode implements IComparable, ITy } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); tag.putInt(NBT_COMPARE, compare); @@ -182,7 +179,7 @@ public class DetectorNetworkNode extends NetworkNode implements IComparable, ITy } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); if (tag.contains(NBT_COMPARE)) { diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ExporterNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ExporterNetworkNode.java index 84f4c5ce4..4d2655eb2 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ExporterNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ExporterNetworkNode.java @@ -17,11 +17,11 @@ import com.refinedmods.refinedstorage.tile.config.IComparable; import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.util.StackUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.IFluidHandler; @@ -38,8 +38,7 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy private final BaseItemHandler itemFilters = new BaseItemHandler(9).addListener(new NetworkNodeInventoryListener(this)); private final FluidInventory fluidFilters = new FluidInventory(9).addListener(new NetworkNodeFluidInventoryListener(this)); - - private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED, UpgradeItem.Type.CRAFTING, UpgradeItem.Type.STACK, UpgradeItem.Type.REGULATOR) + private final CoverManager coverManager; private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED, UpgradeItem.Type.CRAFTING, UpgradeItem.Type.STACK, UpgradeItem.Type.REGULATOR) .addListener(new NetworkNodeInventoryListener(this)) .addListener((handler, slot, reading) -> { if (!reading && !getUpgrades().hasUpgrade(UpgradeItem.Type.REGULATOR)) { @@ -68,15 +67,12 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy } } }); - private int compare = IComparer.COMPARE_NBT; private int type = IType.ITEMS; private int filterSlot; - private final CoverManager coverManager; - - public ExporterNetworkNode(World world, BlockPos pos) { + public ExporterNetworkNode(Level world, BlockPos pos) { super(world, pos); this.coverManager = new CoverManager(this); } @@ -247,7 +243,7 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); tag.put(CoverManager.NBT_COVER_MANAGER, this.coverManager.writeToNbt()); @@ -257,7 +253,7 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); tag.putInt(NBT_COMPARE, compare); @@ -271,10 +267,10 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); - if (tag.contains(CoverManager.NBT_COVER_MANAGER)){ + if (tag.contains(CoverManager.NBT_COVER_MANAGER)) { this.coverManager.readFromNbt(tag.getCompound(CoverManager.NBT_COVER_MANAGER)); } @@ -282,7 +278,7 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); if (tag.contains(NBT_COMPARE)) { @@ -335,4 +331,6 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy public CoverManager getCoverManager() { return coverManager; } + + } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ExternalStorageNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ExternalStorageNetworkNode.java index a5b8a627c..3af8b58ae 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ExternalStorageNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ExternalStorageNetworkNode.java @@ -24,15 +24,15 @@ import com.refinedmods.refinedstorage.tile.ExternalStorageTile; import com.refinedmods.refinedstorage.tile.config.*; import com.refinedmods.refinedstorage.util.AccessTypeUtils; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.IItemHandlerModifiable; import org.apache.logging.log4j.LogManager; @@ -54,7 +54,9 @@ public class ExternalStorageNetworkNode extends NetworkNode implements IStorageP private final BaseItemHandler itemFilters = new BaseItemHandler(9).addListener(new NetworkNodeInventoryListener(this)); private final FluidInventory fluidFilters = new FluidInventory(9).addListener(new NetworkNodeFluidInventoryListener(this)); - + private final List> itemStorages = new CopyOnWriteArrayList<>(); + private final List> fluidStorages = new CopyOnWriteArrayList<>(); + private final CoverManager coverManager; private int priority = 0; private int compare = IComparer.COMPARE_NBT; private int mode = IWhitelistBlacklist.BLACKLIST; @@ -62,12 +64,7 @@ public class ExternalStorageNetworkNode extends NetworkNode implements IStorageP private AccessType accessType = AccessType.INSERT_EXTRACT; private int networkTicks; - private final List> itemStorages = new CopyOnWriteArrayList<>(); - private final List> fluidStorages = new CopyOnWriteArrayList<>(); - - private final CoverManager coverManager; - - public ExternalStorageNetworkNode(World world, BlockPos pos) { + public ExternalStorageNetworkNode(Level world, BlockPos pos) { super(world, pos); this.coverManager = new CoverManager(this); } @@ -122,7 +119,7 @@ public class ExternalStorageNetworkNode extends NetworkNode implements IStorageP } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); StackUtils.writeItems(itemFilters, 0, tag); @@ -140,7 +137,7 @@ public class ExternalStorageNetworkNode extends NetworkNode implements IStorageP } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); StackUtils.readItems(itemFilters, 0, tag); @@ -213,7 +210,7 @@ public class ExternalStorageNetworkNode extends NetworkNode implements IStorageP itemStorages.clear(); fluidStorages.clear(); - TileEntity facing = getFacingTile(); + BlockEntity facing = getFacingTile(); if (facing != null) { if (type == IType.ITEMS) { @@ -250,8 +247,8 @@ public class ExternalStorageNetworkNode extends NetworkNode implements IStorageP } @Override - public ITextComponent getTitle() { - return new TranslationTextComponent("gui.refinedstorage:external_storage"); + public Component getTitle() { + return new TranslatableComponent("gui.refinedstorage:external_storage"); } @Override @@ -269,16 +266,6 @@ public class ExternalStorageNetworkNode extends NetworkNode implements IStorageP return accessType; } - @Override - public boolean acceptsItem(ItemStack stack) { - return IWhitelistBlacklist.acceptsItem(itemFilters, mode, compare, stack); - } - - @Override - public boolean acceptsFluid(FluidStack stack) { - return IWhitelistBlacklist.acceptsFluid(fluidFilters, mode, compare, stack); - } - @Override public void setAccessType(AccessType type) { this.accessType = type; @@ -291,6 +278,16 @@ public class ExternalStorageNetworkNode extends NetworkNode implements IStorageP markDirty(); } + @Override + public boolean acceptsItem(ItemStack stack) { + return IWhitelistBlacklist.acceptsItem(itemFilters, mode, compare, stack); + } + + @Override + public boolean acceptsFluid(FluidStack stack) { + return IWhitelistBlacklist.acceptsFluid(fluidFilters, mode, compare, stack); + } + @Override public int getType() { return world.isClientSide ? ExternalStorageTile.TYPE.getValue() : type; @@ -331,7 +328,7 @@ public class ExternalStorageNetworkNode extends NetworkNode implements IStorageP } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); if (tag.contains(CoverManager.NBT_COVER_MANAGER)) { @@ -340,9 +337,8 @@ public class ExternalStorageNetworkNode extends NetworkNode implements IStorageP } - @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); tag.put(CoverManager.NBT_COVER_MANAGER, this.coverManager.writeToNbt()); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/FluidInterfaceNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/FluidInterfaceNetworkNode.java index 4230c2cdc..799bfb230 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/FluidInterfaceNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/FluidInterfaceNetworkNode.java @@ -16,13 +16,13 @@ import com.refinedmods.refinedstorage.item.UpgradeItem; import com.refinedmods.refinedstorage.tile.FluidInterfaceTile; import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.IFluidHandler; @@ -61,7 +61,7 @@ public class FluidInterfaceNetworkNode extends NetworkNode { private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED, UpgradeItem.Type.STACK, UpgradeItem.Type.CRAFTING).addListener(new NetworkNodeInventoryListener(this)); - public FluidInterfaceNetworkNode(World world, BlockPos pos) { + public FluidInterfaceNetworkNode(Level world, BlockPos pos) { super(world, pos); } @@ -155,7 +155,7 @@ public class FluidInterfaceNetworkNode extends NetworkNode { private boolean isActingAsStorage() { for (Direction facing : Direction.values()) { - INetworkNode facingNode = API.instance().getNetworkNodeManager((ServerWorld) world).getNode(pos.relative(facing)); + INetworkNode facingNode = API.instance().getNetworkNodeManager((ServerLevel) world).getNode(pos.relative(facing)); if (facingNode instanceof ExternalStorageNetworkNode && facingNode.isActive() && @@ -174,20 +174,20 @@ public class FluidInterfaceNetworkNode extends NetworkNode { } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); StackUtils.writeItems(upgrades, 0, tag); StackUtils.writeItems(in, 1, tag); - tag.put(NBT_TANK_IN, tankIn.writeToNBT(new CompoundNBT())); - tag.put(NBT_TANK_OUT, tankOut.writeToNBT(new CompoundNBT())); + tag.put(NBT_TANK_IN, tankIn.writeToNBT(new CompoundTag())); + tag.put(NBT_TANK_OUT, tankOut.writeToNBT(new CompoundTag())); return tag; } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); StackUtils.readItems(upgrades, 0, tag); @@ -208,7 +208,7 @@ public class FluidInterfaceNetworkNode extends NetworkNode { } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); tag.put(NBT_OUT, out.writeToNbt()); @@ -217,7 +217,7 @@ public class FluidInterfaceNetworkNode extends NetworkNode { } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); if (tag.contains(NBT_OUT)) { diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/GridNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/GridNetworkNode.java index 0bf244663..6863f5b7c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/GridNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/GridNetworkNode.java @@ -28,24 +28,24 @@ import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.grid.GridTile; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.CraftResultInventory; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.ContainerType; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.ICraftingRecipe; -import net.minecraft.item.crafting.IRecipeType; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.Container; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.inventory.MenuType; +import net.minecraft.world.inventory.ResultContainer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CraftingRecipe; +import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.IItemHandler; @@ -70,35 +70,29 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I public static final String NBT_SORTING_DIRECTION = "SortingDirection"; public static final String NBT_SORTING_TYPE = "SortingType"; public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode"; - private static final String NBT_EXACT_MODE = "Exact"; public static final String NBT_TAB_SELECTED = "TabSelected"; public static final String NBT_TAB_PAGE = "TabPage"; public static final String NBT_SIZE = "Size"; + public static final int PROCESSING_MATRIX_SIZE = 81; + private static final String NBT_EXACT_MODE = "Exact"; private static final String NBT_PROCESSING_PATTERN = "ProcessingPattern"; private static final String NBT_PROCESSING_TYPE = "ProcessingType"; private static final String NBT_PROCESSING_MATRIX_FLUIDS = "ProcessingMatrixFluids"; private static final String NBT_ALLOWED_TAGS = "AllowedTags"; - - public static final int PROCESSING_MATRIX_SIZE = 81; - private final AllowedTagList allowedTagList = new AllowedTagList(this::updateAllowedTags, PROCESSING_MATRIX_SIZE); - - private final Container craftingContainer = new Container(ContainerType.CRAFTING, 0) { + private final ResultContainer result = new ResultContainer(); private final AbstractContainerMenu craftingContainer = new AbstractContainerMenu(MenuType.CRAFTING, 0) { @Override - public boolean stillValid(PlayerEntity player) { + public boolean stillValid(Player player) { return false; } @Override - public void slotsChanged(IInventory inventory) { + public void slotsChanged(Container inventory) { if (!world.isClientSide) { onCraftingMatrixChanged(); } } }; - private ICraftingRecipe currentRecipe; - private final CraftingInventory matrix = new CraftingInventory(craftingContainer, 3, 3); - private final CraftResultInventory result = new CraftResultInventory(); private final BaseItemHandler processingMatrix = new BaseItemHandler(PROCESSING_MATRIX_SIZE * 2) .addListener(new NetworkNodeInventoryListener(this)) .addListener((handler, slot, reading) -> { @@ -112,13 +106,13 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I if (!reading && slot < PROCESSING_MATRIX_SIZE) { allowedTagList.clearFluidTags(slot); } - }); - - private boolean readingInventory; - + }); private final CraftingContainer matrix = new CraftingContainer(craftingContainer, 3, 3); private final Set craftingListeners = new HashSet<>(); - - private final BaseItemHandler patterns = new BaseItemHandler(2) { + private final List filters = new ArrayList<>(); + private final List tabs = new ArrayList<>(); + private final FilterItemHandler filter = (FilterItemHandler) new FilterItemHandler(filters, tabs).addListener(new NetworkNodeInventoryListener(this)); + private final GridType type; + private CraftingRecipe currentRecipe; private final BaseItemHandler patterns = new BaseItemHandler(2) { @Override public int getSlotLimit(int slot) { return slot == 1 ? 1 : super.getSlotLimit(slot); @@ -171,27 +165,19 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I markDirty(); } })); - - private final List filters = new ArrayList<>(); - private final List tabs = new ArrayList<>(); - private final FilterItemHandler filter = (FilterItemHandler) new FilterItemHandler(filters, tabs).addListener(new NetworkNodeInventoryListener(this)); - - private final GridType type; - + private boolean readingInventory; private int viewType = VIEW_TYPE_NORMAL; private int sortingDirection = SORTING_DIRECTION_DESCENDING; private int sortingType = SORTING_TYPE_QUANTITY; private int searchBoxMode = SEARCH_BOX_MODE_NORMAL; private int size = SIZE_STRETCH; - private int tabSelected = -1; private int tabPage = 0; - private boolean exactPattern = true; private boolean processingPattern = false; private int processingType = IType.ITEMS; - public GridNetworkNode(World world, BlockPos pos, GridType type) { + public GridNetworkNode(Level world, BlockPos pos, GridType type) { super(world, pos); this.type = type; @@ -219,7 +205,7 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I private void updateAllowedTags() { markDirty(); - TileEntity tile = world.getBlockEntity(pos); + BlockEntity tile = world.getBlockEntity(pos); if (tile instanceof GridTile) { ((GridTile) tile).getDataManager().sendParameterToWatchers(GridTile.ALLOWED_ITEM_TAGS); @@ -243,34 +229,6 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I } } - public void setViewType(int viewType) { - this.viewType = viewType; - } - - public void setSortingDirection(int sortingDirection) { - this.sortingDirection = sortingDirection; - } - - public void setSortingType(int sortingType) { - this.sortingType = sortingType; - } - - public void setSearchBoxMode(int searchBoxMode) { - this.searchBoxMode = searchBoxMode; - } - - public void setTabSelected(int tabSelected) { - this.tabSelected = tabSelected; - } - - public void setTabPage(int page) { - this.tabPage = page; - } - - public void setSize(int size) { - this.size = size; - } - public boolean isExactPattern() { return exactPattern; } @@ -293,7 +251,7 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I } @Override - public IStorageCacheListener createListener(ServerPlayerEntity player) { + public IStorageCacheListener createListener(ServerPlayer player) { return type == GridType.FLUID ? new FluidGridStorageCacheListener(player, network) : new ItemGridStorageCacheListener(player, network); } @@ -330,16 +288,16 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I } @Override - public ITextComponent getTitle() { + public Component getTitle() { switch (type) { case CRAFTING: - return new TranslationTextComponent("gui.refinedstorage.crafting_grid"); + return new TranslatableComponent("gui.refinedstorage.crafting_grid"); case PATTERN: - return new TranslationTextComponent("gui.refinedstorage.pattern_grid"); + return new TranslatableComponent("gui.refinedstorage.pattern_grid"); case FLUID: - return new TranslationTextComponent("gui.refinedstorage.fluid_grid"); + return new TranslatableComponent("gui.refinedstorage.fluid_grid"); default: - return new TranslationTextComponent("gui.refinedstorage.grid"); + return new TranslatableComponent("gui.refinedstorage.grid"); } } @@ -363,12 +321,12 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I } @Override - public CraftingInventory getCraftingMatrix() { + public CraftingContainer getCraftingMatrix() { return matrix; } @Override - public CraftResultInventory getCraftingResult() { + public ResultContainer getCraftingResult() { return result; } @@ -383,7 +341,7 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I @Override public void onCraftingMatrixChanged() { if (currentRecipe == null || !currentRecipe.matches(matrix, world)) { - currentRecipe = world.getRecipeManager().getRecipeFor(IRecipeType.CRAFTING, matrix, world).orElse(null); + currentRecipe = world.getRecipeManager().getRecipeFor(RecipeType.CRAFTING, matrix, world).orElse(null); } if (currentRecipe == null) { @@ -400,7 +358,7 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I } @Override - public void onRecipeTransfer(PlayerEntity player, ItemStack[][] recipe) { + public void onRecipeTransfer(Player player, ItemStack[][] recipe) { API.instance().getCraftingGridBehavior().onRecipeTransfer(this, player, recipe); } @@ -419,7 +377,7 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I } @Override - public void onClosed(PlayerEntity player) { + public void onClosed(Player player) { // NO OP } @@ -440,12 +398,12 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I } @Override - public void onCrafted(PlayerEntity player, @Nullable IStackList availableItems, @Nullable IStackList usedItems) { + public void onCrafted(Player player, @Nullable IStackList availableItems, @Nullable IStackList usedItems) { API.instance().getCraftingGridBehavior().onCrafted(this, currentRecipe, player, availableItems, usedItems); } @Override - public void onClear(PlayerEntity player) { + public void onClear(Player player) { if (type == GridType.CRAFTING) { if (network != null && network.canRun() && network.getSecurityManager().hasPermission(Permission.INSERT, player)) { for (int i = 0; i < matrix.getContainerSize(); ++i) { @@ -462,7 +420,7 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I ItemStack slot = matrix.getItem(i); if (!slot.isEmpty()) { - player.inventory.add(matrix.getItem(i)); + player.getInventory().add(matrix.getItem(i)); } onCraftingMatrixChanged(); @@ -475,7 +433,7 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I } @Override - public void onCraftedShift(PlayerEntity player) { + public void onCraftedShift(Player player) { API.instance().getCraftingGridBehavior().onCraftedShift(this, player); } @@ -573,36 +531,64 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I return world.isClientSide ? GridTile.VIEW_TYPE.getValue() : viewType; } + public void setViewType(int viewType) { + this.viewType = viewType; + } + @Override public int getSortingDirection() { return world.isClientSide ? GridTile.SORTING_DIRECTION.getValue() : sortingDirection; } + public void setSortingDirection(int sortingDirection) { + this.sortingDirection = sortingDirection; + } + @Override public int getSortingType() { return world.isClientSide ? GridTile.SORTING_TYPE.getValue() : sortingType; } + public void setSortingType(int sortingType) { + this.sortingType = sortingType; + } + @Override public int getSearchBoxMode() { return world.isClientSide ? GridTile.SEARCH_BOX_MODE.getValue() : searchBoxMode; } + public void setSearchBoxMode(int searchBoxMode) { + this.searchBoxMode = searchBoxMode; + } + @Override public int getSize() { return world.isClientSide ? GridTile.SIZE.getValue() : size; } + public void setSize(int size) { + this.size = size; + } + @Override public int getTabSelected() { return world.isClientSide ? GridTile.TAB_SELECTED.getValue() : tabSelected; } + public void setTabSelected(int tabSelected) { + this.tabSelected = tabSelected; + } + @Override public int getTabPage() { return world.isClientSide ? GridTile.TAB_PAGE.getValue() : Math.min(tabPage, getTotalTabPages()); } + public void setTabPage(int page) { + this.tabPage = page; + } + @Override public int getTotalTabPages() { return (int) Math.floor((float) Math.max(0, tabs.size() - 1) / (float) IGrid.TABS_PER_PAGE); @@ -668,7 +654,7 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); if (tag.contains(NBT_ALLOWED_TAGS)) { @@ -703,7 +689,7 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); tag.put(NBT_ALLOWED_TAGS, allowedTagList.writeToNbt()); @@ -721,7 +707,7 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); tag.putInt(NBT_VIEW_TYPE, viewType); @@ -738,7 +724,7 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); if (tag.contains(NBT_VIEW_TYPE)) { @@ -785,4 +771,10 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I return new CombinedInvWrapper(filter); } } + + + + + + } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/IStorageScreen.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/IStorageScreen.java index 91b043a8e..5deef8b76 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/IStorageScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/IStorageScreen.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.apiimpl.network.node; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.network.chat.Component; public interface IStorageScreen { - ITextComponent getTitle(); + Component getTitle(); long getStored(); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ImporterNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ImporterNetworkNode.java index 0023b8c4a..6d71670bd 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ImporterNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/ImporterNetworkNode.java @@ -18,12 +18,12 @@ import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; import com.refinedmods.refinedstorage.util.StackUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.IFluidHandler; @@ -42,16 +42,13 @@ public class ImporterNetworkNode extends NetworkNode implements IComparable, IWh private final FluidInventory fluidFilters = new FluidInventory(9).addListener(new NetworkNodeFluidInventoryListener(this)); private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED, UpgradeItem.Type.STACK).addListener(new NetworkNodeInventoryListener(this)); - + private final CoverManager coverManager; private int compare = IComparer.COMPARE_NBT; private int mode = IWhitelistBlacklist.BLACKLIST; private int type = IType.ITEMS; - private int currentSlot; - private final CoverManager coverManager; - - public ImporterNetworkNode(World world, BlockPos pos) { + public ImporterNetworkNode(Level world, BlockPos pos) { super(world, pos); this.coverManager = new CoverManager(this); } @@ -70,7 +67,7 @@ public class ImporterNetworkNode extends NetworkNode implements IComparable, IWh } if (type == IType.ITEMS) { - TileEntity facing = getFacingTile(); + BlockEntity facing = getFacingTile(); IItemHandler handler = WorldUtils.getItemHandler(facing, getDirection().getOpposite()); if (facing instanceof DiskDriveTile || handler == null) { @@ -151,7 +148,7 @@ public class ImporterNetworkNode extends NetworkNode implements IComparable, IWh } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); if (tag.contains(CoverManager.NBT_COVER_MANAGER)) { @@ -167,7 +164,7 @@ public class ImporterNetworkNode extends NetworkNode implements IComparable, IWh } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); tag.put(CoverManager.NBT_COVER_MANAGER, this.coverManager.writeToNbt()); @@ -178,7 +175,7 @@ public class ImporterNetworkNode extends NetworkNode implements IComparable, IWh } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); tag.putInt(NBT_COMPARE, compare); @@ -193,7 +190,7 @@ public class ImporterNetworkNode extends NetworkNode implements IComparable, IWh } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); if (tag.contains(NBT_COMPARE)) { diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/InterfaceNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/InterfaceNetworkNode.java index 1d1297b97..d5f1342e7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/InterfaceNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/InterfaceNetworkNode.java @@ -14,13 +14,13 @@ import com.refinedmods.refinedstorage.item.UpgradeItem; import com.refinedmods.refinedstorage.tile.config.IComparable; import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.wrapper.CombinedInvWrapper; @@ -43,7 +43,7 @@ public class InterfaceNetworkNode extends NetworkNode implements IComparable { private int currentSlot = 0; - public InterfaceNetworkNode(World world, BlockPos pos) { + public InterfaceNetworkNode(Level world, BlockPos pos) { super(world, pos); } @@ -129,7 +129,7 @@ public class InterfaceNetworkNode extends NetworkNode implements IComparable { private boolean isActingAsStorage() { for (Direction facing : Direction.values()) { - INetworkNode facingNode = API.instance().getNetworkNodeManager((ServerWorld) world).getNode(pos.relative(facing)); + INetworkNode facingNode = API.instance().getNetworkNodeManager((ServerLevel) world).getNode(pos.relative(facing)); if (facingNode instanceof ExternalStorageNetworkNode && facingNode.isActive() && @@ -155,7 +155,7 @@ public class InterfaceNetworkNode extends NetworkNode implements IComparable { } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); StackUtils.readItems(importItems, 0, tag); @@ -169,7 +169,7 @@ public class InterfaceNetworkNode extends NetworkNode implements IComparable { } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); StackUtils.writeItems(importItems, 0, tag); @@ -180,7 +180,7 @@ public class InterfaceNetworkNode extends NetworkNode implements IComparable { } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); StackUtils.writeItems(exportFilterItems, 1, tag); @@ -191,7 +191,7 @@ public class InterfaceNetworkNode extends NetworkNode implements IComparable { } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); StackUtils.readItems(exportFilterItems, 1, tag); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/NetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/NetworkNode.java index 8cee1a398..30ea1c062 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/NetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/NetworkNode.java @@ -9,23 +9,21 @@ import com.refinedmods.refinedstorage.block.BaseBlock; import com.refinedmods.refinedstorage.block.NetworkNodeBlock; import com.refinedmods.refinedstorage.tile.config.RedstoneMode; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.items.IItemHandler; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.UUID; -import com.refinedmods.refinedstorage.api.network.INetworkNodeVisitor.Operator; - public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { private static final String NBT_OWNER = "Owner"; private static final String NBT_VERSION = "Version"; @@ -43,15 +41,14 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { // new instances of network nodes will be created when the world refreshes (causing this field to be different too). // However, network nodes in the network graph *AREN'T* recreated when the world refreshes, causing the graph to have the incorrect instance, and even worse, // having multiple different instances of the same network node. - protected World world; + protected Level world; protected BlockPos pos; protected int ticks; protected RedstoneMode redstoneMode = RedstoneMode.IGNORE; - private boolean redstonePowered = false; @Nullable protected UUID owner; protected String version; - + private boolean redstonePowered = false; private Direction direction; // Disable throttling for the first tick. @@ -64,7 +61,7 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { private boolean couldUpdate; private int ticksSinceUpdateChanged; - protected NetworkNode(World world, BlockPos pos) { + protected NetworkNode(Level world, BlockPos pos) { if (world == null) { throw new IllegalArgumentException("World cannot be null"); } @@ -110,7 +107,7 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { @Override public void markDirty() { if (!world.isClientSide) { - API.instance().getNetworkNodeManager((ServerWorld) world).markForSaving(); + API.instance().getNetworkNodeManager((ServerLevel) world).markForSaving(); } } @@ -177,7 +174,7 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { if (owner != null) { tag.putUUID(NBT_OWNER, owner); } @@ -189,13 +186,13 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { return tag; } - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { redstoneMode.write(tag); return tag; } - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { if (tag.hasUUID(NBT_OWNER)) { owner = tag.getUUID(NBT_OWNER); } @@ -207,7 +204,7 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { readConfiguration(tag); } - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { redstoneMode = RedstoneMode.read(tag); } @@ -223,7 +220,7 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { } @Override - public World getWorld() { + public Level getWorld() { return world; } @@ -247,7 +244,7 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { } @Nullable - public TileEntity getFacingTile() { + public BlockEntity getFacingTile() { return world.getBlockEntity(pos.relative(getDirection())); } @@ -276,16 +273,16 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { return false; } + @Override + @Nullable + public UUID getOwner() { + return owner; + } + @Override public void setOwner(@Nullable UUID owner) { this.owner = owner; markDirty(); } - - @Override - @Nullable - public UUID getOwner() { - return owner; - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/NetworkReceiverNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/NetworkReceiverNetworkNode.java index ac2359c32..f6b054482 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/NetworkReceiverNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/NetworkReceiverNetworkNode.java @@ -1,14 +1,14 @@ package com.refinedmods.refinedstorage.apiimpl.network.node; import com.refinedmods.refinedstorage.RS; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.Level; public class NetworkReceiverNetworkNode extends NetworkNode { public static final ResourceLocation ID = new ResourceLocation(RS.ID, "network_receiver"); - public NetworkReceiverNetworkNode(World world, BlockPos pos) { + public NetworkReceiverNetworkNode(Level world, BlockPos pos) { super(world, pos); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/NetworkTransmitterNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/NetworkTransmitterNetworkNode.java index 9e4f1f5ec..9f81b0d02 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/NetworkTransmitterNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/NetworkTransmitterNetworkNode.java @@ -10,19 +10,20 @@ import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryLis import com.refinedmods.refinedstorage.item.NetworkCardItem; import com.refinedmods.refinedstorage.tile.NetworkReceiverTile; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.RegistryKey; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.items.IItemHandler; import javax.annotation.Nullable; public class NetworkTransmitterNetworkNode extends NetworkNode { public static final ResourceLocation ID = new ResourceLocation(RS.ID, "network_transmitter"); - + private BlockPos receiver; + private ResourceKey receiverDimension; private final BaseItemHandler networkCard = new BaseItemHandler(1) .addValidator(new ItemValidator(RSItems.NETWORK_CARD.get())) .addListener(new NetworkNodeInventoryListener(this)) @@ -42,15 +43,12 @@ public class NetworkTransmitterNetworkNode extends NetworkNode { } }); - private BlockPos receiver; - private RegistryKey receiverDimension; - - public NetworkTransmitterNetworkNode(World world, BlockPos pos) { + public NetworkTransmitterNetworkNode(Level world, BlockPos pos) { super(world, pos); } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); StackUtils.writeItems(networkCard, 0, tag); @@ -59,7 +57,7 @@ public class NetworkTransmitterNetworkNode extends NetworkNode { } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); StackUtils.readItems(networkCard, 0, tag); @@ -85,7 +83,7 @@ public class NetworkTransmitterNetworkNode extends NetworkNode { } @Nullable - public RegistryKey getReceiverDimension() { + public ResourceKey getReceiverDimension() { return receiverDimension; } @@ -116,7 +114,7 @@ public class NetworkTransmitterNetworkNode extends NetworkNode { if (canTransmit()) { if (!isSameDimension()) { - World dimensionWorld = world.getServer().getLevel(receiverDimension); + Level dimensionWorld = world.getServer().getLevel(receiverDimension); if (dimensionWorld != null && dimensionWorld.getBlockEntity(receiver) instanceof NetworkReceiverTile) { operator.apply(dimensionWorld, receiver, null); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/RelayNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/RelayNetworkNode.java index b5bc06168..ffbe0a983 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/RelayNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/RelayNetworkNode.java @@ -2,15 +2,15 @@ package com.refinedmods.refinedstorage.apiimpl.network.node; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.tile.config.RedstoneMode; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.Level; public class RelayNetworkNode extends NetworkNode { public static final ResourceLocation ID = new ResourceLocation(RS.ID, "relay"); - public RelayNetworkNode(World world, BlockPos pos) { + public RelayNetworkNode(Level world, BlockPos pos) { super(world, pos); this.redstoneMode = RedstoneMode.LOW; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/RootNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/RootNetworkNode.java index f2282e4ba..a52cbd9c5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/RootNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/RootNetworkNode.java @@ -3,27 +3,25 @@ package com.refinedmods.refinedstorage.apiimpl.network.node; import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.api.network.INetworkNodeVisitor; import com.refinedmods.refinedstorage.api.network.node.INetworkNode; -import net.minecraft.block.BlockState; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.UUID; -import com.refinedmods.refinedstorage.api.network.INetworkNodeVisitor.Operator; - public class RootNetworkNode implements INetworkNode, INetworkNodeVisitor { private final INetwork network; - private final World world; + private final Level world; private final BlockPos pos; - public RootNetworkNode(INetwork network, World world, BlockPos pos) { + public RootNetworkNode(INetwork network, Level world, BlockPos pos) { this.network = network; this.world = world; this.pos = pos; @@ -34,17 +32,17 @@ public class RootNetworkNode implements INetworkNode, INetworkNodeVisitor { return null; } - @Override - public void setOwner(@Nullable UUID owner) { - // NO OP - } - @Nullable @Override public UUID getOwner() { return null; } + @Override + public void setOwner(@Nullable UUID owner) { + // NO OP + } + @Override public int getEnergyUsage() { return 0; @@ -87,7 +85,7 @@ public class RootNetworkNode implements INetworkNode, INetworkNodeVisitor { } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { return tag; } @@ -97,7 +95,7 @@ public class RootNetworkNode implements INetworkNode, INetworkNodeVisitor { } @Override - public World getWorld() { + public Level getWorld() { return world; } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/SecurityManagerNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/SecurityManagerNetworkNode.java index 32ec86349..5ff7b4ba3 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/SecurityManagerNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/SecurityManagerNetworkNode.java @@ -12,11 +12,11 @@ import com.refinedmods.refinedstorage.inventory.item.validator.ItemValidator; import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryListener; import com.refinedmods.refinedstorage.item.SecurityCardItem; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.wrapper.CombinedInvWrapper; @@ -29,9 +29,10 @@ public class SecurityManagerNetworkNode extends NetworkNode implements ISecurity public static final ResourceLocation ID = new ResourceLocation(RS.ID, "security_manager"); private final List cards = new ArrayList<>(); - private ISecurityCard globalCard; - - private final BaseItemHandler cardsInv = new BaseItemHandler(9 * 2) + private final BaseItemHandler editCard = new BaseItemHandler(1) + .addValidator(new ItemValidator(RSItems.SECURITY_CARD.get())) + .addListener(new NetworkNodeInventoryListener(this)); + private ISecurityCard globalCard; private final BaseItemHandler cardsInv = new BaseItemHandler(9 * 2) .addValidator(new ItemValidator(RSItems.SECURITY_CARD.get())) .addListener(new NetworkNodeInventoryListener(this)) .addListener(((handler, slot, reading) -> { @@ -44,11 +45,7 @@ public class SecurityManagerNetworkNode extends NetworkNode implements ISecurity } })); - private final BaseItemHandler editCard = new BaseItemHandler(1) - .addValidator(new ItemValidator(RSItems.SECURITY_CARD.get())) - .addListener(new NetworkNodeInventoryListener(this)); - - public SecurityManagerNetworkNode(World world, BlockPos pos) { + public SecurityManagerNetworkNode(Level world, BlockPos pos) { super(world, pos); } @@ -106,7 +103,7 @@ public class SecurityManagerNetworkNode extends NetworkNode implements ISecurity } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); StackUtils.readItems(cardsInv, 0, tag); @@ -119,7 +116,7 @@ public class SecurityManagerNetworkNode extends NetworkNode implements ISecurity } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); StackUtils.writeItems(cardsInv, 0, tag); @@ -166,4 +163,6 @@ public class SecurityManagerNetworkNode extends NetworkNode implements ISecurity public IItemHandler getDrops() { return new CombinedInvWrapper(cardsInv, editCard); } + + } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/StorageMonitorNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/StorageMonitorNetworkNode.java index 122212379..61f6b68c1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/StorageMonitorNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/StorageMonitorNetworkNode.java @@ -15,15 +15,15 @@ import com.refinedmods.refinedstorage.tile.config.RedstoneMode; import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.StackUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.Containers; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; @@ -63,7 +63,7 @@ public class StorageMonitorNetworkNode extends NetworkNode implements IComparabl private int oldAmount = -1; - public StorageMonitorNetworkNode(World world, BlockPos pos) { + public StorageMonitorNetworkNode(Level world, BlockPos pos) { super(world, pos); } @@ -86,48 +86,48 @@ public class StorageMonitorNetworkNode extends NetworkNode implements IComparabl } } - public ActionResultType depositAll(PlayerEntity player) { + public InteractionResult depositAll(Player player) { if (getType() != IType.ITEMS) { - return ActionResultType.FAIL; + return InteractionResult.FAIL; } if (network == null) { - return ActionResultType.FAIL; + return InteractionResult.FAIL; } if (!network.getSecurityManager().hasPermission(Permission.INSERT, player)) { - return ActionResultType.FAIL; + return InteractionResult.FAIL; } Pair deposit = deposits.get(player.getGameProfile().getName()); if (deposit == null) { - return ActionResultType.FAIL; + return InteractionResult.FAIL; } ItemStack inserted = deposit.getKey(); long insertedAt = deposit.getValue(); if (System.currentTimeMillis() - insertedAt < DEPOSIT_ALL_MAX_DELAY) { - for (int i = 0; i < player.inventory.getContainerSize(); ++i) { - ItemStack toInsert = player.inventory.getItem(i); + for (int i = 0; i < player.getInventory().getContainerSize(); ++i) { + ItemStack toInsert = player.getInventory().getItem(i); if (API.instance().getComparer().isEqual(inserted, toInsert, compare)) { - player.inventory.setItem(i, network.insertItemTracked(toInsert, toInsert.getCount())); + player.getInventory().setItem(i, network.insertItemTracked(toInsert, toInsert.getCount())); } } } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } - public ActionResultType deposit(PlayerEntity player, ItemStack toInsert) { + public InteractionResult deposit(Player player, ItemStack toInsert) { if (network == null) { - return ActionResultType.FAIL; + return InteractionResult.FAIL; } if (!network.getSecurityManager().hasPermission(Permission.INSERT, player)) { - return ActionResultType.FAIL; + return InteractionResult.FAIL; } if (getType() == IType.ITEMS) { @@ -136,20 +136,20 @@ public class StorageMonitorNetworkNode extends NetworkNode implements IComparabl depositFluids(player, toInsert); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } - private void depositItems(PlayerEntity player, ItemStack toInsert) { + private void depositItems(Player player, ItemStack toInsert) { ItemStack filter = itemFilter.getStackInSlot(0); if (!filter.isEmpty() && API.instance().getComparer().isEqual(filter, toInsert, compare)) { - player.inventory.setItem(player.inventory.selected, network.insertItemTracked(toInsert, toInsert.getCount())); + player.getInventory().setItem(player.getInventory().selected, network.insertItemTracked(toInsert, toInsert.getCount())); deposits.put(player.getGameProfile().getName(), Pair.of(toInsert, System.currentTimeMillis())); } } - private void depositFluids(PlayerEntity player, ItemStack toInsert) { + private void depositFluids(Player player, ItemStack toInsert) { FluidStack filter = fluidFilter.getFluid(0); Pair result = StackUtils.getFluid(toInsert, true); @@ -165,16 +165,16 @@ public class StorageMonitorNetworkNode extends NetworkNode implements IComparabl network.insertFluidTracked(result.getValue(), result.getValue().getAmount()); - player.inventory.setItem(player.inventory.selected, ItemStack.EMPTY); + player.getInventory().setItem(player.getInventory().selected, ItemStack.EMPTY); ItemStack container = result.getLeft(); - if (!player.inventory.add(container.copy())) { - InventoryHelper.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), container); + if (!player.getInventory().add(container.copy())) { + Containers.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), container); } } } - public void extract(PlayerEntity player, Direction side) { + public void extract(Player player, Direction side) { if (network == null || getDirection() != side) { return; } @@ -190,7 +190,7 @@ public class StorageMonitorNetworkNode extends NetworkNode implements IComparabl } } - private void extractItems(PlayerEntity player) { + private void extractItems(Player player) { ItemStack filter = itemFilter.getStackInSlot(0); int toExtract = player.isCrouching() ? 1 : filter.getMaxStackSize(); @@ -198,13 +198,13 @@ public class StorageMonitorNetworkNode extends NetworkNode implements IComparabl if (!filter.isEmpty()) { ItemStack result = network.extractItem(filter, toExtract, compare, Action.PERFORM); - if (!result.isEmpty() && !player.inventory.add(result.copy())) { - InventoryHelper.dropItemStack(world, player.getX(), player.getY(), player.getZ(), result); + if (!result.isEmpty() && !player.getInventory().add(result.copy())) { + Containers.dropItemStack(world, player.getX(), player.getY(), player.getZ(), result); } } } - private void extractFluids(PlayerEntity player) { + private void extractFluids(Player player) { FluidStack filter = fluidFilter.getFluid(0); if (filter.isEmpty()) { @@ -223,8 +223,8 @@ public class StorageMonitorNetworkNode extends NetworkNode implements IComparabl fluidHandler.fill(network.extractFluid(stack, FluidAttributes.BUCKET_VOLUME, Action.PERFORM), IFluidHandler.FluidAction.EXECUTE); - if (!player.inventory.add(fluidHandler.getContainer().copy())) { - InventoryHelper.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), fluidHandler.getContainer()); + if (!player.getInventory().add(fluidHandler.getContainer().copy())) { + Containers.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), fluidHandler.getContainer()); } })); } @@ -255,7 +255,7 @@ public class StorageMonitorNetworkNode extends NetworkNode implements IComparabl } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); tag.putInt(NBT_COMPARE, compare); @@ -269,7 +269,7 @@ public class StorageMonitorNetworkNode extends NetworkNode implements IComparabl } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); if (tag.contains(NBT_COMPARE)) { diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/WirelessTransmitterNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/WirelessTransmitterNetworkNode.java index e3cb9881a..b12bcf6a1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/WirelessTransmitterNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/WirelessTransmitterNetworkNode.java @@ -7,22 +7,20 @@ import com.refinedmods.refinedstorage.inventory.item.UpgradeItemHandler; import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryListener; import com.refinedmods.refinedstorage.item.UpgradeItem; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.Direction; -import net.minecraft.util.RegistryKey; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.Level; import net.minecraftforge.items.IItemHandler; -import com.refinedmods.refinedstorage.api.network.INetworkNodeVisitor.Operator; - public class WirelessTransmitterNetworkNode extends NetworkNode implements IWirelessTransmitter { public static final ResourceLocation ID = new ResourceLocation(RS.ID, "wireless_transmitter"); private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.RANGE).addListener(new NetworkNodeInventoryListener(this)); - public WirelessTransmitterNetworkNode(World world, BlockPos pos) { + public WirelessTransmitterNetworkNode(Level world, BlockPos pos) { super(world, pos); } @@ -32,7 +30,7 @@ public class WirelessTransmitterNetworkNode extends NetworkNode implements IWire } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); StackUtils.readItems(upgrades, 0, tag); @@ -44,7 +42,7 @@ public class WirelessTransmitterNetworkNode extends NetworkNode implements IWire } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); StackUtils.writeItems(upgrades, 0, tag); @@ -63,7 +61,7 @@ public class WirelessTransmitterNetworkNode extends NetworkNode implements IWire } @Override - public RegistryKey getDimension() { + public ResourceKey getDimension() { return world.dimension(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/cover/Cover.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/cover/Cover.java index a43740a9e..f495727e9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/cover/Cover.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/cover/Cover.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.apiimpl.network.node.cover; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; public class Cover { diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/cover/CoverManager.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/cover/CoverManager.java index 287abf97c..8a6ec56bb 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/cover/CoverManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/cover/CoverManager.java @@ -1,19 +1,17 @@ package com.refinedmods.refinedstorage.apiimpl.network.node.cover; -import com.refinedmods.refinedstorage.api.network.node.ICoverable; -import com.refinedmods.refinedstorage.api.network.node.INetworkNode; import com.refinedmods.refinedstorage.api.util.Action; -import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.network.node.CableNetworkNode; import com.refinedmods.refinedstorage.apiimpl.network.node.NetworkNode; import com.refinedmods.refinedstorage.item.CoverItem; -import net.minecraft.block.*; -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.data.ModelProperty; import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.ItemStackHandler; @@ -24,14 +22,11 @@ import java.util.Map; public class CoverManager { - public static String NBT_COVER_MANAGER = "Cover"; - public static final ModelProperty PROPERTY = new ModelProperty<>(); - private static final String NBT_DIRECTION = "Direction"; private static final String NBT_ITEM = "Item"; private static final String NBT_TYPE = "Type"; - + public static String NBT_COVER_MANAGER = "Cover"; private Map covers = new HashMap<>(); private NetworkNode node; @@ -39,6 +34,59 @@ public class CoverManager { this.node = node; } + @SuppressWarnings("deprecation") + public static boolean isValidCover(ItemStack item) { + if (item.isEmpty()) { + return false; + } + + Block block = getBlock(item); + + BlockState state = getBlockState(item); + + return block != null + && state != null + && isModelSupported(state) + && !block.isRandomlyTicking(state) + && !(block instanceof EntityBlock) + && !state.useShapeForLightOcclusion(); + } + + private static boolean isModelSupported(BlockState state) { + if (state.getRenderShape() != RenderShape.MODEL) { + return false; + } + + return state.canOcclude(); + } + + @Nullable + public static Block getBlock(ItemStack item) { + if (item.isEmpty()) { + return null; + } + + Block block = Block.byItem(item.getItem()); + + if (block == Blocks.AIR) { + return null; + } + + return block; + } + + @Nullable + @SuppressWarnings("deprecation") + public static BlockState getBlockState(ItemStack item) { + Block block = getBlock(item); + + if (block == null) { + return null; + } + + return block.defaultBlockState(); + } + @Nullable public Cover getCover(Direction facing) { return covers.get(facing); @@ -75,8 +123,8 @@ public class CoverManager { } @Nullable - public Cover removeCover(Direction direction){ - if (hasCover(direction)){ + public Cover removeCover(Direction direction) { + if (hasCover(direction)) { Cover cover = covers.remove(direction); node.markDirty(); @@ -90,10 +138,10 @@ public class CoverManager { return null; } - public void readFromNbt(CompoundNBT nbt) { + public void readFromNbt(CompoundTag nbt) { covers.clear(); for (String s : nbt.getAllKeys()) { - CompoundNBT tag = nbt.getCompound(s); + CompoundTag tag = nbt.getCompound(s); if (tag.contains(NBT_DIRECTION) && tag.contains(NBT_ITEM)) { Direction direction = Direction.from3DDataValue(tag.getInt(NBT_DIRECTION)); ItemStack item = ItemStack.of(tag.getCompound(NBT_ITEM)); @@ -110,17 +158,17 @@ public class CoverManager { } } - public CompoundNBT writeToNbt() { - CompoundNBT list = new CompoundNBT(); + public CompoundTag writeToNbt() { + CompoundTag list = new CompoundTag(); for (Map.Entry entry : covers.entrySet()) { - CompoundNBT tag = new CompoundNBT(); + CompoundTag tag = new CompoundTag(); tag.putInt(NBT_DIRECTION, entry.getKey().ordinal()); tag.put(NBT_ITEM, entry.getValue().getStack().serializeNBT()); tag.putInt(NBT_TYPE, entry.getValue().getType().ordinal()); - list.put(entry.getKey().ordinal() + "",tag); + list.put(entry.getKey().ordinal() + "", tag); } return list; } @@ -141,53 +189,4 @@ public class CoverManager { return handler; } - @SuppressWarnings("deprecation") - public static boolean isValidCover(ItemStack item) { - if (item.isEmpty()) { - return false; - } - - Block block = getBlock(item); - - BlockState state = getBlockState(item); - - return block != null && state != null && isModelSupported(state) && !block.isRandomlyTicking(state) - && !block.hasTileEntity(state) && !state.useShapeForLightOcclusion(); //Changed from 1.12: to use 1.16 methods - } - - private static boolean isModelSupported(BlockState state) { - if (state.getRenderShape() != BlockRenderType.MODEL) { - return false; - } - - return state.canOcclude(); - } - - @Nullable - public static Block getBlock(ItemStack item) { - if (item.isEmpty()) { - return null; - } - - Block block = Block.byItem(item.getItem()); - - if (block == Blocks.AIR) { - return null; - } - - return block; - } - - @Nullable - @SuppressWarnings("deprecation") - public static BlockState getBlockState(ItemStack item) { - Block block = getBlock(item); - - if (block == null) { - return null; - } - - return block.defaultBlockState(); - } - } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/cover/CoverType.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/cover/CoverType.java index 443af0481..71055e788 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/cover/CoverType.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/cover/CoverType.java @@ -1,14 +1,13 @@ package com.refinedmods.refinedstorage.apiimpl.network.node.cover; import com.refinedmods.refinedstorage.RSItems; -import net.minecraft.block.Blocks; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; public enum CoverType { NORMAL, HOLLOW; public ItemStack createStack() { - return new ItemStack(this == NORMAL ? RSItems.COVER.get() : RSItems.HOLLOW_COVER.get() ); + return new ItemStack(this == NORMAL ? RSItems.COVER.get() : RSItems.HOLLOW_COVER.get()); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskdrive/DiskDriveNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskdrive/DiskDriveNetworkNode.java index 0fc923492..83fcf2496 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskdrive/DiskDriveNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskdrive/DiskDriveNetworkNode.java @@ -24,12 +24,12 @@ import com.refinedmods.refinedstorage.tile.config.*; import com.refinedmods.refinedstorage.util.AccessTypeUtils; import com.refinedmods.refinedstorage.util.StackUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; @@ -50,23 +50,17 @@ public class DiskDriveNetworkNode extends NetworkNode implements IStorageProvide private static final int DISK_STATE_UPDATE_THROTTLE = 30; private static final Logger LOGGER = LogManager.getLogger(DiskDriveNetworkNode.class); - - private int ticksSinceBlockUpdateRequested; - private boolean blockUpdateRequested; - private final BaseItemHandler itemFilters = new BaseItemHandler(9).addListener(new NetworkNodeInventoryListener(this)); private final FluidInventory fluidFilters = new FluidInventory(9).addListener(new NetworkNodeFluidInventoryListener(this)); - private final IStorageDisk[] itemDisks = new IStorageDisk[8]; private final IStorageDisk[] fluidDisks = new IStorageDisk[8]; - private final BaseItemHandler disks = new BaseItemHandler(8) .addValidator(new StorageDiskItemValidator()) .addListener(new NetworkNodeInventoryListener(this)) .addListener((handler, slot, reading) -> { if (!world.isClientSide) { StackUtils.createStorages( - (ServerWorld) world, + (ServerLevel) world, handler.getStackInSlot(slot), slot, itemDisks, @@ -85,14 +79,15 @@ public class DiskDriveNetworkNode extends NetworkNode implements IStorageProvide } } }); - + private int ticksSinceBlockUpdateRequested; + private boolean blockUpdateRequested; private AccessType accessType = AccessType.INSERT_EXTRACT; private int priority = 0; private int compare = IComparer.COMPARE_NBT; private int mode = IWhitelistBlacklist.BLACKLIST; private int type = IType.ITEMS; - public DiskDriveNetworkNode(World world, BlockPos pos) { + public DiskDriveNetworkNode(Level world, BlockPos pos) { super(world, pos); } @@ -175,7 +170,7 @@ public class DiskDriveNetworkNode extends NetworkNode implements IStorageProvide } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); StackUtils.readItems(disks, 0, tag); @@ -187,7 +182,7 @@ public class DiskDriveNetworkNode extends NetworkNode implements IStorageProvide } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); StackUtils.writeItems(disks, 0, tag); @@ -196,7 +191,7 @@ public class DiskDriveNetworkNode extends NetworkNode implements IStorageProvide } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); StackUtils.writeItems(itemFilters, 1, tag); @@ -213,7 +208,7 @@ public class DiskDriveNetworkNode extends NetworkNode implements IStorageProvide } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); StackUtils.readItems(itemFilters, 1, tag); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskdrive/FluidDriveWrapperStorageDisk.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskdrive/FluidDriveWrapperStorageDisk.java index 5defbf65c..64a229233 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskdrive/FluidDriveWrapperStorageDisk.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskdrive/FluidDriveWrapperStorageDisk.java @@ -8,8 +8,8 @@ import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.apiimpl.network.node.DiskState; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -98,7 +98,7 @@ public class FluidDriveWrapperStorageDisk implements IStorageDisk { } @Override - public CompoundNBT writeToNbt() { + public CompoundTag writeToNbt() { return parent.writeToNbt(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskdrive/ItemDriveWrapperStorageDisk.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskdrive/ItemDriveWrapperStorageDisk.java index 46c079b73..2904b696b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskdrive/ItemDriveWrapperStorageDisk.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskdrive/ItemDriveWrapperStorageDisk.java @@ -7,9 +7,9 @@ import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskListener; import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.apiimpl.network.node.DiskState; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nonnull; @@ -98,7 +98,7 @@ public class ItemDriveWrapperStorageDisk implements IStorageDisk { } @Override - public CompoundNBT writeToNbt() { + public CompoundTag writeToNbt() { return parent.writeToNbt(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskmanipulator/DiskManipulatorNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskmanipulator/DiskManipulatorNetworkNode.java index c12059e1e..9f4129254 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskmanipulator/DiskManipulatorNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskmanipulator/DiskManipulatorNetworkNode.java @@ -23,12 +23,12 @@ import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; import com.refinedmods.refinedstorage.util.StackUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.IItemHandler; @@ -50,35 +50,15 @@ public class DiskManipulatorNetworkNode extends NetworkNode implements IComparab private static final String NBT_TYPE = "Type"; private static final String NBT_IO_MODE = "IOMode"; private static final String NBT_FLUID_FILTERS = "FluidFilters"; - - private int compare = IComparer.COMPARE_NBT; - private int mode = IWhitelistBlacklist.BLACKLIST; - private int type = IType.ITEMS; - private int ioMode = IO_MODE_INSERT; - private final IStorageDisk[] itemDisks = new IStorageDisk[6]; private final IStorageDisk[] fluidDisks = new IStorageDisk[6]; - - private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED, UpgradeItem.Type.STACK) { - @Override - public int getStackInteractCount() { - int count = super.getStackInteractCount(); - - if (type == IType.FLUIDS) { - count *= FluidAttributes.BUCKET_VOLUME; - } - - return count; - } - }.addListener(new NetworkNodeInventoryListener(this)); - private final BaseItemHandler inputDisks = new BaseItemHandler(3) .addValidator(new StorageDiskItemValidator()) .addListener(new NetworkNodeInventoryListener(this)) .addListener((handler, slot, reading) -> { if (!world.isClientSide) { StackUtils.createStorages( - (ServerWorld) world, + (ServerLevel) world, handler.getStackInSlot(slot), slot, itemDisks, @@ -92,14 +72,13 @@ public class DiskManipulatorNetworkNode extends NetworkNode implements IComparab } } }); - private final BaseItemHandler outputDisks = new BaseItemHandler(3) .addValidator(new StorageDiskItemValidator()) .addListener(new NetworkNodeInventoryListener(this)) .addListener(((handler, slot, reading) -> { if (!world.isClientSide) { StackUtils.createStorages( - (ServerWorld) world, + (ServerLevel) world, handler.getStackInSlot(slot), 3 + slot, itemDisks, @@ -113,13 +92,27 @@ public class DiskManipulatorNetworkNode extends NetworkNode implements IComparab } } })); - private final ProxyItemHandler disks = new ProxyItemHandler(inputDisks, outputDisks); - private final BaseItemHandler itemFilters = new BaseItemHandler(9).addListener(new NetworkNodeInventoryListener(this)); private final FluidInventory fluidFilters = new FluidInventory(9).addListener(new NetworkNodeFluidInventoryListener(this)); + private int compare = IComparer.COMPARE_NBT; + private int mode = IWhitelistBlacklist.BLACKLIST; + private int type = IType.ITEMS; + private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED, UpgradeItem.Type.STACK) { + @Override + public int getStackInteractCount() { + int count = super.getStackInteractCount(); - public DiskManipulatorNetworkNode(World world, BlockPos pos) { + if (type == IType.FLUIDS) { + count *= FluidAttributes.BUCKET_VOLUME; + } + + return count; + } + }.addListener(new NetworkNodeInventoryListener(this)); + private int ioMode = IO_MODE_INSERT; + + public DiskManipulatorNetworkNode(Level world, BlockPos pos) { super(world, pos); } @@ -439,13 +432,13 @@ public class DiskManipulatorNetworkNode extends NetworkNode implements IComparab } @Override - public void setWhitelistBlacklistMode(int mode) { - this.mode = mode; + public int getWhitelistBlacklistMode() { + return this.mode; } @Override - public int getWhitelistBlacklistMode() { - return this.mode; + public void setWhitelistBlacklistMode(int mode) { + this.mode = mode; } public int getIoMode() { @@ -473,7 +466,7 @@ public class DiskManipulatorNetworkNode extends NetworkNode implements IComparab } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); StackUtils.readItems(upgrades, 3, tag); @@ -487,7 +480,7 @@ public class DiskManipulatorNetworkNode extends NetworkNode implements IComparab } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); StackUtils.writeItems(upgrades, 3, tag); @@ -498,7 +491,7 @@ public class DiskManipulatorNetworkNode extends NetworkNode implements IComparab } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); StackUtils.writeItems(itemFilters, 1, tag); @@ -513,7 +506,7 @@ public class DiskManipulatorNetworkNode extends NetworkNode implements IComparab } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); StackUtils.readItems(itemFilters, 1, tag); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskmanipulator/StorageDiskFluidManipulatorWrapper.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskmanipulator/StorageDiskFluidManipulatorWrapper.java index 1d1860a5b..bbb7d21d7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskmanipulator/StorageDiskFluidManipulatorWrapper.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/diskmanipulator/StorageDiskFluidManipulatorWrapper.java @@ -9,8 +9,8 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.DiskState; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; import com.refinedmods.refinedstorage.util.StackUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -45,7 +45,7 @@ public class StorageDiskFluidManipulatorWrapper implements IStorageDisk storage; - public FluidStorageNetworkNode(World world, BlockPos pos, FluidStorageType type) { + public FluidStorageNetworkNode(Level world, BlockPos pos, FluidStorageType type) { super(world, pos); this.type = type; @@ -137,7 +134,7 @@ public class FluidStorageNetworkNode extends NetworkNode implements IStorageScre } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); tag.putUUID(NBT_ID, storageId); @@ -146,7 +143,7 @@ public class FluidStorageNetworkNode extends NetworkNode implements IStorageScre } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); if (tag.hasUUID(NBT_ID)) { @@ -156,35 +153,35 @@ public class FluidStorageNetworkNode extends NetworkNode implements IStorageScre } } - public void loadStorage(@Nullable PlayerEntity owner) { - IStorageDisk disk = API.instance().getStorageDiskManager((ServerWorld) world).get(storageId); + public void loadStorage(@Nullable Player owner) { + IStorageDisk disk = API.instance().getStorageDiskManager((ServerLevel) world).get(storageId); if (disk == null) { - disk = API.instance().createDefaultFluidDisk((ServerWorld) world, type.getCapacity(), owner); + disk = API.instance().createDefaultFluidDisk((ServerLevel) world, type.getCapacity(), owner); - API.instance().getStorageDiskManager((ServerWorld) world).set(storageId, disk); - API.instance().getStorageDiskManager((ServerWorld) world).markForSaving(); + API.instance().getStorageDiskManager((ServerLevel) world).set(storageId, disk); + API.instance().getStorageDiskManager((ServerLevel) world).markForSaving(); } this.storage = new FluidStorageWrapperStorageDisk(this, disk); } + public UUID getStorageId() { + return storageId; + } + public void setStorageId(UUID id) { this.storageId = id; markDirty(); } - public UUID getStorageId() { - return storageId; - } - public IStorageDisk getStorage() { return storage; } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); tag.put(NBT_FILTERS, filters.writeToNbt()); @@ -198,7 +195,7 @@ public class FluidStorageNetworkNode extends NetworkNode implements IStorageScre } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); if (tag.contains(NBT_FILTERS)) { @@ -249,8 +246,8 @@ public class FluidStorageNetworkNode extends NetworkNode implements IStorageScre } @Override - public ITextComponent getTitle() { - return new TranslationTextComponent("block.refinedstorage." + type.getName() + "_fluid_storage_block"); + public Component getTitle() { + return new TranslatableComponent("block.refinedstorage." + type.getName() + "_fluid_storage_block"); } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/storage/FluidStorageWrapperStorageDisk.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/storage/FluidStorageWrapperStorageDisk.java index f39160c5d..ac65c1188 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/storage/FluidStorageWrapperStorageDisk.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/storage/FluidStorageWrapperStorageDisk.java @@ -7,8 +7,8 @@ import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskListener; import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -84,7 +84,7 @@ public class FluidStorageWrapperStorageDisk implements IStorageDisk } @Override - public CompoundNBT writeToNbt() { + public CompoundTag writeToNbt() { return parent.writeToNbt(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/storage/ItemStorageWrapperStorageDisk.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/storage/ItemStorageWrapperStorageDisk.java index d7d8d8e7f..736407ccf 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/storage/ItemStorageWrapperStorageDisk.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/storage/ItemStorageWrapperStorageDisk.java @@ -6,9 +6,9 @@ import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskContainerCont import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskListener; import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nonnull; @@ -84,7 +84,7 @@ public class ItemStorageWrapperStorageDisk implements IStorageDisk { } @Override - public CompoundNBT writeToNbt() { + public CompoundTag writeToNbt() { return parent.writeToNbt(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/storage/StorageNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/storage/StorageNetworkNode.java index 40f4ab2b6..df74a0582 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/storage/StorageNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/storage/StorageNetworkNode.java @@ -24,15 +24,15 @@ import com.refinedmods.refinedstorage.tile.config.IPrioritizable; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; import com.refinedmods.refinedstorage.util.AccessTypeUtils; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.fluids.FluidStack; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -47,14 +47,11 @@ public class StorageNetworkNode extends NetworkNode implements IStorageScreen, I public static final ResourceLocation SIXTEEN_K_STORAGE_BLOCK_ID = new ResourceLocation(RS.ID, "16k_storage_block"); public static final ResourceLocation SIXTY_FOUR_K_STORAGE_BLOCK_ID = new ResourceLocation(RS.ID, "64k_storage_block"); public static final ResourceLocation CREATIVE_STORAGE_BLOCK_ID = new ResourceLocation(RS.ID, "creative_storage_block"); - + public static final String NBT_ID = "Id"; private static final Logger LOGGER = LogManager.getLogger(StorageNetworkNode.class); - private static final String NBT_PRIORITY = "Priority"; private static final String NBT_COMPARE = "Compare"; private static final String NBT_MODE = "Mode"; - public static final String NBT_ID = "Id"; - private final BaseItemHandler filters = new BaseItemHandler(9).addListener(new NetworkNodeInventoryListener(this)); private final ItemStorageType type; @@ -67,7 +64,7 @@ public class StorageNetworkNode extends NetworkNode implements IStorageScreen, I private UUID storageId = UUID.randomUUID(); private IStorageDisk storage; - public StorageNetworkNode(World world, BlockPos pos, ItemStorageType type) { + public StorageNetworkNode(Level world, BlockPos pos, ItemStorageType type) { super(world, pos); this.type = type; @@ -137,7 +134,7 @@ public class StorageNetworkNode extends NetworkNode implements IStorageScreen, I } @Override - public CompoundNBT write(CompoundNBT tag) { + public CompoundTag write(CompoundTag tag) { super.write(tag); tag.putUUID(NBT_ID, storageId); @@ -146,7 +143,7 @@ public class StorageNetworkNode extends NetworkNode implements IStorageScreen, I } @Override - public void read(CompoundNBT tag) { + public void read(CompoundTag tag) { super.read(tag); if (tag.hasUUID(NBT_ID)) { @@ -156,35 +153,35 @@ public class StorageNetworkNode extends NetworkNode implements IStorageScreen, I } } - public void loadStorage(@Nullable PlayerEntity owner) { - IStorageDisk disk = API.instance().getStorageDiskManager((ServerWorld) world).get(storageId); + public void loadStorage(@Nullable Player owner) { + IStorageDisk disk = API.instance().getStorageDiskManager((ServerLevel) world).get(storageId); if (disk == null) { - disk = API.instance().createDefaultItemDisk((ServerWorld) world, type.getCapacity(), owner); + disk = API.instance().createDefaultItemDisk((ServerLevel) world, type.getCapacity(), owner); - API.instance().getStorageDiskManager((ServerWorld) world).set(storageId, disk); - API.instance().getStorageDiskManager((ServerWorld) world).markForSaving(); + API.instance().getStorageDiskManager((ServerLevel) world).set(storageId, disk); + API.instance().getStorageDiskManager((ServerLevel) world).markForSaving(); } this.storage = new ItemStorageWrapperStorageDisk(this, disk); } + public UUID getStorageId() { + return storageId; + } + public void setStorageId(UUID id) { this.storageId = id; markDirty(); } - public UUID getStorageId() { - return storageId; - } - public IStorageDisk getStorage() { return storage; } @Override - public CompoundNBT writeConfiguration(CompoundNBT tag) { + public CompoundTag writeConfiguration(CompoundTag tag) { super.writeConfiguration(tag); StackUtils.writeItems(filters, 0, tag); @@ -199,7 +196,7 @@ public class StorageNetworkNode extends NetworkNode implements IStorageScreen, I } @Override - public void readConfiguration(CompoundNBT tag) { + public void readConfiguration(CompoundTag tag) { super.readConfiguration(tag); StackUtils.readItems(filters, 0, tag); @@ -248,8 +245,8 @@ public class StorageNetworkNode extends NetworkNode implements IStorageScreen, I } @Override - public ITextComponent getTitle() { - return new TranslationTextComponent("block.refinedstorage." + type.getName() + "_storage_block"); + public Component getTitle() { + return new TranslatableComponent("block.refinedstorage." + type.getName() + "_storage_block"); } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/security/SecurityManager.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/security/SecurityManager.java index 18f3da79e..1cc9728c9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/security/SecurityManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/security/SecurityManager.java @@ -6,8 +6,8 @@ import com.refinedmods.refinedstorage.api.network.security.ISecurityCard; import com.refinedmods.refinedstorage.api.network.security.ISecurityCardContainer; import com.refinedmods.refinedstorage.api.network.security.ISecurityManager; import com.refinedmods.refinedstorage.api.network.security.Permission; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.server.management.OpList; +import net.minecraft.server.players.ServerOpList; +import net.minecraft.world.entity.player.Player; import java.util.HashMap; import java.util.Map; @@ -23,8 +23,8 @@ public class SecurityManager implements ISecurityManager { } @Override - public boolean hasPermission(Permission permission, PlayerEntity player) { - OpList ops = player.getServer().getPlayerList().getOps(); + public boolean hasPermission(Permission permission, Player player) { + ServerOpList ops = player.getServer().getPlayerList().getOps(); if (ops.get(player.getGameProfile()) != null) { return true; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/render/CraftingMonitorElementDrawers.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/render/CraftingMonitorElementDrawers.java index d556001dc..f89d81d29 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/render/CraftingMonitorElementDrawers.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/render/CraftingMonitorElementDrawers.java @@ -5,7 +5,7 @@ import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.render.IElementDrawer; import com.refinedmods.refinedstorage.container.CraftingMonitorContainer; import com.refinedmods.refinedstorage.screen.BaseScreen; -import net.minecraft.client.gui.AbstractGui; +import net.minecraft.client.gui.GuiComponent; public class CraftingMonitorElementDrawers extends ElementDrawers { private final IElementDrawer overlayDrawer; @@ -15,16 +15,12 @@ public class CraftingMonitorElementDrawers extends ElementDrawers { - RenderSystem.color4f(1, 1, 1, 1); - RenderSystem.disableLighting(); - - AbstractGui.fill(matrixStack, x, y, x + itemWidth, y + itemHeight, color); + RenderSystem.setShaderColor(1, 1, 1, 1); + GuiComponent.fill(matrixStack, x, y, x + itemWidth, y + itemHeight, color); }; this.errorDrawer = (matrixStack, x, y, nothing) -> { - RenderSystem.color4f(1, 1, 1, 1); - RenderSystem.disableLighting(); - + RenderSystem.setShaderColor(1, 1, 1, 1); screen.bindTexture(RS.ID, "gui/crafting_preview.png"); screen.blit(matrixStack, x + itemWidth - 12 - 2, y + itemHeight - 12 - 2, 0, 244, 12, 12); }; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/render/CraftingPreviewElementDrawers.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/render/CraftingPreviewElementDrawers.java index 694ac15b8..c2b5dea7a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/render/CraftingPreviewElementDrawers.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/render/CraftingPreviewElementDrawers.java @@ -3,15 +3,13 @@ package com.refinedmods.refinedstorage.apiimpl.render; import com.mojang.blaze3d.systems.RenderSystem; import com.refinedmods.refinedstorage.api.render.IElementDrawer; import com.refinedmods.refinedstorage.screen.grid.CraftingPreviewScreen; -import net.minecraft.client.gui.AbstractGui; -import net.minecraft.inventory.container.Container; +import net.minecraft.client.gui.GuiComponent; +import net.minecraft.world.inventory.AbstractContainerMenu; -public class CraftingPreviewElementDrawers extends ElementDrawers { +public class CraftingPreviewElementDrawers extends ElementDrawers { private final IElementDrawer overlayDrawer = (matrixStack, x, y, color) -> { - RenderSystem.color4f(1, 1, 1, 1); - RenderSystem.disableLighting(); - - AbstractGui.fill(matrixStack, x, y, x + 73, y + 29, color); + RenderSystem.setShaderColor(1, 1, 1, 1); + GuiComponent.fill(matrixStack, x, y, x + 73, y + 29, color); }; public CraftingPreviewElementDrawers(CraftingPreviewScreen screen) { diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/render/ElementDrawers.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/render/ElementDrawers.java index b353726dc..bbbd2f4a3 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/render/ElementDrawers.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/render/ElementDrawers.java @@ -4,11 +4,11 @@ import com.refinedmods.refinedstorage.api.render.IElementDrawer; import com.refinedmods.refinedstorage.api.render.IElementDrawers; import com.refinedmods.refinedstorage.render.FluidRenderer; import com.refinedmods.refinedstorage.screen.BaseScreen; -import net.minecraft.inventory.container.Container; -import net.minecraft.item.ItemStack; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; -public class ElementDrawers implements IElementDrawers { +public class ElementDrawers implements IElementDrawers { protected final BaseScreen screen; public ElementDrawers(BaseScreen screen) { diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/ItemStorageCache.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/ItemStorageCache.java index db2d68420..75a24c49e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/ItemStorageCache.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/ItemStorageCache.java @@ -11,7 +11,7 @@ import com.refinedmods.refinedstorage.api.storage.cache.InvalidateCause; import com.refinedmods.refinedstorage.api.util.IStackList; import com.refinedmods.refinedstorage.api.util.StackListResult; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/PortableItemStorageCache.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/PortableItemStorageCache.java index 0ae28176a..d32ed6841 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/PortableItemStorageCache.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/PortableItemStorageCache.java @@ -8,7 +8,7 @@ import com.refinedmods.refinedstorage.api.util.IStackList; import com.refinedmods.refinedstorage.api.util.StackListResult; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.tile.grid.portable.IPortableGrid; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nonnull; import java.util.Collections; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/FluidGridStorageCacheListener.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/FluidGridStorageCacheListener.java index ba785f58a..d674658a9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/FluidGridStorageCacheListener.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/FluidGridStorageCacheListener.java @@ -7,17 +7,17 @@ import com.refinedmods.refinedstorage.api.storage.cache.IStorageCacheListener; import com.refinedmods.refinedstorage.api.util.StackListResult; import com.refinedmods.refinedstorage.network.grid.GridFluidDeltaMessage; import com.refinedmods.refinedstorage.network.grid.GridFluidUpdateMessage; -import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; import java.util.List; public class FluidGridStorageCacheListener implements IStorageCacheListener { - private final ServerPlayerEntity player; + private final ServerPlayer player; private final INetwork network; - public FluidGridStorageCacheListener(ServerPlayerEntity player, INetwork network) { + public FluidGridStorageCacheListener(ServerPlayer player, INetwork network) { this.player = player; this.network = network; } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/ItemGridStorageCacheListener.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/ItemGridStorageCacheListener.java index 84662776d..2ff733926 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/ItemGridStorageCacheListener.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/ItemGridStorageCacheListener.java @@ -7,17 +7,17 @@ import com.refinedmods.refinedstorage.api.storage.cache.IStorageCacheListener; import com.refinedmods.refinedstorage.api.util.StackListResult; import com.refinedmods.refinedstorage.network.grid.GridItemDeltaMessage; import com.refinedmods.refinedstorage.network.grid.GridItemUpdateMessage; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; import java.util.ArrayList; import java.util.List; public class ItemGridStorageCacheListener implements IStorageCacheListener { - private final ServerPlayerEntity player; + private final ServerPlayer player; private final INetwork network; - public ItemGridStorageCacheListener(ServerPlayerEntity player, INetwork network) { + public ItemGridStorageCacheListener(ServerPlayer player, INetwork network) { this.player = player; this.network = network; } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/PortableFluidGridStorageCacheListener.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/PortableFluidGridStorageCacheListener.java index 1a48388fa..b619e8afe 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/PortableFluidGridStorageCacheListener.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/PortableFluidGridStorageCacheListener.java @@ -6,7 +6,7 @@ import com.refinedmods.refinedstorage.api.util.StackListResult; import com.refinedmods.refinedstorage.network.grid.PortableGridFluidDeltaMessage; import com.refinedmods.refinedstorage.network.grid.PortableGridFluidUpdateMessage; import com.refinedmods.refinedstorage.tile.grid.portable.IPortableGrid; -import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; @@ -14,9 +14,9 @@ import java.util.List; public class PortableFluidGridStorageCacheListener implements IStorageCacheListener { private final IPortableGrid portableGrid; - private final ServerPlayerEntity player; + private final ServerPlayer player; - public PortableFluidGridStorageCacheListener(IPortableGrid portableGrid, ServerPlayerEntity player) { + public PortableFluidGridStorageCacheListener(IPortableGrid portableGrid, ServerPlayer player) { this.portableGrid = portableGrid; this.player = player; } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/PortableItemGridStorageCacheListener.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/PortableItemGridStorageCacheListener.java index fb5abf2eb..ad69271a5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/PortableItemGridStorageCacheListener.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/cache/listener/PortableItemGridStorageCacheListener.java @@ -6,17 +6,17 @@ import com.refinedmods.refinedstorage.api.util.StackListResult; import com.refinedmods.refinedstorage.network.grid.PortableGridItemDeltaMessage; import com.refinedmods.refinedstorage.network.grid.PortableGridItemUpdateMessage; import com.refinedmods.refinedstorage.tile.grid.portable.IPortableGrid; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; import java.util.ArrayList; import java.util.List; public class PortableItemGridStorageCacheListener implements IStorageCacheListener { private final IPortableGrid portableGrid; - private final ServerPlayerEntity player; + private final ServerPlayer player; - public PortableItemGridStorageCacheListener(IPortableGrid portableGrid, ServerPlayerEntity player) { + public PortableItemGridStorageCacheListener(IPortableGrid portableGrid, ServerPlayer player) { this.portableGrid = portableGrid; this.player = player; } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/FluidStorageDisk.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/FluidStorageDisk.java index 2ee42a8a9..4211e82b9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/FluidStorageDisk.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/FluidStorageDisk.java @@ -10,11 +10,11 @@ import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.storage.disk.factory.FluidStorageDiskFactory; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.fluid.Fluid; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.material.Fluid; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -30,7 +30,7 @@ public class FluidStorageDisk implements IStorageDisk { public static final int VERSION = 1; @Nullable - private final ServerWorld world; + private final ServerLevel world; private final int capacity; private final Multimap stacks = ArrayListMultimap.create(); private final UUID owner; @@ -39,20 +39,20 @@ public class FluidStorageDisk implements IStorageDisk { private IStorageDiskListener listener; private IStorageDiskContainerContext context; - public FluidStorageDisk(@Nullable ServerWorld world, int capacity, @Nullable UUID owner) { + public FluidStorageDisk(@Nullable ServerLevel world, int capacity, @Nullable UUID owner) { this.world = world; this.capacity = capacity; this.owner = owner; } @Override - public CompoundNBT writeToNbt() { - CompoundNBT tag = new CompoundNBT(); + public CompoundTag writeToNbt() { + CompoundTag tag = new CompoundTag(); - ListNBT list = new ListNBT(); + ListTag list = new ListTag(); for (FluidStack stack : stacks.values()) { - list.add(stack.writeToNBT(new CompoundNBT())); + list.add(stack.writeToNBT(new CompoundTag())); } tag.putInt(NBT_VERSION, VERSION); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/ItemStorageDisk.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/ItemStorageDisk.java index d9f1a1270..1e1ec93d7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/ItemStorageDisk.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/ItemStorageDisk.java @@ -10,12 +10,12 @@ import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.storage.disk.factory.ItemStorageDiskFactory; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nonnull; @@ -31,7 +31,7 @@ public class ItemStorageDisk implements IStorageDisk { public static final int VERSION = 1; @Nullable - private final ServerWorld world; + private final ServerLevel world; private final int capacity; private final Multimap stacks = ArrayListMultimap.create(); private final UUID owner; @@ -41,17 +41,17 @@ public class ItemStorageDisk implements IStorageDisk { private IStorageDiskListener listener; private IStorageDiskContainerContext context; - public ItemStorageDisk(@Nullable ServerWorld world, int capacity, @Nullable UUID owner) { + public ItemStorageDisk(@Nullable ServerLevel world, int capacity, @Nullable UUID owner) { this.world = world; this.capacity = capacity; this.owner = owner; } @Override - public CompoundNBT writeToNbt() { - CompoundNBT tag = new CompoundNBT(); + public CompoundTag writeToNbt() { + CompoundTag tag = new CompoundTag(); - ListNBT list = new ListNBT(); + ListTag list = new ListTag(); for (ItemStack stack : stacks.values()) { list.add(StackUtils.serializeStackToNbt(stack)); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/PortableFluidStorageDisk.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/PortableFluidStorageDisk.java index 384562e53..1b84af63c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/PortableFluidStorageDisk.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/PortableFluidStorageDisk.java @@ -6,8 +6,8 @@ import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskContainerCont import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskListener; import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.tile.grid.portable.IPortableGrid; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -41,7 +41,7 @@ public class PortableFluidStorageDisk implements IStorageDisk { } @Override - public CompoundNBT writeToNbt() { + public CompoundTag writeToNbt() { return parent.writeToNbt(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/PortableItemStorageDisk.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/PortableItemStorageDisk.java index c6f7993ff..3de452aa7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/PortableItemStorageDisk.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/PortableItemStorageDisk.java @@ -6,9 +6,9 @@ import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskContainerCont import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskListener; import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.tile.grid.portable.IPortableGrid; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -41,7 +41,7 @@ public class PortableItemStorageDisk implements IStorageDisk { } @Override - public CompoundNBT writeToNbt() { + public CompoundTag writeToNbt() { return parent.writeToNbt(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/StorageDiskManager.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/StorageDiskManager.java index d6b3d6d2b..2e1461939 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/StorageDiskManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/StorageDiskManager.java @@ -6,12 +6,12 @@ import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskManager; import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskProvider; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.util.RSWorldSavedData; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.server.ServerWorld; -import net.minecraftforge.common.util.Constants; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; +import net.minecraft.nbt.Tag; import javax.annotation.Nullable; import java.util.HashMap; @@ -27,11 +27,9 @@ public class StorageDiskManager extends RSWorldSavedData implements IStorageDisk private static final String NBT_DISK_DATA = "Data"; private final Map disks = new HashMap<>(); - private final ServerWorld world; - - public StorageDiskManager(String name, ServerWorld world) { - super(name); + private final ServerLevel world; + public StorageDiskManager(ServerLevel world) { this.world = world; } @@ -94,15 +92,15 @@ public class StorageDiskManager extends RSWorldSavedData implements IStorageDisk } @Override - public void load(CompoundNBT tag) { + public void load(CompoundTag tag) { if (tag.contains(NBT_DISKS)) { - ListNBT disksTag = tag.getList(NBT_DISKS, Constants.NBT.TAG_COMPOUND); + ListTag disksTag = tag.getList(NBT_DISKS, Tag.TAG_COMPOUND); for (int i = 0; i < disksTag.size(); ++i) { - CompoundNBT diskTag = disksTag.getCompound(i); + CompoundTag diskTag = disksTag.getCompound(i); UUID id = diskTag.getUUID(NBT_DISK_ID); - CompoundNBT data = diskTag.getCompound(NBT_DISK_DATA); + CompoundTag data = diskTag.getCompound(NBT_DISK_DATA); String type = diskTag.getString(NBT_DISK_TYPE); IStorageDiskFactory factory = API.instance().getStorageDiskRegistry().get(new ResourceLocation(type)); @@ -114,11 +112,11 @@ public class StorageDiskManager extends RSWorldSavedData implements IStorageDisk } @Override - public CompoundNBT save(CompoundNBT tag) { - ListNBT disksTag = new ListNBT(); + public CompoundTag save(CompoundTag tag) { + ListTag disksTag = new ListTag(); for (Map.Entry entry : disks.entrySet()) { - CompoundNBT diskTag = new CompoundNBT(); + CompoundTag diskTag = new CompoundTag(); diskTag.putUUID(NBT_DISK_ID, entry.getKey()); diskTag.put(NBT_DISK_DATA, entry.getValue().writeToNbt()); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/StorageDiskRegistry.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/StorageDiskRegistry.java index de6727255..2027e36be 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/StorageDiskRegistry.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/StorageDiskRegistry.java @@ -2,7 +2,7 @@ package com.refinedmods.refinedstorage.apiimpl.storage.disk; import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskFactory; import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskRegistry; -import net.minecraft.util.ResourceLocation; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; import java.util.HashMap; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/factory/FluidStorageDiskFactory.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/factory/FluidStorageDiskFactory.java index 8ea41f36d..64ab87421 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/factory/FluidStorageDiskFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/factory/FluidStorageDiskFactory.java @@ -7,12 +7,12 @@ import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskFactory; import com.refinedmods.refinedstorage.apiimpl.storage.FluidStorageType; import com.refinedmods.refinedstorage.apiimpl.storage.disk.FluidStorageDisk; import com.refinedmods.refinedstorage.item.FluidStorageDiskItem; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.server.ServerWorld; -import net.minecraftforge.common.util.Constants; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; +import net.minecraft.nbt.Tag; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; @@ -22,14 +22,14 @@ public class FluidStorageDiskFactory implements IStorageDiskFactory public static final ResourceLocation ID = new ResourceLocation(RS.ID, "fluid"); @Override - public IStorageDisk createFromNbt(ServerWorld world, CompoundNBT tag) { + public IStorageDisk createFromNbt(ServerLevel world, CompoundTag tag) { FluidStorageDisk disk = new FluidStorageDisk( world, tag.getInt(FluidStorageDisk.NBT_CAPACITY), tag.contains(FluidStorageDisk.NBT_OWNER) ? tag.getUUID(FluidStorageDisk.NBT_OWNER) : null ); - ListNBT list = tag.getList(FluidStorageDisk.NBT_FLUIDS, Constants.NBT.TAG_COMPOUND); + ListTag list = tag.getList(FluidStorageDisk.NBT_FLUIDS, Tag.TAG_COMPOUND); for (int i = 0; i < list.size(); ++i) { FluidStack stack = FluidStack.loadFluidStackFromNBT(list.getCompound(i)); @@ -69,7 +69,7 @@ public class FluidStorageDiskFactory implements IStorageDiskFactory } @Override - public IStorageDisk create(ServerWorld world, int capacity, @Nullable UUID owner) { + public IStorageDisk create(ServerLevel world, int capacity, @Nullable UUID owner) { return new FluidStorageDisk(world, capacity, owner); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/factory/ItemStorageDiskFactory.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/factory/ItemStorageDiskFactory.java index 42be32603..b7219ae64 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/factory/ItemStorageDiskFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/factory/ItemStorageDiskFactory.java @@ -8,12 +8,12 @@ import com.refinedmods.refinedstorage.apiimpl.storage.ItemStorageType; import com.refinedmods.refinedstorage.apiimpl.storage.disk.ItemStorageDisk; import com.refinedmods.refinedstorage.item.StorageDiskItem; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.server.ServerWorld; -import net.minecraftforge.common.util.Constants; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; +import net.minecraft.nbt.Tag; import javax.annotation.Nullable; import java.util.UUID; @@ -22,14 +22,14 @@ public class ItemStorageDiskFactory implements IStorageDiskFactory { public static final ResourceLocation ID = new ResourceLocation(RS.ID, "item"); @Override - public IStorageDisk createFromNbt(ServerWorld world, CompoundNBT tag) { + public IStorageDisk createFromNbt(ServerLevel world, CompoundTag tag) { ItemStorageDisk disk = new ItemStorageDisk( world, tag.getInt(ItemStorageDisk.NBT_CAPACITY), tag.contains(ItemStorageDisk.NBT_OWNER) ? tag.getUUID(ItemStorageDisk.NBT_OWNER) : null ); - ListNBT list = tag.getList(ItemStorageDisk.NBT_ITEMS, Constants.NBT.TAG_COMPOUND); + ListTag list = tag.getList(ItemStorageDisk.NBT_ITEMS, Tag.TAG_COMPOUND); for (int i = 0; i < list.size(); ++i) { ItemStack stack = StackUtils.deserializeStackFromNbt(list.getCompound(i)); @@ -71,7 +71,7 @@ public class ItemStorageDiskFactory implements IStorageDiskFactory { } @Override - public IStorageDisk create(ServerWorld world, int capacity, @Nullable UUID owner) { + public IStorageDisk create(ServerLevel world, int capacity, @Nullable UUID owner) { return new ItemStorageDisk(world, capacity, owner); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/FluidExternalStorageProvider.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/FluidExternalStorageProvider.java index f4a09ef18..9370d735f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/FluidExternalStorageProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/FluidExternalStorageProvider.java @@ -5,21 +5,21 @@ import com.refinedmods.refinedstorage.api.storage.externalstorage.IExternalStora import com.refinedmods.refinedstorage.api.storage.externalstorage.IExternalStorageProvider; import com.refinedmods.refinedstorage.tile.FluidInterfaceTile; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; public class FluidExternalStorageProvider implements IExternalStorageProvider { @Override - public boolean canProvide(TileEntity tile, Direction direction) { + public boolean canProvide(BlockEntity tile, Direction direction) { return WorldUtils.getFluidHandler(tile, direction.getOpposite()) != null; } @Nonnull @Override - public IExternalStorage provide(IExternalStorageContext context, TileEntity tile, Direction direction) { + public IExternalStorage provide(IExternalStorageContext context, BlockEntity tile, Direction direction) { return new FluidExternalStorage(context, () -> { if (!tile.getLevel().isLoaded(tile.getBlockPos())) { return null; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/ItemExternalStorage.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/ItemExternalStorage.java index 60a3493e6..a228b20a9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/ItemExternalStorage.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/ItemExternalStorage.java @@ -6,7 +6,7 @@ import com.refinedmods.refinedstorage.api.storage.externalstorage.IExternalStora import com.refinedmods.refinedstorage.api.storage.externalstorage.IExternalStorageContext; import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/ItemExternalStorageCache.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/ItemExternalStorageCache.java index 62dcce712..bd88695b9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/ItemExternalStorageCache.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/ItemExternalStorageCache.java @@ -2,7 +2,7 @@ package com.refinedmods.refinedstorage.apiimpl.storage.externalstorage; import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandler; import javax.annotation.Nullable; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/ItemExternalStorageProvider.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/ItemExternalStorageProvider.java index d6f75561f..276ef938c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/ItemExternalStorageProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/externalstorage/ItemExternalStorageProvider.java @@ -8,15 +8,15 @@ import com.refinedmods.refinedstorage.api.storage.externalstorage.IExternalStora import com.refinedmods.refinedstorage.tile.InterfaceTile; import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; +import net.minecraft.core.Direction; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nonnull; public class ItemExternalStorageProvider implements IExternalStorageProvider { @Override - public boolean canProvide(TileEntity tile, Direction direction) { + public boolean canProvide(BlockEntity tile, Direction direction) { INetworkNode node = NetworkUtils.getNodeFromTile(tile); if (node instanceof IStorageProvider) { @@ -28,7 +28,7 @@ public class ItemExternalStorageProvider implements IExternalStorageProvider provide(IExternalStorageContext context, TileEntity tile, Direction direction) { + public IExternalStorage provide(IExternalStorageContext context, BlockEntity tile, Direction direction) { return new ItemExternalStorage(context, () -> { if (!tile.getLevel().isLoaded(tile.getBlockPos())) { return null; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/tracker/FluidStorageTracker.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/tracker/FluidStorageTracker.java index 4122a3d37..d520584a6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/tracker/FluidStorageTracker.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/tracker/FluidStorageTracker.java @@ -4,9 +4,9 @@ import com.refinedmods.refinedstorage.api.storage.tracker.IStorageTracker; import com.refinedmods.refinedstorage.api.storage.tracker.StorageTrackerEntry; import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.fluids.FluidStack; import java.util.HashMap; @@ -25,7 +25,7 @@ public class FluidStorageTracker implements IStorageTracker { } @Override - public void changed(PlayerEntity player, FluidStack stack) { + public void changed(Player player, FluidStack stack) { changes.put(new Key(stack), new StorageTrackerEntry(System.currentTimeMillis(), player.getName().getString())); listener.run(); @@ -37,9 +37,9 @@ public class FluidStorageTracker implements IStorageTracker { } @Override - public void readFromNbt(ListNBT list) { + public void readFromNbt(ListTag list) { for (int i = 0; i < list.size(); ++i) { - CompoundNBT tag = list.getCompound(i); + CompoundTag tag = list.getCompound(i); FluidStack stack = FluidStack.loadFluidStackFromNBT(tag.getCompound(NBT_STACK)); @@ -50,15 +50,15 @@ public class FluidStorageTracker implements IStorageTracker { } @Override - public ListNBT serializeNbt() { - ListNBT list = new ListNBT(); + public ListTag serializeNbt() { + ListTag list = new ListTag(); for (Map.Entry entry : changes.entrySet()) { - CompoundNBT tag = new CompoundNBT(); + CompoundTag tag = new CompoundTag(); tag.putLong(NBT_TIME, entry.getValue().getTime()); tag.putString(NBT_NAME, entry.getValue().getName()); - tag.put(NBT_STACK, entry.getKey().stack.writeToNBT(new CompoundNBT())); + tag.put(NBT_STACK, entry.getKey().stack.writeToNBT(new CompoundTag())); list.add(tag); } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/tracker/ItemStorageTracker.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/tracker/ItemStorageTracker.java index 464d27155..2e449bb8e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/tracker/ItemStorageTracker.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/tracker/ItemStorageTracker.java @@ -4,10 +4,10 @@ import com.refinedmods.refinedstorage.api.storage.tracker.IStorageTracker; import com.refinedmods.refinedstorage.api.storage.tracker.StorageTrackerEntry; import com.refinedmods.refinedstorage.util.ItemStackKey; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import java.util.HashMap; import java.util.Map; @@ -25,7 +25,7 @@ public class ItemStorageTracker implements IStorageTracker { } @Override - public void changed(PlayerEntity player, ItemStack stack) { + public void changed(Player player, ItemStack stack) { changes.put(new ItemStackKey(stack), new StorageTrackerEntry(System.currentTimeMillis(), player.getName().getString())); listener.run(); @@ -37,9 +37,9 @@ public class ItemStorageTracker implements IStorageTracker { } @Override - public void readFromNbt(ListNBT list) { + public void readFromNbt(ListTag list) { for (int i = 0; i < list.size(); ++i) { - CompoundNBT tag = list.getCompound(i); + CompoundTag tag = list.getCompound(i); ItemStack stack = StackUtils.deserializeStackFromNbt(tag.getCompound(NBT_STACK)); @@ -50,11 +50,11 @@ public class ItemStorageTracker implements IStorageTracker { } @Override - public ListNBT serializeNbt() { - ListNBT list = new ListNBT(); + public ListTag serializeNbt() { + ListTag list = new ListTag(); for (Map.Entry entry : changes.entrySet()) { - CompoundNBT tag = new CompoundNBT(); + CompoundTag tag = new CompoundTag(); tag.putLong(NBT_TIME, entry.getValue().getTime()); tag.putString(NBT_NAME, entry.getValue().getName()); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/tracker/StorageTrackerManager.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/tracker/StorageTrackerManager.java index ebabaf65b..caa49fae9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/tracker/StorageTrackerManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/tracker/StorageTrackerManager.java @@ -4,9 +4,9 @@ import com.refinedmods.refinedstorage.api.storage.StorageType; import com.refinedmods.refinedstorage.api.storage.tracker.IStorageTracker; import com.refinedmods.refinedstorage.api.storage.tracker.IStorageTrackerManager; import com.refinedmods.refinedstorage.apiimpl.util.RSWorldSavedData; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraftforge.common.util.Constants; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.Tag; import java.util.HashMap; import java.util.Map; @@ -22,16 +22,11 @@ public class StorageTrackerManager extends RSWorldSavedData implements IStorageT private final Map> trackers = new HashMap<>(); - public StorageTrackerManager(String name) { - super(name); - } - @Override public void markForSaving() { this.setDirty(); } - @Override public IStorageTracker getOrCreate(UUID uuid, StorageType type) { IStorageTracker tracker = trackers.get(uuid); @@ -55,15 +50,15 @@ public class StorageTrackerManager extends RSWorldSavedData implements IStorageT } @Override - public void load(CompoundNBT nbt) { + public void load(CompoundTag nbt) { if (nbt.contains(NBT_TRACKERS)) { - ListNBT trackerTags = nbt.getList(NBT_TRACKERS, Constants.NBT.TAG_COMPOUND); + ListTag trackerTags = nbt.getList(NBT_TRACKERS, Tag.TAG_COMPOUND); for (int i = 0; i < trackerTags.size(); ++i) { - CompoundNBT trackerTag = trackerTags.getCompound(i); + CompoundTag trackerTag = trackerTags.getCompound(i); UUID id = trackerTag.getUUID(NBT_TRACKER_ID); - ListNBT data = trackerTag.getList(NBT_TRACKER_DATA, Constants.NBT.TAG_COMPOUND); + ListTag data = trackerTag.getList(NBT_TRACKER_DATA, Tag.TAG_COMPOUND); StorageType type = StorageType.values()[trackerTag.getInt(NBT_TRACKER_TYPE)]; IStorageTracker tracker = getOrCreate(id, type); @@ -73,11 +68,11 @@ public class StorageTrackerManager extends RSWorldSavedData implements IStorageT } @Override - public CompoundNBT save(CompoundNBT compound) { - ListNBT trackerListTag = new ListNBT(); + public CompoundTag save(CompoundTag compound) { + ListTag trackerListTag = new ListTag(); for (Map.Entry> entry : trackers.entrySet()) { - CompoundNBT trackerTag = new CompoundNBT(); + CompoundTag trackerTag = new CompoundTag(); trackerTag.putUUID(NBT_TRACKER_ID, entry.getKey()); trackerTag.put(NBT_TRACKER_DATA, entry.getValue().serializeNbt()); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/Comparer.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/Comparer.java index d0a0893b8..38ee66657 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/Comparer.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/Comparer.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.apiimpl.util; import com.refinedmods.refinedstorage.api.util.IComparer; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/FluidStackList.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/FluidStackList.java index cdea3db26..cc9f32d6b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/FluidStackList.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/FluidStackList.java @@ -5,13 +5,15 @@ import com.refinedmods.refinedstorage.api.util.IStackList; import com.refinedmods.refinedstorage.api.util.StackListEntry; import com.refinedmods.refinedstorage.api.util.StackListResult; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.fluid.Fluid; -import net.minecraft.item.ItemStack; +import net.minecraft.world.level.material.Fluid; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.*; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; public class FluidStackList implements IStackList { private final ArrayListMultimap> stacks = ArrayListMultimap.create(); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/ItemFilter.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/ItemFilter.java index f7f28ade6..68f356f54 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/ItemFilter.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/ItemFilter.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.apiimpl.util; import com.refinedmods.refinedstorage.api.util.IFilter; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; public class ItemFilter implements IFilter { private final ItemStack stack; diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/ItemStackList.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/ItemStackList.java index bb3aa4ea5..0843a20c6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/ItemStackList.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/ItemStackList.java @@ -5,13 +5,16 @@ import com.refinedmods.refinedstorage.api.util.IStackList; import com.refinedmods.refinedstorage.api.util.StackListEntry; import com.refinedmods.refinedstorage.api.util.StackListResult; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.*; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; public class ItemStackList implements IStackList { private final ArrayListMultimap> stacks = ArrayListMultimap.create(); diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/RSWorldSavedData.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/RSWorldSavedData.java index 59ec490b8..78c68028c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/RSWorldSavedData.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/util/RSWorldSavedData.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.apiimpl.util; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.util.SharedConstants; -import net.minecraft.world.storage.WorldSavedData; +import net.minecraft.SharedConstants; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtIo; +import net.minecraft.world.level.saveddata.SavedData; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -11,18 +11,13 @@ import java.io.File; import java.io.IOException; -public abstract class RSWorldSavedData extends WorldSavedData { +public abstract class RSWorldSavedData extends SavedData { private final Logger LOGGER = LogManager.getLogger(RSWorldSavedData.class); - public RSWorldSavedData(String name) { - super(name); - } + public abstract void load(CompoundTag nbt); @Override - public abstract void load(CompoundNBT nbt); - - @Override - public abstract CompoundNBT save(CompoundNBT compound); + public abstract CompoundTag save(CompoundTag compound); @Override public void save(File fileIn) { @@ -30,12 +25,12 @@ public abstract class RSWorldSavedData extends WorldSavedData { if (this.isDirty()) { File tempFile = fileIn.toPath().getParent().resolve(fileIn.getName() + ".temp").toFile(); - CompoundNBT compoundnbt = new CompoundNBT(); - compoundnbt.put("data", this.save(new CompoundNBT())); + CompoundTag compoundnbt = new CompoundTag(); + compoundnbt.put("data", this.save(new CompoundTag())); compoundnbt.putInt("DataVersion", SharedConstants.getCurrentVersion().getWorldVersion()); try { - CompressedStreamTools.writeCompressed(compoundnbt, tempFile); + NbtIo.writeCompressed(compoundnbt, tempFile); if (fileIn.exists()) { if (!fileIn.delete()) { LOGGER.error("Failed To delete " + fileIn.getName()); diff --git a/src/main/java/com/refinedmods/refinedstorage/block/BaseBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/BaseBlock.java index 1aab59fb3..58ceac17b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/BaseBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/BaseBlock.java @@ -1,14 +1,12 @@ package com.refinedmods.refinedstorage.block; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.state.StateContainer; -import net.minecraft.util.Direction; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import net.minecraft.block.AbstractBlock.Properties; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; public abstract class BaseBlock extends Block { protected BaseBlock(Properties properties) { @@ -32,19 +30,19 @@ public abstract class BaseBlock extends Block { return super.rotate(state, rot); } - protected void onDirectionChanged(World world, BlockPos pos, Direction newDirection) { + protected void onDirectionChanged(Level world, BlockPos pos, Direction newDirection) { // NO OP } @Override @SuppressWarnings("deprecation") - public void onRemove(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { + public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean isMoving) { super.onRemove(state, world, pos, newState, isMoving); checkIfDirectionHasChanged(state, world, pos, newState); } - protected void checkIfDirectionHasChanged(BlockState state, World world, BlockPos pos, BlockState newState) { + protected void checkIfDirectionHasChanged(BlockState state, Level world, BlockPos pos, BlockState newState) { if (getDirection() != BlockDirection.NONE && state.getBlock() == newState.getBlock() && state.getValue(getDirection().getProperty()) != newState.getValue(getDirection().getProperty())) { @@ -53,7 +51,7 @@ public abstract class BaseBlock extends Block { } @Override - protected void createBlockStateDefinition(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateDefinition.Builder builder) { super.createBlockStateDefinition(builder); BlockDirection dir = getDirection(); diff --git a/src/main/java/com/refinedmods/refinedstorage/block/BlockDirection.java b/src/main/java/com/refinedmods/refinedstorage/block/BlockDirection.java index a76911a4f..c2b12d542 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/BlockDirection.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/BlockDirection.java @@ -1,10 +1,10 @@ package com.refinedmods.refinedstorage.block; import com.refinedmods.refinedstorage.util.DirectionUtils; -import net.minecraft.entity.LivingEntity; -import net.minecraft.state.DirectionProperty; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.level.block.state.properties.DirectionProperty; import java.util.Arrays; diff --git a/src/main/java/com/refinedmods/refinedstorage/block/CableBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/CableBlock.java index 376f779f3..b07ff7620 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/CableBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/CableBlock.java @@ -9,34 +9,39 @@ import com.refinedmods.refinedstorage.block.shape.ShapeCache; import com.refinedmods.refinedstorage.capability.NetworkNodeProxyCapability; import com.refinedmods.refinedstorage.render.ConstantsCable; import com.refinedmods.refinedstorage.tile.CableTile; +import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.util.BlockUtils; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.IWaterLoggable; -import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.BlockItemUseContext; -import net.minecraft.pathfinding.PathType; -import net.minecraft.state.BooleanProperty; -import net.minecraft.state.StateContainer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.shapes.VoxelShapes; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.IWorld; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.SimpleWaterloggedBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; import javax.annotation.Nullable; import java.util.Optional; -import net.minecraft.block.AbstractBlock.Properties; - -public class CableBlock extends NetworkNodeBlock implements IWaterLoggable { +public class CableBlock extends NetworkNodeBlock implements SimpleWaterloggedBlock { + protected static final VoxelShape HOLDER_NORTH = box(7, 7, 2, 9, 9, 6); + protected static final VoxelShape HOLDER_EAST = box(10, 7, 7, 14, 9, 9); + protected static final VoxelShape HOLDER_SOUTH = box(7, 7, 10, 9, 9, 14); + protected static final VoxelShape HOLDER_WEST = box(2, 7, 7, 6, 9, 9); + protected static final VoxelShape HOLDER_UP = box(7, 10, 7, 9, 14, 9); + protected static final VoxelShape HOLDER_DOWN = box(7, 2, 7, 9, 6, 9); private static final BooleanProperty NORTH = BooleanProperty.create("north"); private static final BooleanProperty EAST = BooleanProperty.create("east"); private static final BooleanProperty SOUTH = BooleanProperty.create("south"); @@ -44,14 +49,6 @@ public class CableBlock extends NetworkNodeBlock implements IWaterLoggable { private static final BooleanProperty UP = BooleanProperty.create("up"); private static final BooleanProperty DOWN = BooleanProperty.create("down"); private static final BooleanProperty WATERLOGGED = BooleanProperty.create("waterlogged"); - - protected static final VoxelShape HOLDER_NORTH = box(7, 7, 2, 9, 9, 6); - protected static final VoxelShape HOLDER_EAST = box(10, 7, 7, 14, 9, 9); - protected static final VoxelShape HOLDER_SOUTH = box(7, 7, 10, 9, 9, 14); - protected static final VoxelShape HOLDER_WEST = box(2, 7, 7, 6, 9, 9); - protected static final VoxelShape HOLDER_UP = box(7, 10, 7, 9, 14, 9); - protected static final VoxelShape HOLDER_DOWN = box(7, 2, 7, 9, 6, 9); - private static final VoxelShape SHAPE_CORE = box(6, 6, 6, 10, 10, 10); private static final VoxelShape SHAPE_NORTH = box(6, 6, 0, 10, 10, 6); private static final VoxelShape SHAPE_EAST = box(10, 6, 6, 16, 10, 10); @@ -71,55 +68,73 @@ public class CableBlock extends NetworkNodeBlock implements IWaterLoggable { this.registerDefaultState(defaultBlockState().setValue(NORTH, false).setValue(EAST, false).setValue(SOUTH, false).setValue(WEST, false).setValue(UP, false).setValue(DOWN, false).setValue(WATERLOGGED, false)); } - @Override - @SuppressWarnings("deprecation") - public BlockState updateShape(BlockState state, Direction dir, BlockState facingState, IWorld world, BlockPos pos, BlockPos facingPos) { - return getState(state, world, pos); - } - - @Override - public boolean isPathfindable(BlockState state, IBlockReader worldIn, BlockPos pos, PathType type) { - return false; - } - - @Override - @SuppressWarnings("deprecation") - public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext ctx) { - return ConstantsCable.addCoverVoxelShapes(ShapeCache.getOrCreate(state, CableBlock::getCableShape), world, pos); - } - protected static VoxelShape getCableShape(BlockState state) { VoxelShape shape = SHAPE_CORE; if (Boolean.TRUE.equals(state.getValue(NORTH))) { - shape = VoxelShapes.or(shape, SHAPE_NORTH); + shape = Shapes.or(shape, SHAPE_NORTH); } if (Boolean.TRUE.equals(state.getValue(EAST))) { - shape = VoxelShapes.or(shape, SHAPE_EAST); + shape = Shapes.or(shape, SHAPE_EAST); } if (Boolean.TRUE.equals(state.getValue(SOUTH))) { - shape = VoxelShapes.or(shape, SHAPE_SOUTH); + shape = Shapes.or(shape, SHAPE_SOUTH); } if (Boolean.TRUE.equals(state.getValue(WEST))) { - shape = VoxelShapes.or(shape, SHAPE_WEST); + shape = Shapes.or(shape, SHAPE_WEST); } if (Boolean.TRUE.equals(state.getValue(UP))) { - shape = VoxelShapes.or(shape, SHAPE_UP); + shape = Shapes.or(shape, SHAPE_UP); } if (Boolean.TRUE.equals(state.getValue(DOWN))) { - shape = VoxelShapes.or(shape, SHAPE_DOWN); + shape = Shapes.or(shape, SHAPE_DOWN); } return shape; } + public static boolean hasVisualConnectionOnSide(BlockState state, Direction direction) { + switch (direction) { + case DOWN: + return state.getValue(DOWN); + case UP: + return state.getValue(UP); + case NORTH: + return state.getValue(NORTH); + case SOUTH: + return state.getValue(SOUTH); + case WEST: + return state.getValue(WEST); + case EAST: + return state.getValue(EAST); + } + return false; + } + @Override - protected void onDirectionChanged(World world, BlockPos pos, Direction newDirection) { + @SuppressWarnings("deprecation") + public BlockState updateShape(BlockState state, Direction dir, BlockState facingState, LevelAccessor world, BlockPos pos, BlockPos facingPos) { + return getState(state, world, pos); + } + + @Override + public boolean isPathfindable(BlockState state, BlockGetter worldIn, BlockPos pos, PathComputationType type) { + return false; + } + + @Override + @SuppressWarnings("deprecation") + public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext ctx) { + return ConstantsCable.addCoverVoxelShapes(ShapeCache.getOrCreate(state, CableBlock::getCableShape), world, pos); + } + + @Override + protected void onDirectionChanged(Level world, BlockPos pos, Direction newDirection) { // rotate() in BaseBlock "stupidly" changes the direction without checking if our cable connections are still valid. // You'd expect that cable connections are not changing when simply changing the direction. // But they need to. For example, when rotating a constructor to connect to a neighboring cable, the connection to that neighbor @@ -143,14 +158,14 @@ public class CableBlock extends NetworkNodeBlock implements IWaterLoggable { } @Override - public void neighborChanged(BlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos, boolean isMoving) { + public void neighborChanged(BlockState state, Level world, BlockPos pos, Block blockIn, BlockPos fromPos, boolean isMoving) { super.neighborChanged(state, world, pos, blockIn, fromPos, isMoving); world.setBlockAndUpdate(pos, getState(world.getBlockState(pos), world, pos)); } @Nullable @Override - public BlockState getStateForPlacement(BlockItemUseContext ctx) { + public BlockState getStateForPlacement(BlockPlaceContext ctx) { return getState(defaultBlockState(), ctx.getLevel(), ctx.getClickedPos()); } @@ -161,22 +176,22 @@ public class CableBlock extends NetworkNodeBlock implements IWaterLoggable { } @Override - public boolean placeLiquid(IWorld worldIn, BlockPos pos, BlockState state, FluidState fluidStateIn) { - return IWaterLoggable.super.placeLiquid(worldIn, pos, state, fluidStateIn); + public boolean placeLiquid(LevelAccessor worldIn, BlockPos pos, BlockState state, FluidState fluidStateIn) { + return SimpleWaterloggedBlock.super.placeLiquid(worldIn, pos, state, fluidStateIn); } @Override - public boolean canPlaceLiquid(IBlockReader worldIn, BlockPos pos, BlockState state, Fluid fluidIn) { - return IWaterLoggable.super.canPlaceLiquid(worldIn, pos, state, fluidIn); + public boolean canPlaceLiquid(BlockGetter worldIn, BlockPos pos, BlockState state, Fluid fluidIn) { + return SimpleWaterloggedBlock.super.canPlaceLiquid(worldIn, pos, state, fluidIn); } - private boolean hasNodeConnection(IWorld world, BlockPos pos, BlockState state, Direction direction) { + private boolean hasNodeConnection(LevelAccessor world, BlockPos pos, BlockState state, Direction direction) { // Prevent the "holder" of a cable block conflicting with a cable connection. if (getDirection() != BlockDirection.NONE && state.getValue(getDirection().getProperty()).getOpposite() == direction) { return false; } - TileEntity tile = world.getBlockEntity(pos); + BlockEntity tile = world.getBlockEntity(pos); if (tile == null) { return false; } @@ -186,7 +201,7 @@ public class CableBlock extends NetworkNodeBlock implements IWaterLoggable { && !isSideCovered(world.getBlockEntity(pos.relative(direction)), direction.getOpposite()); } - private boolean isSideCovered(TileEntity tile, Direction direction) { + private boolean isSideCovered(BlockEntity tile, Direction direction) { if (tile == null) { return false; } @@ -205,7 +220,7 @@ public class CableBlock extends NetworkNodeBlock implements IWaterLoggable { return false; } - private BlockState getState(BlockState currentState, IWorld world, BlockPos pos) { + private BlockState getState(BlockState currentState, LevelAccessor world, BlockPos pos) { boolean north = hasNodeConnection(world, pos.relative(Direction.NORTH), currentState, Direction.SOUTH); boolean east = hasNodeConnection(world, pos.relative(Direction.EAST), currentState, Direction.WEST); boolean south = hasNodeConnection(world, pos.relative(Direction.SOUTH), currentState, Direction.NORTH); @@ -222,34 +237,15 @@ public class CableBlock extends NetworkNodeBlock implements IWaterLoggable { .setValue(DOWN, down); } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new CableTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new CableTile(pos, state); } @Override - protected void createBlockStateDefinition(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateDefinition.Builder builder) { super.createBlockStateDefinition(builder); builder.add(NORTH, EAST, SOUTH, WEST, UP, DOWN, WATERLOGGED); } - - public static boolean hasVisualConnectionOnSide(BlockState state, Direction direction) { - switch (direction) { - case DOWN: - return state.getValue(DOWN); - case UP: - return state.getValue(UP); - case NORTH: - return state.getValue(NORTH); - case SOUTH: - return state.getValue(SOUTH); - case WEST: - return state.getValue(WEST); - case EAST: - return state.getValue(EAST); - } - return false; - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/ColoredNetworkBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/ColoredNetworkBlock.java index 1718cd006..8a5f2eeab 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/ColoredNetworkBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/ColoredNetworkBlock.java @@ -1,19 +1,17 @@ package com.refinedmods.refinedstorage.block; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.block.AbstractBlock.Properties; - -public class ColoredNetworkBlock extends NetworkNodeBlock { +public abstract class ColoredNetworkBlock extends NetworkNodeBlock { public ColoredNetworkBlock(Properties props) { super(props); } // Don't do block drops if we change the color. @Override - public void onRemove(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { + public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean isMoving) { if (state.getBlock().getClass().equals(newState.getBlock().getClass())) { checkIfDirectionHasChanged(state, world, pos, newState); } else { diff --git a/src/main/java/com/refinedmods/refinedstorage/block/ConstructorBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/ConstructorBlock.java index 1735b2f25..038191607 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/ConstructorBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/ConstructorBlock.java @@ -8,32 +8,32 @@ import com.refinedmods.refinedstorage.tile.ConstructorTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.CollisionUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.shapes.VoxelShapes; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.network.NetworkHooks; import javax.annotation.Nullable; public class ConstructorBlock extends CableBlock { - private static final VoxelShape HEAD_NORTH = VoxelShapes.or(box(2, 2, 0, 14, 14, 2), HOLDER_NORTH); - private static final VoxelShape HEAD_EAST = VoxelShapes.or(box(14, 2, 2, 16, 14, 14), HOLDER_EAST); - private static final VoxelShape HEAD_SOUTH = VoxelShapes.or(box(2, 2, 14, 14, 14, 16), HOLDER_SOUTH); - private static final VoxelShape HEAD_WEST = VoxelShapes.or(box(0, 2, 2, 2, 14, 14), HOLDER_WEST); - private static final VoxelShape HEAD_DOWN = VoxelShapes.or(box(2, 0, 2, 14, 2, 14), HOLDER_DOWN); - private static final VoxelShape HEAD_UP = VoxelShapes.or(box(2, 14, 2, 14, 16, 14), HOLDER_UP); + private static final VoxelShape HEAD_NORTH = Shapes.or(box(2, 2, 0, 14, 14, 2), HOLDER_NORTH); + private static final VoxelShape HEAD_EAST = Shapes.or(box(14, 2, 2, 16, 14, 14), HOLDER_EAST); + private static final VoxelShape HEAD_SOUTH = Shapes.or(box(2, 2, 14, 14, 14, 16), HOLDER_SOUTH); + private static final VoxelShape HEAD_WEST = Shapes.or(box(0, 2, 2, 2, 14, 14), HOLDER_WEST); + private static final VoxelShape HEAD_DOWN = Shapes.or(box(2, 0, 2, 14, 2, 14), HOLDER_DOWN); + private static final VoxelShape HEAD_UP = Shapes.or(box(2, 14, 2, 14, 16, 14), HOLDER_UP); public ConstructorBlock() { super(BlockUtils.DEFAULT_GLASS_PROPERTIES); @@ -44,18 +44,17 @@ public class ConstructorBlock extends CableBlock { return BlockDirection.ANY; } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new ConstructorTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new ConstructorTile(pos, state); } @Override - public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext ctx) { + public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext ctx) { return ConstantsCable.addCoverVoxelShapes(ShapeCache.getOrCreate(state, s -> { VoxelShape shape = getCableShape(s); - shape = VoxelShapes.or(shape, getHeadShape(s)); + shape = Shapes.or(shape, getHeadShape(s)); return shape; }), world, pos); @@ -88,17 +87,17 @@ public class ConstructorBlock extends CableBlock { return HEAD_DOWN; } - return VoxelShapes.empty(); + return Shapes.empty(); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { if (!world.isClientSide && CollisionUtils.isInBounds(getHeadShape(state), pos, hit.getLocation())) { return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.constructor"), + new TranslatableComponent("gui.refinedstorage.constructor"), (tile, windowId, inventory, p) -> new ConstructorContainer(tile, player, windowId), pos ), @@ -106,7 +105,7 @@ public class ConstructorBlock extends CableBlock { )); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/block/ControllerBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/ControllerBlock.java index 465b0b6f9..e4ed0557c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/ControllerBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/ControllerBlock.java @@ -10,36 +10,136 @@ import com.refinedmods.refinedstorage.tile.ControllerTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.ColorMap; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.INamedContainerProvider; -import net.minecraft.item.DyeColor; -import net.minecraft.item.ItemStack; -import net.minecraft.state.EnumProperty; -import net.minecraft.state.StateContainer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.IStringSerializable; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.phys.BlockHitResult; import net.minecraftforge.energy.CapabilityEnergy; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraftforge.network.NetworkHooks; import javax.annotation.Nullable; -public class ControllerBlock extends BaseBlock { - public enum EnergyType implements IStringSerializable { +public class ControllerBlock extends BaseBlock implements EntityBlock { + public static final EnumProperty ENERGY_TYPE = EnumProperty.create("energy_type", EnergyType.class); + private final NetworkType type; + + public ControllerBlock(NetworkType type) { + super(BlockUtils.DEFAULT_ROCK_PROPERTIES); + + this.type = type; + this.registerDefaultState(getStateDefinition().any().setValue(ENERGY_TYPE, EnergyType.OFF)); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + super.createBlockStateDefinition(builder); + + builder.add(ENERGY_TYPE); + } + + public NetworkType getType() { + return type; + } + + @Override + public void setPlacedBy(Level world, BlockPos pos, BlockState state, @Nullable LivingEntity entity, ItemStack stack) { + super.setPlacedBy(world, pos, state, entity, stack); + + if (!world.isClientSide) { + stack.getCapability(CapabilityEnergy.ENERGY).ifPresent(energyFromStack -> { + BlockEntity tile = world.getBlockEntity(pos); + + if (tile != null) { + tile.getCapability(CapabilityEnergy.ENERGY).ifPresent(energyFromTile -> energyFromTile.receiveEnergy(energyFromStack.getEnergyStored(), false)); + } + }); + } + } + + @Override + @SuppressWarnings("deprecation") + public void neighborChanged(BlockState state, Level world, BlockPos pos, Block blockIn, BlockPos fromPos, boolean isMoving) { + super.neighborChanged(state, world, pos, blockIn, fromPos, isMoving); + + if (!world.isClientSide) { + INetwork network = API.instance().getNetworkManager((ServerLevel) world).getNetwork(pos); + if (network instanceof Network) { + ((Network) network).setRedstonePowered(world.hasNeighborSignal(pos)); + } + } + } + + @Override + @SuppressWarnings("deprecation") + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + InteractionResult result = super.use(state, world, pos, player, hand, hit); + if (result != InteractionResult.PASS) { + return result; + } + + ColorMap colorMap = type == NetworkType.CREATIVE ? RSBlocks.CREATIVE_CONTROLLER : RSBlocks.CONTROLLER; + DyeColor color = DyeColor.getColor(player.getItemInHand(hand)); + + if (color != null && !state.getBlock().equals(colorMap.get(color).get())) { + BlockState newState = colorMap.get(color).get().defaultBlockState().setValue(ENERGY_TYPE, state.getValue(ENERGY_TYPE)); + + return RSBlocks.CONTROLLER.setBlockState(newState, player.getItemInHand(hand), world, pos, player); + } + + if (!world.isClientSide) { + return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( + (ServerPlayer) player, + new MenuProvider() { + @Override + public Component getDisplayName() { + return new TranslatableComponent("gui.refinedstorage." + (ControllerBlock.this.getType() == NetworkType.CREATIVE ? "creative_" : "") + "controller"); + } + + @Override + public AbstractContainerMenu createMenu(int i, Inventory playerInventory, Player player) { + return new ControllerContainer((ControllerTile) world.getBlockEntity(pos), player, i); + } + }, + pos + )); + } + + return InteractionResult.SUCCESS; + } + + @Override + public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean isMoving) { + if (newState.getBlock() instanceof ControllerBlock) { + return; + } + super.onRemove(state, world, pos, newState, isMoving); + } + + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new ControllerTile(type, pos, state); + } + + public enum EnergyType implements StringRepresentable { OFF("off"), NEARLY_OFF("nearly_off"), NEARLY_ON("nearly_on"), @@ -61,111 +161,4 @@ public class ControllerBlock extends BaseBlock { return name; } } - - public static final EnumProperty ENERGY_TYPE = EnumProperty.create("energy_type", EnergyType.class); - - private final NetworkType type; - - public ControllerBlock(NetworkType type) { - super(BlockUtils.DEFAULT_ROCK_PROPERTIES); - - this.type = type; - this.registerDefaultState(getStateDefinition().any().setValue(ENERGY_TYPE, EnergyType.OFF)); - } - - @Override - protected void createBlockStateDefinition(StateContainer.Builder builder) { - super.createBlockStateDefinition(builder); - - builder.add(ENERGY_TYPE); - } - - public NetworkType getType() { - return type; - } - - @Override - public boolean hasTileEntity(BlockState state) { - return true; - } - - @Nullable - @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new ControllerTile(type); - } - - @Override - public void setPlacedBy(World world, BlockPos pos, BlockState state, @Nullable LivingEntity entity, ItemStack stack) { - super.setPlacedBy(world, pos, state, entity, stack); - - if (!world.isClientSide) { - stack.getCapability(CapabilityEnergy.ENERGY).ifPresent(energyFromStack -> { - TileEntity tile = world.getBlockEntity(pos); - - if (tile != null) { - tile.getCapability(CapabilityEnergy.ENERGY).ifPresent(energyFromTile -> energyFromTile.receiveEnergy(energyFromStack.getEnergyStored(), false)); - } - }); - } - } - - @Override - @SuppressWarnings("deprecation") - public void neighborChanged(BlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos, boolean isMoving) { - super.neighborChanged(state, world, pos, blockIn, fromPos, isMoving); - - if (!world.isClientSide) { - INetwork network = API.instance().getNetworkManager((ServerWorld) world).getNetwork(pos); - if (network instanceof Network) { - ((Network) network).setRedstonePowered(world.hasNeighborSignal(pos)); - } - } - } - - @Override - @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { - ActionResultType result = super.use(state, world, pos, player, hand, hit); - if (result != ActionResultType.PASS) { - return result; - } - - ColorMap colorMap = type == NetworkType.CREATIVE ? RSBlocks.CREATIVE_CONTROLLER : RSBlocks.CONTROLLER; - DyeColor color = DyeColor.getColor(player.getItemInHand(hand)); - - if (color != null && !state.getBlock().equals(colorMap.get(color).get())) { - BlockState newState = colorMap.get(color).get().defaultBlockState().setValue(ENERGY_TYPE, state.getValue(ENERGY_TYPE)); - - return RSBlocks.CONTROLLER.setBlockState(newState, player.getItemInHand(hand), world, pos, player); - } - - if (!world.isClientSide) { - return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, - new INamedContainerProvider() { - @Override - public ITextComponent getDisplayName() { - return new TranslationTextComponent("gui.refinedstorage." + (ControllerBlock.this.getType() == NetworkType.CREATIVE ? "creative_" : "") + "controller"); - } - - @Override - public Container createMenu(int i, PlayerInventory playerInventory, PlayerEntity player) { - return new ControllerContainer((ControllerTile) world.getBlockEntity(pos), player, i); - } - }, - pos - )); - } - - return ActionResultType.SUCCESS; - } - - @Override - public void onRemove(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { - if (newState.getBlock() instanceof ControllerBlock) { - return; - } - super.onRemove(state, world, pos, newState, isMoving); - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/CrafterBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/CrafterBlock.java index 8a5f54049..6035c300a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/CrafterBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/CrafterBlock.java @@ -7,19 +7,18 @@ import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerP import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.network.NetworkHooks; import javax.annotation.Nullable; @@ -33,18 +32,12 @@ public class CrafterBlock extends ColoredNetworkBlock { return BlockDirection.ANY_FACE_PLAYER; } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new CrafterTile(); - } - - @Override - public void setPlacedBy(World world, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) { + public void setPlacedBy(Level world, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) { super.setPlacedBy(world, pos, state, placer, stack); if (!world.isClientSide) { - TileEntity tile = world.getBlockEntity(pos); + BlockEntity tile = world.getBlockEntity(pos); if (tile instanceof CrafterTile && stack.hasCustomHoverName()) { ((CrafterTile) tile).getNode().setDisplayName(stack.getHoverName()); @@ -55,15 +48,15 @@ public class CrafterBlock extends ColoredNetworkBlock { @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { - ActionResultType result = RSBlocks.CRAFTER.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); - if (result != ActionResultType.PASS) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + InteractionResult result = RSBlocks.CRAFTER.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); + if (result != InteractionResult.PASS) { return result; } if (!world.isClientSide) { return NetworkUtils.attempt(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( ((CrafterTile) world.getBlockEntity(pos)).getNode().getName(), (tile, windowId, inventory, p) -> new CrafterContainer(tile, player, windowId), @@ -73,11 +66,16 @@ public class CrafterBlock extends ColoredNetworkBlock { ), Permission.MODIFY, Permission.AUTOCRAFTING); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override public boolean hasConnectedState() { return true; } + + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new CrafterTile(pos, state); + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/CrafterManagerBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/CrafterManagerBlock.java index af7bfb2c7..3a1bb1981 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/CrafterManagerBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/CrafterManagerBlock.java @@ -6,19 +6,16 @@ import com.refinedmods.refinedstorage.container.factory.CrafterManagerContainerP import com.refinedmods.refinedstorage.tile.CrafterManagerTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; - -import javax.annotation.Nullable; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.network.NetworkHooks; public class CrafterManagerBlock extends ColoredNetworkBlock { public CrafterManagerBlock() { @@ -30,29 +27,28 @@ public class CrafterManagerBlock extends ColoredNetworkBlock { return BlockDirection.HORIZONTAL; } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new CrafterManagerTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new CrafterManagerTile(pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { - ActionResultType result = RSBlocks.CRAFTER_MANAGER.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); - if (result != ActionResultType.PASS) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + InteractionResult result = RSBlocks.CRAFTER_MANAGER.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); + if (result != InteractionResult.PASS) { return result; } if (!world.isClientSide) { return NetworkUtils.attempt(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new CrafterManagerContainerProvider((CrafterManagerTile) world.getBlockEntity(pos)), buf -> CrafterManagerContainerProvider.writeToBuffer(buf, world, pos) ), Permission.MODIFY, Permission.AUTOCRAFTING); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/block/CraftingMonitorBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/CraftingMonitorBlock.java index 72d94e831..c720755c1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/CraftingMonitorBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/CraftingMonitorBlock.java @@ -7,19 +7,16 @@ import com.refinedmods.refinedstorage.container.factory.CraftingMonitorContainer import com.refinedmods.refinedstorage.tile.craftingmonitor.CraftingMonitorTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; - -import javax.annotation.Nullable; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.network.NetworkHooks; public class CraftingMonitorBlock extends ColoredNetworkBlock { public CraftingMonitorBlock() { @@ -31,17 +28,16 @@ public class CraftingMonitorBlock extends ColoredNetworkBlock { return BlockDirection.HORIZONTAL; } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new CraftingMonitorTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new CraftingMonitorTile(pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { - ActionResultType result = RSBlocks.CRAFTING_MONITOR.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); - if (result != ActionResultType.PASS) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + InteractionResult result = RSBlocks.CRAFTING_MONITOR.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); + if (result != InteractionResult.PASS) { return result; } @@ -49,13 +45,13 @@ public class CraftingMonitorBlock extends ColoredNetworkBlock { CraftingMonitorTile tile = (CraftingMonitorTile) world.getBlockEntity(pos); return NetworkUtils.attempt(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new CraftingMonitorContainerProvider(RSContainers.CRAFTING_MONITOR, tile.getNode(), tile), pos ), Permission.MODIFY, Permission.AUTOCRAFTING); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/block/DestructorBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/DestructorBlock.java index e4b8edd26..99fefed63 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/DestructorBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/DestructorBlock.java @@ -8,32 +8,30 @@ import com.refinedmods.refinedstorage.tile.DestructorTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.CollisionUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.shapes.VoxelShapes; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; - -import javax.annotation.Nullable; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.network.NetworkHooks; public class DestructorBlock extends CableBlock { - private static final VoxelShape HEAD_NORTH = VoxelShapes.or(box(2, 2, 0, 14, 14, 2), HOLDER_NORTH); - private static final VoxelShape HEAD_EAST = VoxelShapes.or(box(14, 2, 2, 16, 14, 14), HOLDER_EAST); - private static final VoxelShape HEAD_SOUTH = VoxelShapes.or(box(2, 2, 14, 14, 14, 16), HOLDER_SOUTH); - private static final VoxelShape HEAD_WEST = VoxelShapes.or(box(0, 2, 2, 2, 14, 14), HOLDER_WEST); - private static final VoxelShape HEAD_DOWN = VoxelShapes.or(box(2, 0, 2, 14, 2, 14), HOLDER_DOWN); - private static final VoxelShape HEAD_UP = VoxelShapes.or(box(2, 14, 2, 14, 16, 14), HOLDER_UP); + private static final VoxelShape HEAD_NORTH = Shapes.or(box(2, 2, 0, 14, 14, 2), HOLDER_NORTH); + private static final VoxelShape HEAD_EAST = Shapes.or(box(14, 2, 2, 16, 14, 14), HOLDER_EAST); + private static final VoxelShape HEAD_SOUTH = Shapes.or(box(2, 2, 14, 14, 14, 16), HOLDER_SOUTH); + private static final VoxelShape HEAD_WEST = Shapes.or(box(0, 2, 2, 2, 14, 14), HOLDER_WEST); + private static final VoxelShape HEAD_DOWN = Shapes.or(box(2, 0, 2, 14, 2, 14), HOLDER_DOWN); + private static final VoxelShape HEAD_UP = Shapes.or(box(2, 14, 2, 14, 16, 14), HOLDER_UP); public DestructorBlock() { super(BlockUtils.DEFAULT_GLASS_PROPERTIES); @@ -44,18 +42,17 @@ public class DestructorBlock extends CableBlock { return BlockDirection.ANY; } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new DestructorTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new DestructorTile(pos, state); } @Override - public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext ctx) { + public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext ctx) { return ConstantsCable.addCoverVoxelShapes(ShapeCache.getOrCreate(state, s -> { VoxelShape shape = getCableShape(s); - shape = VoxelShapes.or(shape, getHeadShape(s)); + shape = Shapes.or(shape, getHeadShape(s)); return shape; }), world, pos); @@ -88,17 +85,17 @@ public class DestructorBlock extends CableBlock { return HEAD_DOWN; } - return VoxelShapes.empty(); + return Shapes.empty(); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) { if (!world.isClientSide && CollisionUtils.isInBounds(getHeadShape(state), pos, hit.getLocation())) { return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.destructor"), + new TranslatableComponent("gui.refinedstorage.destructor"), (tile, windowId, inventory, p) -> new DestructorContainer(tile, player, windowId), pos ), @@ -106,7 +103,7 @@ public class DestructorBlock extends CableBlock { )); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/block/DetectorBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/DetectorBlock.java index 5c7ae9e24..4c3c9970d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/DetectorBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/DetectorBlock.java @@ -3,29 +3,30 @@ package com.refinedmods.refinedstorage.block; import com.refinedmods.refinedstorage.RSBlocks; import com.refinedmods.refinedstorage.container.DetectorContainer; import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerProvider; +import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.tile.DetectorTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.ColorMap; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.DyeColor; -import net.minecraft.state.BooleanProperty; -import net.minecraft.state.StateContainer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.network.NetworkHooks; import javax.annotation.Nullable; @@ -41,7 +42,7 @@ public class DetectorBlock extends ColoredNetworkBlock { } @Override - protected void createBlockStateDefinition(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateDefinition.Builder builder) { super.createBlockStateDefinition(builder); builder.add(POWERED); @@ -49,7 +50,7 @@ public class DetectorBlock extends ColoredNetworkBlock { @Override @SuppressWarnings("deprecation") - public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { + public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { return SHAPE; } @@ -61,15 +62,15 @@ public class DetectorBlock extends ColoredNetworkBlock { @Override @SuppressWarnings("deprecation") - public int getSignal(BlockState state, IBlockReader world, BlockPos pos, Direction side) { - TileEntity tile = world.getBlockEntity(pos); + public int getSignal(BlockState state, BlockGetter world, BlockPos pos, Direction side) { + BlockEntity tile = world.getBlockEntity(pos); return (tile instanceof DetectorTile && ((DetectorTile) tile).getNode().isPowered()) ? 15 : 0; } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { ColorMap colorMap = RSBlocks.DETECTOR; DyeColor color = DyeColor.getColor(player.getItemInHand(hand)); @@ -81,9 +82,9 @@ public class DetectorBlock extends ColoredNetworkBlock { if (!world.isClientSide) { return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.detector"), + new TranslatableComponent("gui.refinedstorage.detector"), (tile, windowId, inventory, p) -> new DetectorContainer(tile, player, windowId), pos ), @@ -91,12 +92,11 @@ public class DetectorBlock extends ColoredNetworkBlock { )); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new DetectorTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new DetectorTile(pos, state); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/DiskDriveBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/DiskDriveBlock.java index 6379b78f1..8f28525b6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/DiskDriveBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/DiskDriveBlock.java @@ -2,21 +2,22 @@ package com.refinedmods.refinedstorage.block; import com.refinedmods.refinedstorage.container.DiskDriveContainer; import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerProvider; +import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.tile.DiskDriveTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.network.NetworkHooks; import javax.annotation.Nullable; @@ -30,20 +31,19 @@ public class DiskDriveBlock extends NetworkNodeBlock { return BlockDirection.HORIZONTAL; } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new DiskDriveTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new DiskDriveTile(pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult rayTraceResult) { if (!world.isClientSide) { return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.disk_drive"), + new TranslatableComponent("gui.refinedstorage.disk_drive"), (tile, windowId, inventory, p) -> new DiskDriveContainer(tile, p, windowId), pos ), @@ -51,6 +51,6 @@ public class DiskDriveBlock extends NetworkNodeBlock { )); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/DiskManipulatorBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/DiskManipulatorBlock.java index f0bb5f651..75d7c2c53 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/DiskManipulatorBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/DiskManipulatorBlock.java @@ -3,21 +3,22 @@ package com.refinedmods.refinedstorage.block; import com.refinedmods.refinedstorage.RSBlocks; import com.refinedmods.refinedstorage.container.DiskManipulatorContainer; import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerProvider; +import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.tile.DiskManipulatorTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.network.NetworkHooks; import javax.annotation.Nullable; @@ -26,25 +27,24 @@ public class DiskManipulatorBlock extends ColoredNetworkBlock { super(BlockUtils.DEFAULT_ROCK_PROPERTIES); } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new DiskManipulatorTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new DiskManipulatorTile(pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult) { - ActionResultType result = RSBlocks.DISK_MANIPULATOR.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); - if (result != ActionResultType.PASS) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult rayTraceResult) { + InteractionResult result = RSBlocks.DISK_MANIPULATOR.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); + if (result != InteractionResult.PASS) { return result; } if (!world.isClientSide) { return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.disk_manipulator"), + new TranslatableComponent("gui.refinedstorage.disk_manipulator"), (tile, windowId, inventory, p) -> new DiskManipulatorContainer(tile, p, windowId), pos ), @@ -52,7 +52,7 @@ public class DiskManipulatorBlock extends ColoredNetworkBlock { )); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/block/ExporterBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/ExporterBlock.java index 54a3bdbaa..2beaa6881 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/ExporterBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/ExporterBlock.java @@ -8,55 +8,53 @@ import com.refinedmods.refinedstorage.tile.ExporterTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.CollisionUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.shapes.VoxelShapes; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; - -import javax.annotation.Nullable; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.network.NetworkHooks; public class ExporterBlock extends CableBlock { private static final VoxelShape LINE_NORTH_1 = box(6, 6, 0, 10, 10, 2); private static final VoxelShape LINE_NORTH_2 = box(5, 5, 2, 11, 11, 4); private static final VoxelShape LINE_NORTH_3 = box(3, 3, 4, 13, 13, 6); - private static final VoxelShape LINE_NORTH = VoxelShapes.or(LINE_NORTH_1, LINE_NORTH_2, LINE_NORTH_3); + private static final VoxelShape LINE_NORTH = Shapes.or(LINE_NORTH_1, LINE_NORTH_2, LINE_NORTH_3); private static final VoxelShape LINE_EAST_1 = box(14, 6, 6, 16, 10, 10); private static final VoxelShape LINE_EAST_2 = box(12, 5, 5, 14, 11, 11); private static final VoxelShape LINE_EAST_3 = box(10, 3, 3, 12, 13, 13); - private static final VoxelShape LINE_EAST = VoxelShapes.or(LINE_EAST_1, LINE_EAST_2, LINE_EAST_3); + private static final VoxelShape LINE_EAST = Shapes.or(LINE_EAST_1, LINE_EAST_2, LINE_EAST_3); private static final VoxelShape LINE_SOUTH_1 = box(6, 6, 14, 10, 10, 16); private static final VoxelShape LINE_SOUTH_2 = box(5, 5, 12, 11, 11, 14); private static final VoxelShape LINE_SOUTH_3 = box(3, 3, 10, 13, 13, 12); - private static final VoxelShape LINE_SOUTH = VoxelShapes.or(LINE_SOUTH_1, LINE_SOUTH_2, LINE_SOUTH_3); + private static final VoxelShape LINE_SOUTH = Shapes.or(LINE_SOUTH_1, LINE_SOUTH_2, LINE_SOUTH_3); private static final VoxelShape LINE_WEST_1 = box(0, 6, 6, 2, 10, 10); private static final VoxelShape LINE_WEST_2 = box(2, 5, 5, 4, 11, 11); private static final VoxelShape LINE_WEST_3 = box(4, 3, 3, 6, 13, 13); - private static final VoxelShape LINE_WEST = VoxelShapes.or(LINE_WEST_1, LINE_WEST_2, LINE_WEST_3); + private static final VoxelShape LINE_WEST = Shapes.or(LINE_WEST_1, LINE_WEST_2, LINE_WEST_3); private static final VoxelShape LINE_UP_1 = box(6, 14, 6, 10, 16, 10); private static final VoxelShape LINE_UP_2 = box(5, 12, 5, 11, 14, 11); private static final VoxelShape LINE_UP_3 = box(3, 10, 3, 13, 12, 13); - private static final VoxelShape LINE_UP = VoxelShapes.or(LINE_UP_1, LINE_UP_2, LINE_UP_3); + private static final VoxelShape LINE_UP = Shapes.or(LINE_UP_1, LINE_UP_2, LINE_UP_3); private static final VoxelShape LINE_DOWN_1 = box(6, 0, 6, 10, 2, 10); private static final VoxelShape LINE_DOWN_2 = box(5, 2, 5, 11, 4, 11); private static final VoxelShape LINE_DOWN_3 = box(3, 4, 3, 13, 6, 13); - private static final VoxelShape LINE_DOWN = VoxelShapes.or(LINE_DOWN_1, LINE_DOWN_2, LINE_DOWN_3); + private static final VoxelShape LINE_DOWN = Shapes.or(LINE_DOWN_1, LINE_DOWN_2, LINE_DOWN_3); public ExporterBlock() { super(BlockUtils.DEFAULT_GLASS_PROPERTIES); @@ -68,11 +66,11 @@ public class ExporterBlock extends CableBlock { } @Override - public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext ctx) { + public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext ctx) { return ConstantsCable.addCoverVoxelShapes(ShapeCache.getOrCreate(state, s -> { VoxelShape shape = getCableShape(s); - shape = VoxelShapes.or(shape, getLineShape(s)); + shape = Shapes.or(shape, getLineShape(s)); return shape; }), world, pos); @@ -106,23 +104,22 @@ public class ExporterBlock extends CableBlock { return LINE_DOWN; } - return VoxelShapes.empty(); + return Shapes.empty(); } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new ExporterTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new ExporterTile(pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { if (!world.isClientSide && CollisionUtils.isInBounds(getLineShape(state), pos, hit.getLocation())) { return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.exporter"), + new TranslatableComponent("gui.refinedstorage.exporter"), (tile, windowId, inventory, p) -> new ExporterContainer(tile, player, windowId), pos ), @@ -130,6 +127,6 @@ public class ExporterBlock extends CableBlock { )); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/ExternalStorageBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/ExternalStorageBlock.java index bd8e3a382..fd6253146 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/ExternalStorageBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/ExternalStorageBlock.java @@ -7,37 +7,38 @@ import com.refinedmods.refinedstorage.block.shape.ShapeCache; import com.refinedmods.refinedstorage.container.ExternalStorageContainer; import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerProvider; import com.refinedmods.refinedstorage.render.ConstantsCable; +import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.tile.ExternalStorageTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.CollisionUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.shapes.VoxelShapes; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.network.NetworkHooks; import javax.annotation.Nullable; public class ExternalStorageBlock extends CableBlock { - private static final VoxelShape HEAD_NORTH = VoxelShapes.or(box(3, 3, 0, 13, 13, 2), HOLDER_NORTH); - private static final VoxelShape HEAD_EAST = VoxelShapes.or(box(14, 3, 3, 16, 13, 13), HOLDER_EAST); - private static final VoxelShape HEAD_SOUTH = VoxelShapes.or(box(3, 3, 14, 13, 13, 16), HOLDER_SOUTH); - private static final VoxelShape HEAD_WEST = VoxelShapes.or(box(0, 3, 3, 2, 13, 13), HOLDER_WEST); - private static final VoxelShape HEAD_UP = VoxelShapes.or(box(3, 14, 3, 13, 16, 13), HOLDER_UP); - private static final VoxelShape HEAD_DOWN = VoxelShapes.or(box(3, 0, 3, 13, 2, 13), HOLDER_DOWN); + private static final VoxelShape HEAD_NORTH = Shapes.or(box(3, 3, 0, 13, 13, 2), HOLDER_NORTH); + private static final VoxelShape HEAD_EAST = Shapes.or(box(14, 3, 3, 16, 13, 13), HOLDER_EAST); + private static final VoxelShape HEAD_SOUTH = Shapes.or(box(3, 3, 14, 13, 13, 16), HOLDER_SOUTH); + private static final VoxelShape HEAD_WEST = Shapes.or(box(0, 3, 3, 2, 13, 13), HOLDER_WEST); + private static final VoxelShape HEAD_UP = Shapes.or(box(3, 14, 3, 13, 16, 13), HOLDER_UP); + private static final VoxelShape HEAD_DOWN = Shapes.or(box(3, 0, 3, 13, 2, 13), HOLDER_DOWN); public ExternalStorageBlock() { super(BlockUtils.DEFAULT_GLASS_PROPERTIES); @@ -49,11 +50,11 @@ public class ExternalStorageBlock extends CableBlock { } @Override - public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext ctx) { + public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext ctx) { return ConstantsCable.addCoverVoxelShapes(ShapeCache.getOrCreate(state, s -> { VoxelShape shape = getCableShape(s); - shape = VoxelShapes.or(shape, getHeadShape(s)); + shape = Shapes.or(shape, getHeadShape(s)); return shape; }), world, pos); @@ -86,23 +87,22 @@ public class ExternalStorageBlock extends CableBlock { return HEAD_DOWN; } - return VoxelShapes.empty(); + return Shapes.empty(); } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new ExternalStorageTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new ExternalStorageTile(pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { if (!world.isClientSide && CollisionUtils.isInBounds(getHeadShape(state), pos, hit.getLocation())) { return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.external_storage"), + new TranslatableComponent("gui.refinedstorage.external_storage"), (tile, windowId, inventory, p) -> new ExternalStorageContainer(tile, player, windowId), pos ), @@ -110,12 +110,12 @@ public class ExternalStorageBlock extends CableBlock { )); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override @SuppressWarnings("deprecation") - public void neighborChanged(BlockState state, World world, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { + public void neighborChanged(BlockState state, Level world, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { super.neighborChanged(state, world, pos, block, fromPos, isMoving); if (!world.isClientSide) { diff --git a/src/main/java/com/refinedmods/refinedstorage/block/FluidInterfaceBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/FluidInterfaceBlock.java index baf68823a..046cedb83 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/FluidInterfaceBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/FluidInterfaceBlock.java @@ -3,21 +3,22 @@ package com.refinedmods.refinedstorage.block; import com.refinedmods.refinedstorage.api.network.security.Permission; import com.refinedmods.refinedstorage.container.FluidInterfaceContainer; import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerProvider; +import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.tile.FluidInterfaceTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.network.NetworkHooks; import javax.annotation.Nullable; @@ -26,20 +27,19 @@ public class FluidInterfaceBlock extends NetworkNodeBlock { super(BlockUtils.DEFAULT_ROCK_PROPERTIES); } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new FluidInterfaceTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new FluidInterfaceTile(pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) { if (!world.isClientSide) { return NetworkUtils.attempt(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.fluid_interface"), + new TranslatableComponent("gui.refinedstorage.fluid_interface"), (tile, windowId, inventory, p) -> new FluidInterfaceContainer(tile, player, windowId), pos ), @@ -47,7 +47,7 @@ public class FluidInterfaceBlock extends NetworkNodeBlock { ), Permission.MODIFY, Permission.INSERT, Permission.EXTRACT); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/block/FluidStorageBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/FluidStorageBlock.java index 9be49bd93..42b9cca4e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/FluidStorageBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/FluidStorageBlock.java @@ -7,21 +7,18 @@ import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerP import com.refinedmods.refinedstorage.tile.FluidStorageTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; - -import javax.annotation.Nullable; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.network.NetworkHooks; public class FluidStorageBlock extends NetworkNodeBlock { private final FluidStorageType type; @@ -37,7 +34,7 @@ public class FluidStorageBlock extends NetworkNodeBlock { } @Override - public void setPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity player, ItemStack stack) { + public void setPlacedBy(Level world, BlockPos pos, BlockState state, LivingEntity player, ItemStack stack) { if (!world.isClientSide) { FluidStorageNetworkNode storage = ((FluidStorageTile) world.getBlockEntity(pos)).getNode(); @@ -45,30 +42,29 @@ public class FluidStorageBlock extends NetworkNodeBlock { storage.setStorageId(stack.getTag().getUUID(FluidStorageNetworkNode.NBT_ID)); } - storage.loadStorage(player instanceof PlayerEntity ? (PlayerEntity) player : null); + storage.loadStorage(player instanceof Player ? (Player) player : null); } // Call this after loading the storage, so the network discovery can use the loaded storage. super.setPlacedBy(world, pos, state, player, stack); } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new FluidStorageTile(type); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new FluidStorageTile(type, pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) { if (!world.isClientSide) { - return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui((ServerPlayerEntity) player, new PositionalTileContainerProvider( + return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui((ServerPlayer) player, new PositionalTileContainerProvider( ((FluidStorageTile) world.getBlockEntity(pos)).getNode().getTitle(), (tile, windowId, inventory, p) -> new FluidStorageContainer(tile, player, windowId), pos ), pos)); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/GridBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/GridBlock.java index d4b8e3d9b..dd9ce0a23 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/GridBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/GridBlock.java @@ -4,20 +4,21 @@ import com.refinedmods.refinedstorage.RSBlocks; import com.refinedmods.refinedstorage.api.network.grid.GridType; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.network.grid.factory.GridBlockGridFactory; +import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.tile.grid.GridTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.ColorMap; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; import javax.annotation.Nullable; @@ -40,15 +41,14 @@ public class GridBlock extends ColoredNetworkBlock { return true; } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new GridTile(type); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new GridTile(type, pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { ColorMap map; switch (type) { case FLUID: @@ -67,15 +67,15 @@ public class GridBlock extends ColoredNetworkBlock { throw new IllegalStateException("Unexpected value: " + type); } - ActionResultType result = map.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); - if (result != ActionResultType.PASS) { + InteractionResult result = map.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); + if (result != InteractionResult.PASS) { return result; } if (!world.isClientSide) { - return NetworkUtils.attemptModify(world, pos, player, () -> API.instance().getGridManager().openGrid(GridBlockGridFactory.ID, (ServerPlayerEntity) player, pos)); + return NetworkUtils.attemptModify(world, pos, player, () -> API.instance().getGridManager().openGrid(GridBlockGridFactory.ID, (ServerPlayer) player, pos)); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/ImporterBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/ImporterBlock.java index 2ce978652..baa660301 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/ImporterBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/ImporterBlock.java @@ -4,26 +4,27 @@ import com.refinedmods.refinedstorage.block.shape.ShapeCache; import com.refinedmods.refinedstorage.container.ImporterContainer; import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerProvider; import com.refinedmods.refinedstorage.render.ConstantsCable; +import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.tile.ImporterTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.CollisionUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.shapes.VoxelShapes; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.network.NetworkHooks; import javax.annotation.Nullable; @@ -31,32 +32,32 @@ public class ImporterBlock extends CableBlock { private static final VoxelShape LINE_NORTH_1 = box(6, 6, 4, 10, 10, 6); private static final VoxelShape LINE_NORTH_2 = box(5, 5, 2, 11, 11, 4); private static final VoxelShape LINE_NORTH_3 = box(3, 3, 0, 13, 13, 2); - private static final VoxelShape LINE_NORTH = VoxelShapes.or(LINE_NORTH_1, LINE_NORTH_2, LINE_NORTH_3); + private static final VoxelShape LINE_NORTH = Shapes.or(LINE_NORTH_1, LINE_NORTH_2, LINE_NORTH_3); private static final VoxelShape LINE_EAST_1 = box(10, 6, 6, 12, 10, 10); private static final VoxelShape LINE_EAST_2 = box(12, 5, 5, 14, 11, 11); private static final VoxelShape LINE_EAST_3 = box(14, 3, 3, 16, 13, 13); - private static final VoxelShape LINE_EAST = VoxelShapes.or(LINE_EAST_1, LINE_EAST_2, LINE_EAST_3); + private static final VoxelShape LINE_EAST = Shapes.or(LINE_EAST_1, LINE_EAST_2, LINE_EAST_3); private static final VoxelShape LINE_SOUTH_1 = box(6, 6, 10, 10, 10, 12); private static final VoxelShape LINE_SOUTH_2 = box(5, 5, 12, 11, 11, 14); private static final VoxelShape LINE_SOUTH_3 = box(3, 3, 14, 13, 13, 16); - private static final VoxelShape LINE_SOUTH = VoxelShapes.or(LINE_SOUTH_1, LINE_SOUTH_2, LINE_SOUTH_3); + private static final VoxelShape LINE_SOUTH = Shapes.or(LINE_SOUTH_1, LINE_SOUTH_2, LINE_SOUTH_3); private static final VoxelShape LINE_WEST_1 = box(4, 6, 6, 6, 10, 10); private static final VoxelShape LINE_WEST_2 = box(2, 5, 5, 4, 11, 11); private static final VoxelShape LINE_WEST_3 = box(0, 3, 3, 2, 13, 13); - private static final VoxelShape LINE_WEST = VoxelShapes.or(LINE_WEST_1, LINE_WEST_2, LINE_WEST_3); + private static final VoxelShape LINE_WEST = Shapes.or(LINE_WEST_1, LINE_WEST_2, LINE_WEST_3); private static final VoxelShape LINE_UP_1 = box(6, 10, 6, 10, 12, 10); private static final VoxelShape LINE_UP_2 = box(5, 12, 5, 11, 14, 11); private static final VoxelShape LINE_UP_3 = box(3, 14, 3, 13, 16, 13); - private static final VoxelShape LINE_UP = VoxelShapes.or(LINE_UP_1, LINE_UP_2, LINE_UP_3); + private static final VoxelShape LINE_UP = Shapes.or(LINE_UP_1, LINE_UP_2, LINE_UP_3); private static final VoxelShape LINE_DOWN_1 = box(6, 4, 6, 10, 6, 10); private static final VoxelShape LINE_DOWN_2 = box(5, 2, 5, 11, 4, 11); private static final VoxelShape LINE_DOWN_3 = box(3, 0, 3, 13, 2, 13); - private static final VoxelShape LINE_DOWN = VoxelShapes.or(LINE_DOWN_1, LINE_DOWN_2, LINE_DOWN_3); + private static final VoxelShape LINE_DOWN = Shapes.or(LINE_DOWN_1, LINE_DOWN_2, LINE_DOWN_3); public ImporterBlock() { super(BlockUtils.DEFAULT_GLASS_PROPERTIES); @@ -68,11 +69,11 @@ public class ImporterBlock extends CableBlock { } @Override - public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext ctx) { + public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext ctx) { return ConstantsCable.addCoverVoxelShapes(ShapeCache.getOrCreate(state, s -> { VoxelShape shape = getCableShape(s); - shape = VoxelShapes.or(shape, getLineShape(s)); + shape = Shapes.or(shape, getLineShape(s)); return shape; }), world, pos); @@ -105,23 +106,22 @@ public class ImporterBlock extends CableBlock { return LINE_DOWN; } - return VoxelShapes.empty(); + return Shapes.empty(); } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new ImporterTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new ImporterTile(pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { if (!world.isClientSide && CollisionUtils.isInBounds(getLineShape(state), pos, hit.getLocation())) { return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.importer"), + new TranslatableComponent("gui.refinedstorage.importer"), (tile, windowId, inventory, p) -> new ImporterContainer(tile, player, windowId), pos ), @@ -129,6 +129,6 @@ public class ImporterBlock extends CableBlock { )); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/InterfaceBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/InterfaceBlock.java index 056173c09..5c5081d82 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/InterfaceBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/InterfaceBlock.java @@ -3,21 +3,22 @@ package com.refinedmods.refinedstorage.block; import com.refinedmods.refinedstorage.api.network.security.Permission; import com.refinedmods.refinedstorage.container.InterfaceContainer; import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerProvider; +import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.tile.InterfaceTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.network.NetworkHooks; import javax.annotation.Nullable; @@ -26,20 +27,19 @@ public class InterfaceBlock extends NetworkNodeBlock { super(BlockUtils.DEFAULT_ROCK_PROPERTIES); } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new InterfaceTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new InterfaceTile(pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) { if (!world.isClientSide) { return NetworkUtils.attempt(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.interface"), + new TranslatableComponent("gui.refinedstorage.interface"), (tile, windowId, inventory, p) -> new InterfaceContainer(tile, player, windowId), pos ), @@ -47,7 +47,7 @@ public class InterfaceBlock extends NetworkNodeBlock { ), Permission.MODIFY, Permission.INSERT, Permission.EXTRACT); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/block/NetworkNodeBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/NetworkNodeBlock.java index 928b0881d..8e76fdfe8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/NetworkNodeBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/NetworkNodeBlock.java @@ -5,25 +5,26 @@ import com.refinedmods.refinedstorage.api.network.node.INetworkNodeProxy; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.network.node.NetworkNode; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.state.BooleanProperty; -import net.minecraft.state.StateContainer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.NonNullList; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.Containers; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraftforge.items.IItemHandler; -public abstract class NetworkNodeBlock extends BaseBlock { +public abstract class NetworkNodeBlock extends BaseBlock implements EntityBlock { public static final BooleanProperty CONNECTED = BooleanProperty.create("connected"); - protected NetworkNodeBlock(AbstractBlock.Properties props) { + protected NetworkNodeBlock(BlockBehaviour.Properties props) { super(props); if (hasConnectedState()) { @@ -33,11 +34,11 @@ public abstract class NetworkNodeBlock extends BaseBlock { @Override @SuppressWarnings("deprecation") - public void neighborChanged(BlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos, boolean isMoving) { + public void neighborChanged(BlockState state, Level world, BlockPos pos, Block blockIn, BlockPos fromPos, boolean isMoving) { super.neighborChanged(state, world, pos, blockIn, fromPos, isMoving); if (!world.isClientSide) { - INetworkNode node = API.instance().getNetworkNodeManager((ServerWorld) world).getNode(pos); + INetworkNode node = API.instance().getNetworkNodeManager((ServerLevel) world).getNode(pos); if (node instanceof NetworkNode) { ((NetworkNode) node).setRedstonePowered(world.hasNeighborSignal(pos)); } @@ -46,9 +47,9 @@ public abstract class NetworkNodeBlock extends BaseBlock { @Override @SuppressWarnings("deprecation") - public void onRemove(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { + public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean isMoving) { if (state.getBlock() != newState.getBlock()) { - TileEntity tile = world.getBlockEntity(pos); + BlockEntity tile = world.getBlockEntity(pos); if (tile instanceof NetworkNodeTile) { IItemHandler handler = ((NetworkNodeTile) tile).getNode().getDrops(); @@ -60,7 +61,7 @@ public abstract class NetworkNodeBlock extends BaseBlock { drops.add(handler.getStackInSlot(i)); } - InventoryHelper.dropContents(world, pos, drops); + Containers.dropContents(world, pos, drops); } } } @@ -70,10 +71,10 @@ public abstract class NetworkNodeBlock extends BaseBlock { } @Override - protected void onDirectionChanged(World world, BlockPos pos, Direction newDirection) { + protected void onDirectionChanged(Level world, BlockPos pos, Direction newDirection) { super.onDirectionChanged(world, pos, newDirection); - TileEntity tile = world.getBlockEntity(pos); + BlockEntity tile = world.getBlockEntity(pos); if (tile instanceof INetworkNodeProxy) { INetworkNode node = ((INetworkNodeProxy) tile).getNode(); @@ -84,7 +85,7 @@ public abstract class NetworkNodeBlock extends BaseBlock { } @Override - protected void createBlockStateDefinition(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateDefinition.Builder builder) { super.createBlockStateDefinition(builder); if (hasConnectedState()) { @@ -92,11 +93,6 @@ public abstract class NetworkNodeBlock extends BaseBlock { } } - @Override - public boolean hasTileEntity(BlockState state) { - return true; - } - public boolean hasConnectedState() { return false; } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/NetworkReceiverBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/NetworkReceiverBlock.java index 55d3ac8e0..c133e3eeb 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/NetworkReceiverBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/NetworkReceiverBlock.java @@ -1,17 +1,18 @@ package com.refinedmods.refinedstorage.block; import com.refinedmods.refinedstorage.RSBlocks; +import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.tile.NetworkReceiverTile; import com.refinedmods.refinedstorage.util.BlockUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; import javax.annotation.Nullable; @@ -20,10 +21,9 @@ public class NetworkReceiverBlock extends ColoredNetworkBlock { super(BlockUtils.DEFAULT_ROCK_PROPERTIES); } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new NetworkReceiverTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new NetworkReceiverTile(pos, state); } @Override @@ -32,7 +32,7 @@ public class NetworkReceiverBlock extends ColoredNetworkBlock { } @Override - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { return RSBlocks.NETWORK_RECEIVER.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/NetworkTransmitterBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/NetworkTransmitterBlock.java index 293f684b3..2a8b54592 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/NetworkTransmitterBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/NetworkTransmitterBlock.java @@ -6,45 +6,41 @@ import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerP import com.refinedmods.refinedstorage.tile.NetworkTransmitterTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; - -import javax.annotation.Nullable; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.network.NetworkHooks; public class NetworkTransmitterBlock extends ColoredNetworkBlock { public NetworkTransmitterBlock() { super(BlockUtils.DEFAULT_ROCK_PROPERTIES); } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new NetworkTransmitterTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new NetworkTransmitterTile(pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { - ActionResultType result = RSBlocks.NETWORK_TRANSMITTER.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); - if (result != ActionResultType.PASS) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + InteractionResult result = RSBlocks.NETWORK_TRANSMITTER.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); + if (result != InteractionResult.PASS) { return result; } if (!world.isClientSide) { return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.network_transmitter"), + new TranslatableComponent("gui.refinedstorage.network_transmitter"), (tile, windowId, inventory, p) -> new NetworkTransmitterContainer(tile, player, windowId), pos ), @@ -52,7 +48,7 @@ public class NetworkTransmitterBlock extends ColoredNetworkBlock { )); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/block/PortableGridBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/PortableGridBlock.java index 3ec111f04..1f7482d6c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/PortableGridBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/PortableGridBlock.java @@ -6,28 +6,31 @@ import com.refinedmods.refinedstorage.item.blockitem.PortableGridBlockItem; import com.refinedmods.refinedstorage.tile.grid.portable.PortableGridDiskState; import com.refinedmods.refinedstorage.tile.grid.portable.PortableGridTile; import com.refinedmods.refinedstorage.util.BlockUtils; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.state.BooleanProperty; -import net.minecraft.state.EnumProperty; -import net.minecraft.state.StateContainer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; import javax.annotation.Nullable; -public class PortableGridBlock extends BaseBlock { +public class PortableGridBlock extends BaseBlock implements EntityBlock { public static final EnumProperty DISK_STATE = EnumProperty.create("disk_state", PortableGridDiskState.class); public static final BooleanProperty ACTIVE = BooleanProperty.create("active"); @@ -43,7 +46,7 @@ public class PortableGridBlock extends BaseBlock { } @Override - protected void createBlockStateDefinition(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateDefinition.Builder builder) { super.createBlockStateDefinition(builder); builder.add(DISK_STATE); @@ -52,7 +55,7 @@ public class PortableGridBlock extends BaseBlock { @Override @SuppressWarnings("deprecation") - public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { + public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { return SHAPE; } @@ -62,30 +65,36 @@ public class PortableGridBlock extends BaseBlock { } @Override - public boolean hasTileEntity(BlockState state) { - return true; + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new PortableGridTile(type, pos, state); } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new PortableGridTile(type); + public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { + return level.isClientSide ? null : new BlockEntityTicker() { + @Override + public void tick(Level level, BlockPos pos, BlockState state, T tile) { + if (tile instanceof PortableGridTile) { + PortableGridTile.serverTick((PortableGridTile) tile); + } + } + }; } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { if (!world.isClientSide) { - API.instance().getGridManager().openGrid(PortableGridBlockGridFactory.ID, (ServerPlayerEntity) player, pos); + API.instance().getGridManager().openGrid(PortableGridBlockGridFactory.ID, (ServerPlayer) player, pos); ((PortableGridTile) world.getBlockEntity(pos)).onOpened(); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override - public void setPlacedBy(World world, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) { + public void setPlacedBy(Level world, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) { super.setPlacedBy(world, pos, state, placer, stack); if (!world.isClientSide) { diff --git a/src/main/java/com/refinedmods/refinedstorage/block/RelayBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/RelayBlock.java index c8f2795ce..a14fc659b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/RelayBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/RelayBlock.java @@ -3,21 +3,22 @@ package com.refinedmods.refinedstorage.block; import com.refinedmods.refinedstorage.RSBlocks; import com.refinedmods.refinedstorage.container.RelayContainer; import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerProvider; +import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.tile.RelayTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.network.NetworkHooks; import javax.annotation.Nullable; @@ -26,25 +27,24 @@ public class RelayBlock extends ColoredNetworkBlock { super(BlockUtils.DEFAULT_ROCK_PROPERTIES); } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new RelayTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new RelayTile(pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { - ActionResultType result = RSBlocks.RELAY.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); - if (result != ActionResultType.PASS) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + InteractionResult result = RSBlocks.RELAY.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); + if (result != InteractionResult.PASS) { return result; } if (!world.isClientSide) { return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.relay"), + new TranslatableComponent("gui.refinedstorage.relay"), (tile, windowId, inventory, p) -> new RelayContainer(tile, player, windowId), pos ), @@ -52,7 +52,7 @@ public class RelayBlock extends ColoredNetworkBlock { )); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/block/SecurityManagerBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/SecurityManagerBlock.java index 551428a1d..152f78944 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/SecurityManagerBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/SecurityManagerBlock.java @@ -7,20 +7,17 @@ import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerP import com.refinedmods.refinedstorage.tile.SecurityManagerTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; - -import javax.annotation.Nullable; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.network.NetworkHooks; public class SecurityManagerBlock extends ColoredNetworkBlock { public SecurityManagerBlock() { @@ -34,17 +31,17 @@ public class SecurityManagerBlock extends ColoredNetworkBlock { @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { - ActionResultType result = RSBlocks.SECURITY_MANAGER.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); - if (result != ActionResultType.PASS) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + InteractionResult result = RSBlocks.SECURITY_MANAGER.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); + if (result != InteractionResult.PASS) { return result; } if (!world.isClientSide) { Runnable action = () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.security_manager"), + new TranslatableComponent("gui.refinedstorage.security_manager"), (tile, windowId, inventory, p) -> new SecurityManagerContainer(tile, player, windowId), pos ), @@ -58,13 +55,12 @@ public class SecurityManagerBlock extends ColoredNetworkBlock { } } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new SecurityManagerTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new SecurityManagerTile(pos, state); } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/block/StorageBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/StorageBlock.java index e2d5112d0..f919bfb6c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/StorageBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/StorageBlock.java @@ -4,22 +4,23 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.storage.StorageNetwor import com.refinedmods.refinedstorage.apiimpl.storage.ItemStorageType; import com.refinedmods.refinedstorage.container.StorageContainer; import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerProvider; +import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.tile.StorageTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.network.NetworkHooks; import javax.annotation.Nullable; @@ -37,7 +38,7 @@ public class StorageBlock extends NetworkNodeBlock { } @Override - public void setPlacedBy(World world, BlockPos pos, BlockState state, @Nullable LivingEntity entity, ItemStack stack) { + public void setPlacedBy(Level world, BlockPos pos, BlockState state, @Nullable LivingEntity entity, ItemStack stack) { if (!world.isClientSide) { StorageNetworkNode storage = ((StorageTile) world.getBlockEntity(pos)).getNode(); @@ -45,30 +46,29 @@ public class StorageBlock extends NetworkNodeBlock { storage.setStorageId(stack.getTag().getUUID(StorageNetworkNode.NBT_ID)); } - storage.loadStorage(entity instanceof PlayerEntity ? (PlayerEntity) entity : null); + storage.loadStorage(entity instanceof Player ? (Player) entity : null); } // Call this after loading the storage, so the network discovery can use the loaded storage. super.setPlacedBy(world, pos, state, entity, stack); } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new StorageTile(type); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new StorageTile(type, pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) { if (!world.isClientSide) { - return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui((ServerPlayerEntity) player, new PositionalTileContainerProvider( + return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui((ServerPlayer) player, new PositionalTileContainerProvider( ((StorageTile) world.getBlockEntity(pos)).getNode().getTitle(), (tile, windowId, inventory, p) -> new StorageContainer(tile, player, windowId), pos ), pos)); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/StorageMonitorBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/StorageMonitorBlock.java index 7e7e1660a..604ac1347 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/StorageMonitorBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/StorageMonitorBlock.java @@ -3,24 +3,25 @@ package com.refinedmods.refinedstorage.block; import com.refinedmods.refinedstorage.apiimpl.network.node.StorageMonitorNetworkNode; import com.refinedmods.refinedstorage.container.StorageMonitorContainer; import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerProvider; +import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.tile.StorageMonitorTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraftforge.network.NetworkHooks; import javax.annotation.Nullable; @@ -34,23 +35,22 @@ public class StorageMonitorBlock extends NetworkNodeBlock { return BlockDirection.HORIZONTAL; } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new StorageMonitorTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new StorageMonitorTile(pos, state); } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) { if (!world.isClientSide) { - ItemStack held = player.inventory.getSelected(); + ItemStack held = player.containerMenu.getCarried(); if (player.isCrouching()) { return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.storage_monitor"), + new TranslatableComponent("gui.refinedstorage.storage_monitor"), (tile, windowId, inventory, p) -> new StorageMonitorContainer(tile, player, windowId), pos ), @@ -67,22 +67,22 @@ public class StorageMonitorBlock extends NetworkNodeBlock { } } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override @SuppressWarnings("deprecation") - public void attack(BlockState state, World world, BlockPos pos, PlayerEntity player) { + public void attack(BlockState state, Level world, BlockPos pos, Player player) { super.attack(state, world, pos, player); if (!world.isClientSide) { - RayTraceResult result = WorldUtils.rayTracePlayer(world, player); + HitResult result = WorldUtils.rayTracePlayer(world, player); - if (!(result instanceof BlockRayTraceResult)) { + if (!(result instanceof BlockHitResult)) { return; } - ((StorageMonitorTile) world.getBlockEntity(pos)).getNode().extract(player, ((BlockRayTraceResult) result).getDirection()); + ((StorageMonitorTile) world.getBlockEntity(pos)).getNode().extract(player, ((BlockHitResult) result).getDirection()); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/WirelessTransmitterBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/WirelessTransmitterBlock.java index e10db03b5..8e85e1fc1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/WirelessTransmitterBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/WirelessTransmitterBlock.java @@ -6,23 +6,21 @@ import com.refinedmods.refinedstorage.container.factory.PositionalTileContainerP import com.refinedmods.refinedstorage.tile.WirelessTransmitterTile; import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.shapes.VoxelShapes; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; - -import javax.annotation.Nullable; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.network.NetworkHooks; public class WirelessTransmitterBlock extends ColoredNetworkBlock { private static final VoxelShape SHAPE_DOWN = box(6.0D, 0.0D, 6.0D, 10.0D, 10.0D, 10.0D); @@ -46,15 +44,14 @@ public class WirelessTransmitterBlock extends ColoredNetworkBlock { return true; } - @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return new WirelessTransmitterTile(); + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new WirelessTransmitterTile(pos, state); } @Override @SuppressWarnings("deprecation") - public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext context) { + public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { switch (state.getValue(getDirection().getProperty())) { case DOWN: return SHAPE_DOWN; @@ -69,23 +66,23 @@ public class WirelessTransmitterBlock extends ColoredNetworkBlock { case EAST: return SHAPE_EAST; default: - return VoxelShapes.empty(); + return Shapes.empty(); } } @Override @SuppressWarnings("deprecation") - public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { - ActionResultType result = RSBlocks.WIRELESS_TRANSMITTER.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); - if (result != ActionResultType.PASS) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + InteractionResult result = RSBlocks.WIRELESS_TRANSMITTER.changeBlockColor(state, player.getItemInHand(hand), world, pos, player); + if (result != InteractionResult.PASS) { return result; } if (!world.isClientSide) { return NetworkUtils.attemptModify(world, pos, player, () -> NetworkHooks.openGui( - (ServerPlayerEntity) player, + (ServerPlayer) player, new PositionalTileContainerProvider( - new TranslationTextComponent("gui.refinedstorage.wireless_transmitter"), + new TranslatableComponent("gui.refinedstorage.wireless_transmitter"), (tile, windowId, inventory, p) -> new WirelessTransmitterContainer(tile, player, windowId), pos ), @@ -93,6 +90,6 @@ public class WirelessTransmitterBlock extends ColoredNetworkBlock { )); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/block/shape/ShapeCache.java b/src/main/java/com/refinedmods/refinedstorage/block/shape/ShapeCache.java index 07402ab69..595f005dd 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/shape/ShapeCache.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/shape/ShapeCache.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.block.shape; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.shapes.VoxelShape; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.VoxelShape; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/com/refinedmods/refinedstorage/capability/NetworkNodeProxyCapability.java b/src/main/java/com/refinedmods/refinedstorage/capability/NetworkNodeProxyCapability.java index 011ee812a..777bad32c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/capability/NetworkNodeProxyCapability.java +++ b/src/main/java/com/refinedmods/refinedstorage/capability/NetworkNodeProxyCapability.java @@ -1,54 +1,14 @@ package com.refinedmods.refinedstorage.capability; -import com.google.common.base.Preconditions; -import com.refinedmods.refinedstorage.api.network.node.INetworkNode; import com.refinedmods.refinedstorage.api.network.node.INetworkNodeProxy; -import net.minecraft.nbt.INBT; -import net.minecraft.util.Direction; import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.CapabilityInject; import net.minecraftforge.common.capabilities.CapabilityManager; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.concurrent.Callable; +import net.minecraftforge.common.capabilities.CapabilityToken; public class NetworkNodeProxyCapability { - @CapabilityInject(INetworkNodeProxy.class) - public static final Capability NETWORK_NODE_PROXY_CAPABILITY = null; + public static Capability NETWORK_NODE_PROXY_CAPABILITY = CapabilityManager.get(new CapabilityToken<>() { + }); private NetworkNodeProxyCapability() { } - - public static void register() { - CapabilityManager.INSTANCE.register(INetworkNodeProxy.class, new Storage(), new Factory()); - - Preconditions.checkNotNull(NETWORK_NODE_PROXY_CAPABILITY, "Capability not registered"); - } - - private static class Storage implements Capability.IStorage { - @Nullable - @Override - public INBT writeNBT(Capability capability, INetworkNodeProxy instance, Direction side) { - return null; - } - - @Override - public void readNBT(Capability capability, INetworkNodeProxy instance, Direction side, INBT nbt) { - // NO OP - } - } - - private static class Factory implements Callable { - @Override - public INetworkNodeProxy call() { - return new INetworkNodeProxy() { - @Nonnull - @Override - public INetworkNode getNode() { - throw new UnsupportedOperationException("Cannot use default implementation"); - } - }; - } - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/command/disk/CreateDiskCommand.java b/src/main/java/com/refinedmods/refinedstorage/command/disk/CreateDiskCommand.java index 7ebb57659..aa34b2dcc 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/disk/CreateDiskCommand.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/disk/CreateDiskCommand.java @@ -8,39 +8,39 @@ import com.refinedmods.refinedstorage.api.storage.disk.IStorageDisk; import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskFactory; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.command.CommandSource; -import net.minecraft.command.Commands; -import net.minecraft.command.arguments.EntityArgument; -import net.minecraft.command.arguments.UUIDArgument; -import net.minecraft.entity.item.ItemEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.SoundEvents; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.commands.arguments.EntityArgument; +import net.minecraft.commands.arguments.UuidArgument; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import java.util.UUID; -public class CreateDiskCommand implements Command { - public static ArgumentBuilder register() { +public class CreateDiskCommand implements Command { + public static ArgumentBuilder register() { return Commands.literal("create") .requires(cs -> cs.hasPermission(2)) .then(Commands.argument("player", EntityArgument.player()) - .then(Commands.argument("id", UUIDArgument.uuid()).suggests(new StorageDiskIdSuggestionProvider()) + .then(Commands.argument("id", UuidArgument.uuid()).suggests(new StorageDiskIdSuggestionProvider()) .executes(new CreateDiskCommand()) ) ); } @Override - public int run(CommandContext context) throws CommandSyntaxException { - PlayerEntity player = EntityArgument.getPlayer(context, "player"); - UUID id = UUIDArgument.getUuid(context, "id"); + public int run(CommandContext context) throws CommandSyntaxException { + Player player = EntityArgument.getPlayer(context, "player"); + UUID id = UuidArgument.getUuid(context, "id"); IStorageDisk disk = API.instance().getStorageDiskManager(context.getSource().getLevel()).get(id); if (disk == null) { - context.getSource().sendFailure(new TranslationTextComponent("commands.refinedstorage.disk.create.error.disk_not_found", id)); + context.getSource().sendFailure(new TranslatableComponent("commands.refinedstorage.disk.create.error.disk_not_found", id)); } else { IStorageDiskFactory factory = API.instance().getStorageDiskRegistry().get(disk.getFactoryId()); @@ -48,7 +48,7 @@ public class CreateDiskCommand implements Command { ItemStack stack = factory.createDiskItem(disk, id); // @Volatile: From GiveCommand - boolean flag = player.inventory.add(stack); + boolean flag = player.getInventory().add(stack); if (flag && stack.isEmpty()) { stack.setCount(1); @@ -57,8 +57,8 @@ public class CreateDiskCommand implements Command { itemEntity.makeFakeItem(); } - player.level.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.ITEM_PICKUP, SoundCategory.PLAYERS, 0.2F, ((player.getRandom().nextFloat() - player.getRandom().nextFloat()) * 0.7F + 1.0F) * 2.0F); - player.inventoryMenu.broadcastChanges(); + player.level.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.ITEM_PICKUP, SoundSource.PLAYERS, 0.2F, ((player.getRandom().nextFloat() - player.getRandom().nextFloat()) * 0.7F + 1.0F) * 2.0F); + // TODO player.getInventory().broadcastChanges(); } else { ItemEntity itemEntity = player.drop(stack, false); if (itemEntity != null) { @@ -67,9 +67,9 @@ public class CreateDiskCommand implements Command { } } - context.getSource().sendSuccess(new TranslationTextComponent( + context.getSource().sendSuccess(new TranslatableComponent( "commands.refinedstorage.disk.create.success", - new StringTextComponent(id.toString()).setStyle(Styles.YELLOW), + new TextComponent(id.toString()).setStyle(Styles.YELLOW), context.getSource().getDisplayName().copy().setStyle(Styles.YELLOW) ), false); } diff --git a/src/main/java/com/refinedmods/refinedstorage/command/disk/ListDiskCommand.java b/src/main/java/com/refinedmods/refinedstorage/command/disk/ListDiskCommand.java index 792911324..4eeebb150 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/disk/ListDiskCommand.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/disk/ListDiskCommand.java @@ -4,12 +4,12 @@ import com.mojang.brigadier.Command; import com.mojang.brigadier.builder.ArgumentBuilder; import com.mojang.brigadier.context.CommandContext; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.command.CommandSource; -import net.minecraft.command.Commands; -import net.minecraft.util.text.StringTextComponent; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.TextComponent; -public class ListDiskCommand implements Command { - public static ArgumentBuilder register() { +public class ListDiskCommand implements Command { + public static ArgumentBuilder register() { return Commands.literal("list") .requires(cs -> cs.hasPermission(2)) .executes(new ListDiskCommand()) @@ -17,11 +17,11 @@ public class ListDiskCommand implements Command { } @Override - public int run(CommandContext context) { + public int run(CommandContext context) { API.instance().getStorageDiskManager(context.getSource().getLevel()) .getAll() .keySet() - .forEach(id -> context.getSource().sendSuccess(new StringTextComponent(id.toString()), false)); + .forEach(id -> context.getSource().sendSuccess(new TextComponent(id.toString()), false)); return 0; } diff --git a/src/main/java/com/refinedmods/refinedstorage/command/disk/ListDiskForPlayerCommand.java b/src/main/java/com/refinedmods/refinedstorage/command/disk/ListDiskForPlayerCommand.java index 8e166fd46..27669cc3e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/disk/ListDiskForPlayerCommand.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/disk/ListDiskForPlayerCommand.java @@ -5,22 +5,22 @@ import com.mojang.brigadier.builder.ArgumentBuilder; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.command.CommandSource; -import net.minecraft.command.Commands; -import net.minecraft.command.arguments.EntityArgument; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.text.StringTextComponent; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.commands.arguments.EntityArgument; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.world.entity.player.Player; import java.util.Map; -public class ListDiskForPlayerCommand implements Command { - public static ArgumentBuilder register() { +public class ListDiskForPlayerCommand implements Command { + public static ArgumentBuilder register() { return Commands.argument("player", EntityArgument.player()).executes(new ListDiskForPlayerCommand()); } @Override - public int run(CommandContext context) throws CommandSyntaxException { - PlayerEntity player = EntityArgument.getPlayer(context, "player"); + public int run(CommandContext context) throws CommandSyntaxException { + Player player = EntityArgument.getPlayer(context, "player"); API.instance().getStorageDiskManager(context.getSource().getLevel()) .getAll() @@ -28,7 +28,7 @@ public class ListDiskForPlayerCommand implements Command { .stream() .filter(entry -> player.getGameProfile().getId().equals(entry.getValue().getOwner())) .map(Map.Entry::getKey) - .forEach(id -> context.getSource().sendSuccess(new StringTextComponent(id.toString()), false)); + .forEach(id -> context.getSource().sendSuccess(new TextComponent(id.toString()), false)); return 0; } diff --git a/src/main/java/com/refinedmods/refinedstorage/command/disk/StorageDiskIdSuggestionProvider.java b/src/main/java/com/refinedmods/refinedstorage/command/disk/StorageDiskIdSuggestionProvider.java index 6cbb9e166..341df9a60 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/disk/StorageDiskIdSuggestionProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/disk/StorageDiskIdSuggestionProvider.java @@ -5,13 +5,13 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.command.CommandSource; +import net.minecraft.commands.CommandSourceStack; import java.util.concurrent.CompletableFuture; -public class StorageDiskIdSuggestionProvider implements SuggestionProvider { +public class StorageDiskIdSuggestionProvider implements SuggestionProvider { @Override - public CompletableFuture getSuggestions(CommandContext context, SuggestionsBuilder builder) { + public CompletableFuture getSuggestions(CommandContext context, SuggestionsBuilder builder) { API.instance().getStorageDiskManager(context.getSource().getLevel()) .getAll() .keySet() diff --git a/src/main/java/com/refinedmods/refinedstorage/command/network/GetNetworkCommand.java b/src/main/java/com/refinedmods/refinedstorage/command/network/GetNetworkCommand.java index b8da12c42..f88f5acef 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/network/GetNetworkCommand.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/network/GetNetworkCommand.java @@ -6,13 +6,13 @@ import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.command.network.autocrafting.CancelAllAutocraftingCommand; import com.refinedmods.refinedstorage.command.network.autocrafting.GetAutocraftingCommand; import com.refinedmods.refinedstorage.command.network.autocrafting.ListAutocraftingCommand; -import net.minecraft.command.CommandSource; -import net.minecraft.command.Commands; -import net.minecraft.command.arguments.BlockPosArgument; -import net.minecraft.command.arguments.DimensionArgument; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.commands.arguments.DimensionArgument; +import net.minecraft.commands.arguments.coordinates.BlockPosArgument; public class GetNetworkCommand extends NetworkCommand { - public static ArgumentBuilder register() { + public static ArgumentBuilder register() { return Commands.literal("get") .requires(cs -> cs.hasPermission(2)) .then(Commands.argument("dimension", DimensionArgument.dimension()) @@ -26,7 +26,7 @@ public class GetNetworkCommand extends NetworkCommand { } @Override - protected int run(CommandContext context, INetwork network) { + protected int run(CommandContext context, INetwork network) { ListNetworkCommand.sendInfo(context, new ListNetworkCommand.NetworkInList(network), true); return 0; } diff --git a/src/main/java/com/refinedmods/refinedstorage/command/network/ListNetworkCommand.java b/src/main/java/com/refinedmods/refinedstorage/command/network/ListNetworkCommand.java index a10ea8d5c..48f791f6a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/network/ListNetworkCommand.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/network/ListNetworkCommand.java @@ -7,29 +7,60 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.command.CommandSource; -import net.minecraft.command.Commands; -import net.minecraft.command.arguments.DimensionArgument; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.commands.arguments.DimensionArgument; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerLevel; import java.text.DecimalFormat; import java.util.Comparator; -public class ListNetworkCommand implements Command { +public class ListNetworkCommand implements Command { private static final DecimalFormat TIME_FORMATTER = new DecimalFormat("########0.000"); - public static ArgumentBuilder register() { + public static ArgumentBuilder register() { return Commands.literal("list") .requires(cs -> cs.hasPermission(2)) .then(Commands.argument("dimension", DimensionArgument.dimension()) .executes(new ListNetworkCommand())); } + public static void sendInfo(CommandContext context, NetworkInList listItem, boolean detailed) { + context.getSource().sendSuccess( + new TranslatableComponent( + "commands.refinedstorage.network.list.pos", + listItem.network.getPosition().getX(), + listItem.network.getPosition().getY(), + listItem.network.getPosition().getZ() + ) + .append(" [") + .append(new TranslatableComponent( + "commands.refinedstorage.network.list.tick_times", + new TextComponent(TIME_FORMATTER.format(listItem.tickTime)).setStyle(Styles.YELLOW), + new TextComponent(TIME_FORMATTER.format(listItem.tps)).setStyle(Styles.YELLOW) + )) + .append("]"), false); + + if (detailed) { + context.getSource().sendSuccess(new TranslatableComponent("commands.refinedstorage.network.list.autocrafting_tasks", + new TextComponent(listItem.network.getCraftingManager().getTasks().size() + "").setStyle(Styles.YELLOW) + ), false); + + context.getSource().sendSuccess(new TranslatableComponent("commands.refinedstorage.network.list.nodes", + new TextComponent(listItem.network.getNodeGraph().all().size() + "").setStyle(Styles.YELLOW) + ), false); + + context.getSource().sendSuccess(new TranslatableComponent("commands.refinedstorage.network.list.energy_usage", + new TextComponent(listItem.network.getEnergyUsage() + "").setStyle(Styles.YELLOW) + ), false); + } + } + @Override - public int run(CommandContext context) throws CommandSyntaxException { - ServerWorld world = DimensionArgument.getDimension(context, "dimension"); + public int run(CommandContext context) throws CommandSyntaxException { + ServerLevel world = DimensionArgument.getDimension(context, "dimension"); API.instance().getNetworkManager(world) .all() @@ -61,35 +92,4 @@ public class ListNetworkCommand implements Command { return sum / values.length; } } - - public static void sendInfo(CommandContext context, NetworkInList listItem, boolean detailed) { - context.getSource().sendSuccess( - new TranslationTextComponent( - "commands.refinedstorage.network.list.pos", - listItem.network.getPosition().getX(), - listItem.network.getPosition().getY(), - listItem.network.getPosition().getZ() - ) - .append(" [") - .append(new TranslationTextComponent( - "commands.refinedstorage.network.list.tick_times", - new StringTextComponent(TIME_FORMATTER.format(listItem.tickTime)).setStyle(Styles.YELLOW), - new StringTextComponent(TIME_FORMATTER.format(listItem.tps)).setStyle(Styles.YELLOW) - )) - .append("]"), false); - - if (detailed) { - context.getSource().sendSuccess(new TranslationTextComponent("commands.refinedstorage.network.list.autocrafting_tasks", - new StringTextComponent(listItem.network.getCraftingManager().getTasks().size() + "").setStyle(Styles.YELLOW) - ), false); - - context.getSource().sendSuccess(new TranslationTextComponent("commands.refinedstorage.network.list.nodes", - new StringTextComponent(listItem.network.getNodeGraph().all().size() + "").setStyle(Styles.YELLOW) - ), false); - - context.getSource().sendSuccess(new TranslationTextComponent("commands.refinedstorage.network.list.energy_usage", - new StringTextComponent(listItem.network.getEnergyUsage() + "").setStyle(Styles.YELLOW) - ), false); - } - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/command/network/NetworkCommand.java b/src/main/java/com/refinedmods/refinedstorage/command/network/NetworkCommand.java index afcd58bc0..da500f6ca 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/network/NetworkCommand.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/network/NetworkCommand.java @@ -5,28 +5,28 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.command.CommandSource; -import net.minecraft.command.arguments.BlockPosArgument; -import net.minecraft.command.arguments.DimensionArgument; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.arguments.DimensionArgument; +import net.minecraft.commands.arguments.coordinates.BlockPosArgument; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerLevel; -public abstract class NetworkCommand implements Command { +public abstract class NetworkCommand implements Command { @Override - public int run(CommandContext context) throws CommandSyntaxException { - ServerWorld world = DimensionArgument.getDimension(context, "dimension"); - BlockPos pos = BlockPosArgument.getOrLoadBlockPos(context, "pos"); + public int run(CommandContext context) throws CommandSyntaxException { + ServerLevel world = DimensionArgument.getDimension(context, "dimension"); + BlockPos pos = BlockPosArgument.getLoadedBlockPos(context, "pos"); INetwork network = API.instance().getNetworkManager(world).getNetwork(pos); if (network == null) { - context.getSource().sendFailure(new TranslationTextComponent("commands.refinedstorage.network.get.error.not_found")); + context.getSource().sendFailure(new TranslatableComponent("commands.refinedstorage.network.get.error.not_found")); return 0; } else { return run(context, network); } } - protected abstract int run(CommandContext context, INetwork network) throws CommandSyntaxException; + protected abstract int run(CommandContext context, INetwork network) throws CommandSyntaxException; } diff --git a/src/main/java/com/refinedmods/refinedstorage/command/network/NetworkPositionSuggestionProvider.java b/src/main/java/com/refinedmods/refinedstorage/command/network/NetworkPositionSuggestionProvider.java index 46143fedb..d5a4f4103 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/network/NetworkPositionSuggestionProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/network/NetworkPositionSuggestionProvider.java @@ -6,16 +6,16 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.command.CommandSource; -import net.minecraft.command.arguments.DimensionArgument; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.arguments.DimensionArgument; +import net.minecraft.server.level.ServerLevel; import java.util.concurrent.CompletableFuture; -public class NetworkPositionSuggestionProvider implements SuggestionProvider { +public class NetworkPositionSuggestionProvider implements SuggestionProvider { @Override - public CompletableFuture getSuggestions(CommandContext context, SuggestionsBuilder builder) throws CommandSyntaxException { - ServerWorld world = DimensionArgument.getDimension(context, "dimension"); + public CompletableFuture getSuggestions(CommandContext context, SuggestionsBuilder builder) throws CommandSyntaxException { + ServerLevel world = DimensionArgument.getDimension(context, "dimension"); API.instance().getNetworkManager(world).all().forEach(network -> builder.suggest(network.getPosition().getX() + " " + network.getPosition().getY() + " " + network.getPosition().getZ())); diff --git a/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/AutocraftingIdSuggestionProvider.java b/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/AutocraftingIdSuggestionProvider.java index 689a8bd72..7702c19cf 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/AutocraftingIdSuggestionProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/AutocraftingIdSuggestionProvider.java @@ -7,19 +7,19 @@ import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.command.CommandSource; -import net.minecraft.command.arguments.BlockPosArgument; -import net.minecraft.command.arguments.DimensionArgument; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.arguments.DimensionArgument; +import net.minecraft.commands.arguments.coordinates.BlockPosArgument; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; import java.util.concurrent.CompletableFuture; -public class AutocraftingIdSuggestionProvider implements SuggestionProvider { +public class AutocraftingIdSuggestionProvider implements SuggestionProvider { @Override - public CompletableFuture getSuggestions(CommandContext context, SuggestionsBuilder builder) throws CommandSyntaxException { - ServerWorld world = DimensionArgument.getDimension(context, "dimension"); - BlockPos pos = BlockPosArgument.getOrLoadBlockPos(context, "pos"); + public CompletableFuture getSuggestions(CommandContext context, SuggestionsBuilder builder) throws CommandSyntaxException { + ServerLevel world = DimensionArgument.getDimension(context, "dimension"); + BlockPos pos = BlockPosArgument.getLoadedBlockPos(context, "pos"); INetwork network = API.instance().getNetworkManager(world).getNetwork(pos); if (network != null) { diff --git a/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/CancelAllAutocraftingCommand.java b/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/CancelAllAutocraftingCommand.java index 6966f437d..e0f571aeb 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/CancelAllAutocraftingCommand.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/CancelAllAutocraftingCommand.java @@ -5,20 +5,29 @@ import com.mojang.brigadier.context.CommandContext; import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.command.network.NetworkCommand; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.command.CommandSource; -import net.minecraft.command.Commands; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; public class CancelAllAutocraftingCommand extends NetworkCommand { - public static ArgumentBuilder register() { + public static ArgumentBuilder register() { return Commands.literal("cancel") .executes(new CancelAllAutocraftingCommand()) .then(CancelSingleAutocraftingCommand.register()); } + public static void sendCancelMessage(CommandContext context, int count) { + String translationKey = "commands.refinedstorage.network.autocrafting.cancel.multiple"; + if (count == 1) { + translationKey = "commands.refinedstorage.network.autocrafting.cancel.single"; + } + + context.getSource().sendSuccess(new TranslatableComponent(translationKey, new TextComponent("" + count).setStyle(Styles.YELLOW)), false); + } + @Override - protected int run(CommandContext context, INetwork network) { + protected int run(CommandContext context, INetwork network) { int count = network.getCraftingManager().getTasks().size(); network.getCraftingManager().getTasks().forEach(task -> network.getCraftingManager().cancel(task.getId())); @@ -27,13 +36,4 @@ public class CancelAllAutocraftingCommand extends NetworkCommand { return 0; } - - public static void sendCancelMessage(CommandContext context, int count) { - String translationKey = "commands.refinedstorage.network.autocrafting.cancel.multiple"; - if (count == 1) { - translationKey = "commands.refinedstorage.network.autocrafting.cancel.single"; - } - - context.getSource().sendSuccess(new TranslationTextComponent(translationKey, new StringTextComponent("" + count).setStyle(Styles.YELLOW)), false); - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/CancelSingleAutocraftingCommand.java b/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/CancelSingleAutocraftingCommand.java index 95a868ca7..9b622a9ce 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/CancelSingleAutocraftingCommand.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/CancelSingleAutocraftingCommand.java @@ -5,21 +5,21 @@ import com.mojang.brigadier.context.CommandContext; import com.refinedmods.refinedstorage.api.autocrafting.task.ICraftingTask; import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.command.network.NetworkCommand; -import net.minecraft.command.CommandSource; -import net.minecraft.command.Commands; -import net.minecraft.command.arguments.UUIDArgument; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.commands.arguments.UuidArgument; import java.util.UUID; public class CancelSingleAutocraftingCommand extends NetworkCommand { - public static ArgumentBuilder register() { - return Commands.argument("id", UUIDArgument.uuid()).suggests(new AutocraftingIdSuggestionProvider()) + public static ArgumentBuilder register() { + return Commands.argument("id", UuidArgument.uuid()).suggests(new AutocraftingIdSuggestionProvider()) .executes(new CancelSingleAutocraftingCommand()); } @Override - protected int run(CommandContext context, INetwork network) { - UUID id = UUIDArgument.getUuid(context, "id"); + protected int run(CommandContext context, INetwork network) { + UUID id = UuidArgument.getUuid(context, "id"); int count = 0; diff --git a/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/GetAutocraftingCommand.java b/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/GetAutocraftingCommand.java index 4be87b923..1a68d6d88 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/GetAutocraftingCommand.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/GetAutocraftingCommand.java @@ -5,28 +5,28 @@ import com.mojang.brigadier.context.CommandContext; import com.refinedmods.refinedstorage.api.autocrafting.task.ICraftingTask; import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.command.network.NetworkCommand; -import net.minecraft.command.CommandSource; -import net.minecraft.command.Commands; -import net.minecraft.command.arguments.UUIDArgument; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.commands.arguments.UuidArgument; +import net.minecraft.network.chat.TranslatableComponent; import java.util.UUID; public class GetAutocraftingCommand extends NetworkCommand { - public static ArgumentBuilder register() { + public static ArgumentBuilder register() { return Commands.literal("get").then( - Commands.argument("id", UUIDArgument.uuid()).suggests(new AutocraftingIdSuggestionProvider()) + Commands.argument("id", UuidArgument.uuid()).suggests(new AutocraftingIdSuggestionProvider()) .executes(new GetAutocraftingCommand()) ); } @Override - protected int run(CommandContext context, INetwork network) { - UUID id = UUIDArgument.getUuid(context, "id"); + protected int run(CommandContext context, INetwork network) { + UUID id = UuidArgument.getUuid(context, "id"); ICraftingTask task = network.getCraftingManager().getTask(id); if (task == null) { - context.getSource().sendFailure(new TranslationTextComponent("commands.refinedstorage.network.autocrafting.get.error.not_found")); + context.getSource().sendFailure(new TranslatableComponent("commands.refinedstorage.network.autocrafting.get.error.not_found")); } else { ListAutocraftingCommand.addInfo(context, task); } diff --git a/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/ListAutocraftingCommand.java b/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/ListAutocraftingCommand.java index ba04379c4..f6ace2ab1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/ListAutocraftingCommand.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/network/autocrafting/ListAutocraftingCommand.java @@ -7,30 +7,24 @@ import com.refinedmods.refinedstorage.api.autocrafting.task.ICraftingTask; import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.command.network.NetworkCommand; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.command.CommandSource; -import net.minecraft.command.Commands; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; public class ListAutocraftingCommand extends NetworkCommand { - public static ArgumentBuilder register() { + public static ArgumentBuilder register() { return Commands.literal("list").executes(new ListAutocraftingCommand()); } - @Override - protected int run(CommandContext context, INetwork network) { - network.getCraftingManager().getTasks().forEach(task -> addInfo(context, task)); - return 0; - } - - public static void addInfo(CommandContext context, ICraftingTask task) { + public static void addInfo(CommandContext context, ICraftingTask task) { context.getSource().sendSuccess( - new StringTextComponent(getAmount(task.getRequested()) + "x ") + new TextComponent(getAmount(task.getRequested()) + "x ") .append(getName(task.getRequested()).copy().setStyle(Styles.YELLOW)) .append(" ") .append("(" + task.getCompletionPercentage() + "%)") .append(" ") - .append(new StringTextComponent("[" + task.getId().toString() + "]").setStyle(Styles.GRAY)), + .append(new TextComponent("[" + task.getId().toString() + "]").setStyle(Styles.GRAY)), false ); } @@ -47,7 +41,7 @@ public class ListAutocraftingCommand extends NetworkCommand { return 0; } - private static ITextComponent getName(ICraftingRequestInfo info) { + private static Component getName(ICraftingRequestInfo info) { if (info.getItem() != null) { return info.getItem().getHoverName(); } @@ -56,6 +50,12 @@ public class ListAutocraftingCommand extends NetworkCommand { return info.getFluid().getDisplayName(); } - return StringTextComponent.EMPTY; + return TextComponent.EMPTY; + } + + @Override + protected int run(CommandContext context, INetwork network) { + network.getCraftingManager().getTasks().forEach(task -> addInfo(context, task)); + return 0; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/command/pattern/PatternDumpCommand.java b/src/main/java/com/refinedmods/refinedstorage/command/pattern/PatternDumpCommand.java index b2db2f457..310008d0d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/command/pattern/PatternDumpCommand.java +++ b/src/main/java/com/refinedmods/refinedstorage/command/pattern/PatternDumpCommand.java @@ -8,22 +8,22 @@ import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPattern; import com.refinedmods.refinedstorage.apiimpl.autocrafting.AllowedTagList; import com.refinedmods.refinedstorage.item.PatternItem; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.command.CommandSource; -import net.minecraft.command.Commands; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.StringTextComponent; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; -public class PatternDumpCommand implements Command { - public static ArgumentBuilder register() { +public class PatternDumpCommand implements Command { + public static ArgumentBuilder register() { return Commands.literal("dump") .executes(new PatternDumpCommand()); } @Override - public int run(CommandContext context) throws CommandSyntaxException { - ItemStack stack = context.getSource().getPlayerOrException().inventory.getSelected(); + public int run(CommandContext context) throws CommandSyntaxException { + ItemStack stack = context.getSource().getPlayerOrException().getInventory().getSelected(); if (stack.getItem() instanceof PatternItem) { boolean processing = PatternItem.isProcessing(stack); @@ -32,71 +32,71 @@ public class PatternDumpCommand implements Command { ICraftingPattern pattern = PatternItem.fromCache(context.getSource().getLevel(), stack); - context.getSource().sendSuccess(new StringTextComponent("Crafting task factory ID: ").setStyle(Styles.YELLOW).append(new StringTextComponent(pattern.getCraftingTaskFactoryId().toString()).setStyle(Styles.WHITE)), false); + context.getSource().sendSuccess(new TextComponent("Crafting task factory ID: ").setStyle(Styles.YELLOW).append(new TextComponent(pattern.getCraftingTaskFactoryId().toString()).setStyle(Styles.WHITE)), false); if (!pattern.isValid()) { - context.getSource().sendFailure(new StringTextComponent("Pattern is invalid! Reason: ").append(pattern.getErrorMessage())); + context.getSource().sendFailure(new TextComponent("Pattern is invalid! Reason: ").append(pattern.getErrorMessage())); } else { - context.getSource().sendSuccess(new StringTextComponent("Processing: ").setStyle(Styles.YELLOW).append(new StringTextComponent(String.valueOf(processing)).setStyle(Styles.WHITE)), false); - context.getSource().sendSuccess(new StringTextComponent("Exact: ").setStyle(Styles.YELLOW).append(new StringTextComponent(String.valueOf(exact)).setStyle(Styles.WHITE)), false); - context.getSource().sendSuccess(new StringTextComponent("Has allowed tag list: ").setStyle(Styles.YELLOW).append(new StringTextComponent(String.valueOf(allowedTagList != null)).setStyle(Styles.WHITE)), false); + context.getSource().sendSuccess(new TextComponent("Processing: ").setStyle(Styles.YELLOW).append(new TextComponent(String.valueOf(processing)).setStyle(Styles.WHITE)), false); + context.getSource().sendSuccess(new TextComponent("Exact: ").setStyle(Styles.YELLOW).append(new TextComponent(String.valueOf(exact)).setStyle(Styles.WHITE)), false); + context.getSource().sendSuccess(new TextComponent("Has allowed tag list: ").setStyle(Styles.YELLOW).append(new TextComponent(String.valueOf(allowedTagList != null)).setStyle(Styles.WHITE)), false); if (pattern.isProcessing()) { for (int i = 0; i < pattern.getInputs().size(); ++i) { if (!pattern.getInputs().get(i).isEmpty()) { - context.getSource().sendSuccess(new StringTextComponent("Item inputs in slot " + i + ":").setStyle(Styles.YELLOW), false); + context.getSource().sendSuccess(new TextComponent("Item inputs in slot " + i + ":").setStyle(Styles.YELLOW), false); for (int j = 0; j < pattern.getInputs().get(i).size(); ++j) { - context.getSource().sendSuccess(new StringTextComponent("- Possibility #" + j + ": " + pattern.getInputs().get(i).get(j).getCount() + "x ").append(pattern.getInputs().get(i).get(j).getHoverName()), false); + context.getSource().sendSuccess(new TextComponent("- Possibility #" + j + ": " + pattern.getInputs().get(i).get(j).getCount() + "x ").append(pattern.getInputs().get(i).get(j).getHoverName()), false); } } if (allowedTagList != null) { for (ResourceLocation allowed : allowedTagList.getAllowedItemTags().get(i)) { - context.getSource().sendSuccess(new StringTextComponent("- Allowed item tag: " + allowed.toString()), false); + context.getSource().sendSuccess(new TextComponent("- Allowed item tag: " + allowed.toString()), false); } } } for (int i = 0; i < pattern.getFluidInputs().size(); ++i) { if (!pattern.getFluidInputs().get(i).isEmpty()) { - context.getSource().sendSuccess(new StringTextComponent("Fluid inputs in slot " + i + ":").setStyle(Styles.YELLOW), false); + context.getSource().sendSuccess(new TextComponent("Fluid inputs in slot " + i + ":").setStyle(Styles.YELLOW), false); for (int j = 0; j < pattern.getFluidInputs().get(i).size(); ++j) { - context.getSource().sendSuccess(new StringTextComponent("- Possibility #" + j + ": " + pattern.getFluidInputs().get(i).get(j).getAmount() + " mB ").append(pattern.getFluidInputs().get(i).get(j).getDisplayName()), false); + context.getSource().sendSuccess(new TextComponent("- Possibility #" + j + ": " + pattern.getFluidInputs().get(i).get(j).getAmount() + " mB ").append(pattern.getFluidInputs().get(i).get(j).getDisplayName()), false); } } if (allowedTagList != null) { for (ResourceLocation allowed : allowedTagList.getAllowedFluidTags().get(i)) { - context.getSource().sendSuccess(new StringTextComponent("- Allowed fluid tag: " + allowed.toString()), false); + context.getSource().sendSuccess(new TextComponent("- Allowed fluid tag: " + allowed.toString()), false); } } } - context.getSource().sendSuccess(new StringTextComponent("Outputs").setStyle(Styles.YELLOW), false); + context.getSource().sendSuccess(new TextComponent("Outputs").setStyle(Styles.YELLOW), false); for (ItemStack output : pattern.getOutputs()) { - context.getSource().sendSuccess(new StringTextComponent("- " + output.getCount() + "x ").append(output.getHoverName()), false); + context.getSource().sendSuccess(new TextComponent("- " + output.getCount() + "x ").append(output.getHoverName()), false); } - context.getSource().sendSuccess(new StringTextComponent("Fluid outputs").setStyle(Styles.YELLOW), false); + context.getSource().sendSuccess(new TextComponent("Fluid outputs").setStyle(Styles.YELLOW), false); for (FluidStack output : pattern.getFluidOutputs()) { - context.getSource().sendSuccess(new StringTextComponent("- " + output.getAmount() + " mB ").append(output.getDisplayName()), false); + context.getSource().sendSuccess(new TextComponent("- " + output.getAmount() + " mB ").append(output.getDisplayName()), false); } } else { for (int i = 0; i < pattern.getInputs().size(); ++i) { if (!pattern.getInputs().get(i).isEmpty()) { - context.getSource().sendSuccess(new StringTextComponent("Inputs in slot " + i + ":").setStyle(Styles.YELLOW), false); + context.getSource().sendSuccess(new TextComponent("Inputs in slot " + i + ":").setStyle(Styles.YELLOW), false); for (int j = 0; j < pattern.getInputs().get(i).size(); ++j) { - context.getSource().sendSuccess(new StringTextComponent("- Possibility #" + j + ": " + pattern.getInputs().get(i).get(j).getCount() + "x ").append(pattern.getInputs().get(i).get(j).getHoverName()), false); + context.getSource().sendSuccess(new TextComponent("- Possibility #" + j + ": " + pattern.getInputs().get(i).get(j).getCount() + "x ").append(pattern.getInputs().get(i).get(j).getHoverName()), false); } } } - context.getSource().sendSuccess(new StringTextComponent("Outputs").setStyle(Styles.YELLOW), false); + context.getSource().sendSuccess(new TextComponent("Outputs").setStyle(Styles.YELLOW), false); for (ItemStack output : pattern.getOutputs()) { - context.getSource().sendSuccess(new StringTextComponent("- " + output.getCount() + "x ").append(output.getHoverName()), false); + context.getSource().sendSuccess(new TextComponent("- " + output.getCount() + "x ").append(output.getHoverName()), false); } boolean anyByproducts = false; @@ -104,18 +104,18 @@ public class PatternDumpCommand implements Command { for (ItemStack byproduct : pattern.getByproducts()) { if (!byproduct.isEmpty()) { if (!anyByproducts) { - context.getSource().sendSuccess(new StringTextComponent("Byproducts").setStyle(Styles.YELLOW), false); + context.getSource().sendSuccess(new TextComponent("Byproducts").setStyle(Styles.YELLOW), false); anyByproducts = true; } - context.getSource().sendSuccess(new StringTextComponent("- " + byproduct.getCount() + "x ").append(byproduct.getHoverName()), false); + context.getSource().sendSuccess(new TextComponent("- " + byproduct.getCount() + "x ").append(byproduct.getHoverName()), false); } } } } } else { - context.getSource().sendFailure(new StringTextComponent("You need to be holding a pattern in your hand.")); + context.getSource().sendFailure(new TextComponent("You need to be holding a pattern in your hand.")); } return 0; diff --git a/src/main/java/com/refinedmods/refinedstorage/container/AlternativesContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/AlternativesContainer.java index 0aca23310..59e5aa95d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/AlternativesContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/AlternativesContainer.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.container; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; public class AlternativesContainer extends BaseContainer { - public AlternativesContainer(PlayerEntity player) { + public AlternativesContainer(Player player) { super(null, null, player, 0); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/AmountContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/AmountContainer.java index e10f03aed..a46e6492d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/AmountContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/AmountContainer.java @@ -1,13 +1,13 @@ package com.refinedmods.refinedstorage.container; import com.refinedmods.refinedstorage.container.slot.DisabledSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemStackHandler; public class AmountContainer extends BaseContainer { - public AmountContainer(PlayerEntity player, ItemStack stack) { + public AmountContainer(Player player, ItemStack stack) { super(null, null, player, 0); ItemStackHandler inventory = new ItemStackHandler(1); diff --git a/src/main/java/com/refinedmods/refinedstorage/container/BaseContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/BaseContainer.java index f22c1d1ce..208a40e0a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/BaseContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/BaseContainer.java @@ -11,44 +11,42 @@ import com.refinedmods.refinedstorage.container.transfer.TransferManager; import com.refinedmods.refinedstorage.network.FluidFilterSlotUpdateMessage; import com.refinedmods.refinedstorage.tile.BaseTile; import com.refinedmods.refinedstorage.tile.data.TileDataWatcher; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.ClickType; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.ContainerType; -import net.minecraft.inventory.container.Slot; -import net.minecraft.item.ItemStack; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ClickType; +import net.minecraft.world.inventory.MenuType; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; -public abstract class BaseContainer extends Container { +public abstract class BaseContainer extends AbstractContainerMenu { + protected final TransferManager transferManager = new TransferManager(this); @Nullable private final BaseTile tile; - @Nullable - private TileDataWatcher listener; - private final PlayerEntity player; - - protected final TransferManager transferManager = new TransferManager(this); - + private final Player player; private final List fluidSlots = new ArrayList<>(); private final List fluids = new ArrayList<>(); + @Nullable + private TileDataWatcher listener; - protected BaseContainer(@Nullable ContainerType type, @Nullable BaseTile tile, PlayerEntity player, int windowId) { + protected BaseContainer(@Nullable MenuType type, @Nullable BaseTile tile, Player player, int windowId) { super(type, windowId); this.tile = tile; - if (tile != null && player instanceof ServerPlayerEntity) { - listener = new TileDataWatcher((ServerPlayerEntity) player, tile.getDataManager()); + if (tile != null && player instanceof ServerPlayer) { + listener = new TileDataWatcher((ServerPlayer) player, tile.getDataManager()); } this.player = player; } - public PlayerEntity getPlayer() { + public Player getPlayer() { return player; } @@ -65,9 +63,9 @@ public abstract class BaseContainer extends Container { for (int y = 0; y < 3; y++) { for (int x = 0; x < 9; x++) { if (id == disabledSlotNumber) { - addSlot(new LegacyDisabledSlot(player.inventory, id, xInventory + x * 18, yInventory + y * 18)); + addSlot(new LegacyDisabledSlot(player.getInventory(), id, xInventory + x * 18, yInventory + y * 18)); } else { - addSlot(new Slot(player.inventory, id, xInventory + x * 18, yInventory + y * 18)); + addSlot(new Slot(player.getInventory(), id, xInventory + x * 18, yInventory + y * 18)); } id++; @@ -81,9 +79,9 @@ public abstract class BaseContainer extends Container { int y = yInventory + 4 + (3 * 18); if (id == disabledSlotNumber) { - addSlot(new LegacyDisabledSlot(player.inventory, id, x, y)); + addSlot(new LegacyDisabledSlot(player.getInventory(), id, x, y)); } else { - addSlot(new Slot(player.inventory, id, x, y)); + addSlot(new Slot(player.getInventory(), id, x, y)); } id++; @@ -95,7 +93,7 @@ public abstract class BaseContainer extends Container { } @Override - public ItemStack clicked(int id, int dragType, ClickType clickType, PlayerEntity player) { + public void clicked(int id, int dragType, ClickType clickType, Player player) { Slot slot = id >= 0 ? getSlot(id) : null; int disabledSlotNumber = getDisabledSlotNumber(); @@ -104,59 +102,59 @@ public abstract class BaseContainer extends Container { if (disabledSlotNumber != -1 && clickType == ClickType.SWAP && dragType == disabledSlotNumber) { - return ItemStack.EMPTY; + return; } if (slot instanceof FilterSlot) { if (((FilterSlot) slot).isSizeAllowed()) { if (clickType == ClickType.QUICK_MOVE) { slot.set(ItemStack.EMPTY); - } else if (!player.inventory.getCarried().isEmpty()) { - slot.set(player.inventory.getCarried().copy()); + } else if (!player.containerMenu.getCarried().isEmpty()) { + slot.set(player.containerMenu.getCarried().copy()); } - } else if (player.inventory.getCarried().isEmpty()) { + } else if (player.containerMenu.getCarried().isEmpty()) { slot.set(ItemStack.EMPTY); - } else if (slot.mayPlace(player.inventory.getCarried())) { - slot.set(player.inventory.getCarried().copy()); + } else if (slot.mayPlace(player.containerMenu.getCarried())) { + slot.set(player.containerMenu.getCarried().copy()); } - return player.inventory.getCarried(); + return; } else if (slot instanceof FluidFilterSlot) { if (((FluidFilterSlot) slot).isSizeAllowed()) { if (clickType == ClickType.QUICK_MOVE) { ((FluidFilterSlot) slot).onContainerClicked(ItemStack.EMPTY); - } else if (!player.inventory.getCarried().isEmpty()) { - ((FluidFilterSlot) slot).onContainerClicked(player.inventory.getCarried()); + } else if (!player.containerMenu.getCarried().isEmpty()) { + ((FluidFilterSlot) slot).onContainerClicked(player.containerMenu.getCarried()); } - } else if (player.inventory.getCarried().isEmpty()) { + } else if (player.containerMenu.getCarried().isEmpty()) { ((FluidFilterSlot) slot).onContainerClicked(ItemStack.EMPTY); } else { - ((FluidFilterSlot) slot).onContainerClicked(player.inventory.getCarried()); + ((FluidFilterSlot) slot).onContainerClicked(player.containerMenu.getCarried()); } - return player.inventory.getCarried(); + return; } else if (slot instanceof LegacyFilterSlot) { - if (player.inventory.getCarried().isEmpty()) { + if (player.containerMenu.getCarried().isEmpty()) { slot.set(ItemStack.EMPTY); - } else if (slot.mayPlace(player.inventory.getCarried())) { - slot.set(player.inventory.getCarried().copy()); + } else if (slot.mayPlace(player.containerMenu.getCarried())) { + slot.set(player.containerMenu.getCarried().copy()); } - return player.inventory.getCarried(); + return; } else if (slot instanceof LegacyDisabledSlot) { - return ItemStack.EMPTY; + return; } - return super.clicked(id, dragType, clickType, player); + super.clicked(id, dragType, clickType, player); } @Override - public ItemStack quickMoveStack(PlayerEntity player, int slotIndex) { + public ItemStack quickMoveStack(Player player, int slotIndex) { return transferManager.transfer(slotIndex); } @Override - public boolean stillValid(PlayerEntity player) { + public boolean stillValid(Player player) { return isTileStillThere(); } @@ -201,7 +199,7 @@ public abstract class BaseContainer extends Container { listener.detectAndSendChanges(); } - if (this.getPlayer() instanceof ServerPlayerEntity) { + if (this.getPlayer() instanceof ServerPlayer) { for (int i = 0; i < this.fluidSlots.size(); ++i) { FluidFilterSlot slot = this.fluidSlots.get(i); @@ -211,14 +209,14 @@ public abstract class BaseContainer extends Container { if (!API.instance().getComparer().isEqual(cached, actual, IComparer.COMPARE_QUANTITY | IComparer.COMPARE_NBT)) { this.fluids.set(i, actual.copy()); - RS.NETWORK_HANDLER.sendTo((ServerPlayerEntity) getPlayer(), new FluidFilterSlotUpdateMessage(((Slot)slot).index, actual)); + RS.NETWORK_HANDLER.sendTo((ServerPlayer) getPlayer(), new FluidFilterSlotUpdateMessage(((Slot) slot).index, actual)); } } } } @Override - public void removed(PlayerEntity player) { + public void removed(Player player) { super.removed(player); if (listener != null) { diff --git a/src/main/java/com/refinedmods/refinedstorage/container/ConstructorContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/ConstructorContainer.java index 6e67b2e3e..a10dbbce1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/ConstructorContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/ConstructorContainer.java @@ -5,11 +5,11 @@ import com.refinedmods.refinedstorage.container.slot.filter.FilterSlot; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; import com.refinedmods.refinedstorage.tile.ConstructorTile; import com.refinedmods.refinedstorage.tile.config.IType; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.items.SlotItemHandler; public class ConstructorContainer extends BaseContainer { - public ConstructorContainer(ConstructorTile constructor, PlayerEntity player, int windowId) { + public ConstructorContainer(ConstructorTile constructor, Player player, int windowId) { super(RSContainers.CONSTRUCTOR, constructor, player, windowId); for (int i = 0; i < 4; ++i) { @@ -21,7 +21,7 @@ public class ConstructorContainer extends BaseContainer { addPlayerInventory(8, 55); - transferManager.addBiTransfer(player.inventory, constructor.getNode().getUpgrades()); - transferManager.addFilterTransfer(player.inventory, constructor.getNode().getItemFilters(), constructor.getNode().getFluidFilters(), constructor.getNode()::getType); + transferManager.addBiTransfer(player.getInventory(), constructor.getNode().getUpgrades()); + transferManager.addFilterTransfer(player.getInventory(), constructor.getNode().getItemFilters(), constructor.getNode().getFluidFilters(), constructor.getNode()::getType); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/ControllerContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/ControllerContainer.java index b505e49a5..dd92aaf64 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/ControllerContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/ControllerContainer.java @@ -2,10 +2,10 @@ package com.refinedmods.refinedstorage.container; import com.refinedmods.refinedstorage.RSContainers; import com.refinedmods.refinedstorage.tile.ControllerTile; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; public class ControllerContainer extends BaseContainer { - public ControllerContainer(ControllerTile controller, PlayerEntity player, int windowId) { + public ControllerContainer(ControllerTile controller, Player player, int windowId) { super(RSContainers.CONTROLLER, controller, player, windowId); addPlayerInventory(8, 99); diff --git a/src/main/java/com/refinedmods/refinedstorage/container/CrafterContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/CrafterContainer.java index a4add404f..600a2af53 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/CrafterContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/CrafterContainer.java @@ -2,11 +2,11 @@ package com.refinedmods.refinedstorage.container; import com.refinedmods.refinedstorage.RSContainers; import com.refinedmods.refinedstorage.tile.CrafterTile; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.items.SlotItemHandler; public class CrafterContainer extends BaseContainer { - public CrafterContainer(CrafterTile crafter, PlayerEntity player, int windowId) { + public CrafterContainer(CrafterTile crafter, Player player, int windowId) { super(RSContainers.CRAFTER, crafter, player, windowId); for (int i = 0; i < 9; ++i) { @@ -19,7 +19,7 @@ public class CrafterContainer extends BaseContainer { addPlayerInventory(8, 55); - transferManager.addBiTransfer(player.inventory, crafter.getNode().getUpgrades()); - transferManager.addBiTransfer(player.inventory, crafter.getNode().getPatternInventory()); + transferManager.addBiTransfer(player.getInventory(), crafter.getNode().getUpgrades()); + transferManager.addBiTransfer(player.getInventory(), crafter.getNode().getPatternInventory()); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/CrafterManagerContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/CrafterManagerContainer.java index 34d1ba676..40bf93208 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/CrafterManagerContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/CrafterManagerContainer.java @@ -12,10 +12,10 @@ import com.refinedmods.refinedstorage.screen.grid.filtering.GridFilterParser; import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; import com.refinedmods.refinedstorage.screen.grid.stack.ItemGridStack; import com.refinedmods.refinedstorage.tile.CrafterManagerTile; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.container.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nonnull; @@ -27,14 +27,14 @@ import java.util.Map; import java.util.function.Predicate; public class CrafterManagerContainer extends BaseContainer { - private IScreenInfoProvider screenInfoProvider; private final CrafterManagerNetworkNode crafterManager; - private Map containerData; private final Map dummyInventories = new HashMap<>(); private final Map headings = new HashMap<>(); + private IScreenInfoProvider screenInfoProvider; + private Map containerData; private int rows; - public CrafterManagerContainer(CrafterManagerTile crafterManager, PlayerEntity player, int windowId) { + public CrafterManagerContainer(CrafterManagerTile crafterManager, Player player, int windowId) { super(RSContainers.CRAFTER_MANAGER, crafterManager, player, windowId); this.crafterManager = crafterManager.getNode(); @@ -48,7 +48,7 @@ public class CrafterManagerContainer extends BaseContainer { addPlayerInventory(8, screenInfoProvider.getYPlayerInventory()); if (crafterManager.getNetwork() != null) { - for (Map.Entry> entry : crafterManager.getNetwork().getCraftingManager().getNamedContainers().entrySet()) { + for (Map.Entry> entry : crafterManager.getNetwork().getCraftingManager().getNamedContainers().entrySet()) { for (IItemHandlerModifiable handler : entry.getValue()) { for (int i = 0; i < handler.getSlots(); ++i) { addSlot(new CrafterManagerSlot(handler, i, 0, 0, true, screenInfoProvider, crafterManager)); @@ -170,7 +170,7 @@ public class CrafterManagerContainer extends BaseContainer { } @Override - public ItemStack quickMoveStack(PlayerEntity player, int index) { + public ItemStack quickMoveStack(Player player, int index) { ItemStack stack = ItemStack.EMPTY; Slot slot = getSlot(index); diff --git a/src/main/java/com/refinedmods/refinedstorage/container/CraftingMonitorContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/CraftingMonitorContainer.java index 8edab88d9..084bd275e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/CraftingMonitorContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/CraftingMonitorContainer.java @@ -6,11 +6,11 @@ import com.refinedmods.refinedstorage.api.autocrafting.craftingmonitor.ICrafting import com.refinedmods.refinedstorage.network.craftingmonitor.CraftingMonitorUpdateMessage; import com.refinedmods.refinedstorage.tile.craftingmonitor.CraftingMonitorTile; import com.refinedmods.refinedstorage.tile.craftingmonitor.ICraftingMonitor; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.ContainerType; -import net.minecraft.inventory.container.Slot; -import net.minecraft.item.ItemStack; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.MenuType; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nullable; @@ -18,7 +18,7 @@ public class CraftingMonitorContainer extends BaseContainer implements ICrafting private final ICraftingMonitor craftingMonitor; private boolean addedListener; - public CraftingMonitorContainer(ContainerType type, ICraftingMonitor craftingMonitor, @Nullable CraftingMonitorTile craftingMonitorTile, PlayerEntity player, int windowId) { + public CraftingMonitorContainer(MenuType type, ICraftingMonitor craftingMonitor, @Nullable CraftingMonitorTile craftingMonitorTile, Player player, int windowId) { super(type, craftingMonitorTile, player, windowId); this.craftingMonitor = craftingMonitor; @@ -42,7 +42,7 @@ public class CraftingMonitorContainer extends BaseContainer implements ICrafting } @Override - public void removed(PlayerEntity player) { + public void removed(Player player) { super.removed(player); if (!player.getCommandSenderWorld().isClientSide) { @@ -61,7 +61,7 @@ public class CraftingMonitorContainer extends BaseContainer implements ICrafting } @Override - public ItemStack quickMoveStack(PlayerEntity player, int index) { + public ItemStack quickMoveStack(Player player, int index) { ItemStack stack = ItemStack.EMPTY; Slot slot = getSlot(index); @@ -99,6 +99,6 @@ public class CraftingMonitorContainer extends BaseContainer implements ICrafting @Override public void onChanged() { - RS.NETWORK_HANDLER.sendTo((ServerPlayerEntity) getPlayer(), new CraftingMonitorUpdateMessage(craftingMonitor)); + RS.NETWORK_HANDLER.sendTo((ServerPlayer) getPlayer(), new CraftingMonitorUpdateMessage(craftingMonitor)); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/CraftingSettingsContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/CraftingSettingsContainer.java index 58da6ad95..7bd0759cc 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/CraftingSettingsContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/CraftingSettingsContainer.java @@ -6,12 +6,12 @@ import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; import com.refinedmods.refinedstorage.screen.grid.stack.FluidGridStack; import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; import com.refinedmods.refinedstorage.screen.grid.stack.ItemGridStack; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemStackHandler; public class CraftingSettingsContainer extends BaseContainer { - public CraftingSettingsContainer(PlayerEntity player, IGridStack stack) { + public CraftingSettingsContainer(Player player, IGridStack stack) { super(null, null, player, 0); if (stack instanceof FluidGridStack) { diff --git a/src/main/java/com/refinedmods/refinedstorage/container/DestructorContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/DestructorContainer.java index 731d3b0c1..20b9958b8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/DestructorContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/DestructorContainer.java @@ -5,11 +5,11 @@ import com.refinedmods.refinedstorage.container.slot.filter.FilterSlot; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; import com.refinedmods.refinedstorage.tile.DestructorTile; import com.refinedmods.refinedstorage.tile.config.IType; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.items.SlotItemHandler; public class DestructorContainer extends BaseContainer { - public DestructorContainer(DestructorTile destructor, PlayerEntity player, int windowId) { + public DestructorContainer(DestructorTile destructor, Player player, int windowId) { super(RSContainers.DESTRUCTOR, destructor, player, windowId); for (int i = 0; i < 4; ++i) { @@ -26,7 +26,7 @@ public class DestructorContainer extends BaseContainer { addPlayerInventory(8, 55); - transferManager.addBiTransfer(player.inventory, destructor.getNode().getUpgrades()); - transferManager.addFilterTransfer(player.inventory, destructor.getNode().getItemFilters(), destructor.getNode().getFluidFilters(), destructor.getNode()::getType); + transferManager.addBiTransfer(player.getInventory(), destructor.getNode().getUpgrades()); + transferManager.addFilterTransfer(player.getInventory(), destructor.getNode().getItemFilters(), destructor.getNode().getFluidFilters(), destructor.getNode()::getType); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/DetectorContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/DetectorContainer.java index 30328ef50..e389d41cf 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/DetectorContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/DetectorContainer.java @@ -5,10 +5,10 @@ import com.refinedmods.refinedstorage.container.slot.filter.FilterSlot; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; import com.refinedmods.refinedstorage.tile.DetectorTile; import com.refinedmods.refinedstorage.tile.config.IType; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; public class DetectorContainer extends BaseContainer { - public DetectorContainer(DetectorTile detector, PlayerEntity player, int windowId) { + public DetectorContainer(DetectorTile detector, Player player, int windowId) { super(RSContainers.DETECTOR, detector, player, windowId); addSlot(new FilterSlot(detector.getNode().getItemFilters(), 0, 107, 20).setEnableHandler(() -> detector.getNode().getType() == IType.ITEMS)); @@ -16,6 +16,6 @@ public class DetectorContainer extends BaseContainer { addPlayerInventory(8, 55); - transferManager.addFilterTransfer(player.inventory, detector.getNode().getItemFilters(), detector.getNode().getFluidFilters(), detector.getNode()::getType); + transferManager.addFilterTransfer(player.getInventory(), detector.getNode().getItemFilters(), detector.getNode().getFluidFilters(), detector.getNode()::getType); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/DiskDriveContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/DiskDriveContainer.java index 4ed4d86d0..1c7a9565d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/DiskDriveContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/DiskDriveContainer.java @@ -5,11 +5,11 @@ import com.refinedmods.refinedstorage.container.slot.filter.FilterSlot; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; import com.refinedmods.refinedstorage.tile.DiskDriveTile; import com.refinedmods.refinedstorage.tile.config.IType; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.items.SlotItemHandler; public class DiskDriveContainer extends BaseContainer { - public DiskDriveContainer(DiskDriveTile diskDrive, PlayerEntity player, int windowId) { + public DiskDriveContainer(DiskDriveTile diskDrive, Player player, int windowId) { super(RSContainers.DISK_DRIVE, diskDrive, player, windowId); int x = 80; @@ -29,7 +29,7 @@ public class DiskDriveContainer extends BaseContainer { addPlayerInventory(8, 141); - transferManager.addBiTransfer(player.inventory, diskDrive.getNode().getDisks()); - transferManager.addFilterTransfer(player.inventory, diskDrive.getNode().getItemFilters(), diskDrive.getNode().getFluidFilters(), diskDrive.getNode()::getType); + transferManager.addBiTransfer(player.getInventory(), diskDrive.getNode().getDisks()); + transferManager.addFilterTransfer(player.getInventory(), diskDrive.getNode().getItemFilters(), diskDrive.getNode().getFluidFilters(), diskDrive.getNode()::getType); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/DiskManipulatorContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/DiskManipulatorContainer.java index 12d5e0438..5493b8634 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/DiskManipulatorContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/DiskManipulatorContainer.java @@ -5,11 +5,11 @@ import com.refinedmods.refinedstorage.container.slot.filter.FilterSlot; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; import com.refinedmods.refinedstorage.tile.DiskManipulatorTile; import com.refinedmods.refinedstorage.tile.config.IType; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.items.SlotItemHandler; public class DiskManipulatorContainer extends BaseContainer { - public DiskManipulatorContainer(DiskManipulatorTile diskManipulator, PlayerEntity player, int windowId) { + public DiskManipulatorContainer(DiskManipulatorTile diskManipulator, Player player, int windowId) { super(RSContainers.DISK_MANIPULATOR, diskManipulator, player, windowId); for (int i = 0; i < 4; ++i) { @@ -34,9 +34,9 @@ public class DiskManipulatorContainer extends BaseContainer { addPlayerInventory(8, 129); - transferManager.addBiTransfer(player.inventory, diskManipulator.getNode().getUpgrades()); - transferManager.addBiTransfer(player.inventory, diskManipulator.getNode().getInputDisks()); - transferManager.addTransfer(diskManipulator.getNode().getOutputDisks(), player.inventory); - transferManager.addFilterTransfer(player.inventory, diskManipulator.getNode().getItemFilters(), diskManipulator.getNode().getFluidFilters(), diskManipulator.getNode()::getType); + transferManager.addBiTransfer(player.getInventory(), diskManipulator.getNode().getUpgrades()); + transferManager.addBiTransfer(player.getInventory(), diskManipulator.getNode().getInputDisks()); + transferManager.addTransfer(diskManipulator.getNode().getOutputDisks(), player.getInventory()); + transferManager.addFilterTransfer(player.getInventory(), diskManipulator.getNode().getItemFilters(), diskManipulator.getNode().getFluidFilters(), diskManipulator.getNode()::getType); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/ExporterContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/ExporterContainer.java index 511356b2f..622b85a7d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/ExporterContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/ExporterContainer.java @@ -6,14 +6,14 @@ import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; import com.refinedmods.refinedstorage.item.UpgradeItem; import com.refinedmods.refinedstorage.tile.ExporterTile; import com.refinedmods.refinedstorage.tile.config.IType; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.items.SlotItemHandler; public class ExporterContainer extends BaseContainer { private final ExporterTile exporter; private boolean hasRegulatorMode; - public ExporterContainer(ExporterTile exporter, PlayerEntity player, int windowId) { + public ExporterContainer(ExporterTile exporter, Player player, int windowId) { super(RSContainers.EXPORTER, exporter, player, windowId); this.exporter = exporter; @@ -70,7 +70,7 @@ public class ExporterContainer extends BaseContainer { addPlayerInventory(8, 55); - transferManager.addBiTransfer(getPlayer().inventory, exporter.getNode().getUpgrades()); - transferManager.addFilterTransfer(getPlayer().inventory, exporter.getNode().getItemFilters(), exporter.getNode().getFluidFilters(), exporter.getNode()::getType); + transferManager.addBiTransfer(getPlayer().getInventory(), exporter.getNode().getUpgrades()); + transferManager.addFilterTransfer(getPlayer().getInventory(), exporter.getNode().getItemFilters(), exporter.getNode().getFluidFilters(), exporter.getNode()::getType); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/ExternalStorageContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/ExternalStorageContainer.java index e05db9360..ec1156e50 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/ExternalStorageContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/ExternalStorageContainer.java @@ -5,10 +5,10 @@ import com.refinedmods.refinedstorage.container.slot.filter.FilterSlot; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; import com.refinedmods.refinedstorage.tile.ExternalStorageTile; import com.refinedmods.refinedstorage.tile.config.IType; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; public class ExternalStorageContainer extends BaseContainer { - public ExternalStorageContainer(ExternalStorageTile externalStorage, PlayerEntity player, int windowId) { + public ExternalStorageContainer(ExternalStorageTile externalStorage, Player player, int windowId) { super(RSContainers.EXTERNAL_STORAGE, externalStorage, player, windowId); for (int i = 0; i < 9; ++i) { @@ -21,6 +21,6 @@ public class ExternalStorageContainer extends BaseContainer { addPlayerInventory(8, 141); - transferManager.addFilterTransfer(player.inventory, externalStorage.getNode().getItemFilters(), externalStorage.getNode().getFluidFilters(), externalStorage.getNode()::getType); + transferManager.addFilterTransfer(player.getInventory(), externalStorage.getNode().getItemFilters(), externalStorage.getNode().getFluidFilters(), externalStorage.getNode()::getType); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/FilterContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/FilterContainer.java index 54dd7602e..759cc47e8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/FilterContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/FilterContainer.java @@ -10,13 +10,13 @@ import com.refinedmods.refinedstorage.inventory.item.ConfiguredIconInFilterItemH import com.refinedmods.refinedstorage.inventory.item.ConfiguredItemsInFilterItemHandler; import com.refinedmods.refinedstorage.item.FilterItem; import com.refinedmods.refinedstorage.tile.config.IType; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; public class FilterContainer extends BaseContainer { private final ItemStack filterItem; - public FilterContainer(PlayerEntity player, ItemStack filterItem, int windowId) { + public FilterContainer(Player player, ItemStack filterItem, int windowId) { super(RSContainers.FILTER, null, player, windowId); this.filterItem = filterItem; @@ -44,7 +44,7 @@ public class FilterContainer extends BaseContainer { addPlayerInventory(8, 149); - transferManager.addFilterTransfer(player.inventory, filter, fluidFilter, () -> FilterItem.getType(filterItem)); + transferManager.addFilterTransfer(player.getInventory(), filter, fluidFilter, () -> FilterItem.getType(filterItem)); } public ItemStack getFilterItem() { @@ -53,6 +53,6 @@ public class FilterContainer extends BaseContainer { @Override protected int getDisabledSlotNumber() { - return getPlayer().inventory.selected; + return getPlayer().getInventory().selected; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/FluidAmountContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/FluidAmountContainer.java index 61f1e6a51..4ffed58c6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/FluidAmountContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/FluidAmountContainer.java @@ -2,11 +2,11 @@ package com.refinedmods.refinedstorage.container; import com.refinedmods.refinedstorage.container.slot.filter.DisabledFluidFilterSlot; import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.fluids.FluidStack; public class FluidAmountContainer extends BaseContainer { - public FluidAmountContainer(PlayerEntity player, FluidStack stack) { + public FluidAmountContainer(Player player, FluidStack stack) { super(null, null, player, 0); FluidInventory inventory = new FluidInventory(1); diff --git a/src/main/java/com/refinedmods/refinedstorage/container/FluidInterfaceContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/FluidInterfaceContainer.java index 34cb8c2c2..1c1210623 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/FluidInterfaceContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/FluidInterfaceContainer.java @@ -4,11 +4,11 @@ import com.refinedmods.refinedstorage.RSContainers; import com.refinedmods.refinedstorage.container.slot.filter.FilterSlot; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; import com.refinedmods.refinedstorage.tile.FluidInterfaceTile; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.items.SlotItemHandler; public class FluidInterfaceContainer extends BaseContainer { - public FluidInterfaceContainer(FluidInterfaceTile fluidInterface, PlayerEntity player, int windowId) { + public FluidInterfaceContainer(FluidInterfaceTile fluidInterface, Player player, int windowId) { super(RSContainers.FLUID_INTERFACE, fluidInterface, player, windowId); for (int i = 0; i < 4; ++i) { @@ -20,7 +20,7 @@ public class FluidInterfaceContainer extends BaseContainer { addPlayerInventory(8, 122); - transferManager.addBiTransfer(player.inventory, fluidInterface.getNode().getIn()); - transferManager.addFluidFilterTransfer(player.inventory, fluidInterface.getNode().getOut()); + transferManager.addBiTransfer(player.getInventory(), fluidInterface.getNode().getIn()); + transferManager.addFluidFilterTransfer(player.getInventory(), fluidInterface.getNode().getOut()); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/FluidStorageContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/FluidStorageContainer.java index 72592e235..2fd4fc3d5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/FluidStorageContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/FluidStorageContainer.java @@ -3,10 +3,10 @@ package com.refinedmods.refinedstorage.container; import com.refinedmods.refinedstorage.RSContainers; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; import com.refinedmods.refinedstorage.tile.FluidStorageTile; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; public class FluidStorageContainer extends BaseContainer { - public FluidStorageContainer(FluidStorageTile fluidStorage, PlayerEntity player, int windowId) { + public FluidStorageContainer(FluidStorageTile fluidStorage, Player player, int windowId) { super(RSContainers.FLUID_STORAGE_BLOCK, fluidStorage, player, windowId); for (int i = 0; i < 9; ++i) { @@ -15,6 +15,6 @@ public class FluidStorageContainer extends BaseContainer { addPlayerInventory(8, 141); - transferManager.addFluidFilterTransfer(player.inventory, fluidStorage.getNode().getFilters()); + transferManager.addFluidFilterTransfer(player.getInventory(), fluidStorage.getNode().getFilters()); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/GridContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/GridContainer.java index 34adde057..05cc7c74f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/GridContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/GridContainer.java @@ -20,12 +20,13 @@ import com.refinedmods.refinedstorage.screen.IScreenInfoProvider; import com.refinedmods.refinedstorage.tile.BaseTile; import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.grid.portable.IPortableGrid; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.IContainerListener; -import net.minecraft.inventory.container.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.network.play.server.SSetSlotPacket; +import net.minecraft.network.protocol.game.ClientboundContainerSetContentPacket; +import net.minecraft.network.protocol.game.ClientboundContainerSetSlotPacket; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.ContainerListener; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.SlotItemHandler; import javax.annotation.Nullable; @@ -44,7 +45,7 @@ public class GridContainer extends BaseContainer implements ICraftingGridListene private List fluidPatternSlots = new ArrayList<>(); private int patternScrollOffset; - public GridContainer(IGrid grid, @Nullable BaseTile gridTile, PlayerEntity player, int windowId) { + public GridContainer(IGrid grid, @Nullable BaseTile gridTile, Player player, int windowId) { super(RSContainers.GRID, gridTile, player, windowId); this.grid = grid; @@ -97,13 +98,13 @@ public class GridContainer extends BaseContainer implements ICraftingGridListene IFluidGridHandler fluidHandler = grid.getFluidHandler(); if (fluidHandler != null) { - slot.set(fluidHandler.onInsert((ServerPlayerEntity) getPlayer(), stack)); + slot.set(fluidHandler.onInsert((ServerPlayer) getPlayer(), stack)); } } else { IItemGridHandler itemHandler = grid.getItemHandler(); if (itemHandler != null) { - slot.set(itemHandler.onInsert((ServerPlayerEntity) getPlayer(), stack, false)); + slot.set(itemHandler.onInsert((ServerPlayer) getPlayer(), stack, false)); } else if (slot instanceof CraftingGridSlot && moveItemStackTo(stack, 14, 14 + (9 * 4), false)) { slot.setChanged(); @@ -128,7 +129,7 @@ public class GridContainer extends BaseContainer implements ICraftingGridListene private void addPortableGridSlots() { addSlot(new SlotItemHandler(((IPortableGrid) grid).getDiskInventory(), 0, 204, 6)); - transferManager.addBiTransfer(getPlayer().inventory, ((IPortableGrid) grid).getDiskInventory()); + transferManager.addBiTransfer(getPlayer().getInventory(), ((IPortableGrid) grid).getDiskInventory()); } private void addFilterSlots() { @@ -142,7 +143,7 @@ public class GridContainer extends BaseContainer implements ICraftingGridListene addSlot(new SlotItemHandler(grid.getFilter(), i, 204, yStart + (18 * i))); } - transferManager.addBiTransfer(getPlayer().inventory, grid.getFilter()); + transferManager.addBiTransfer(getPlayer().getInventory(), grid.getFilter()); } private void addCraftingSlots() { @@ -174,7 +175,7 @@ public class GridContainer extends BaseContainer implements ICraftingGridListene addSlot(new SlotItemHandler(((GridNetworkNode) grid).getPatterns(), 0, 172, headerAndSlots + 4)); addSlot(new SlotItemHandler(((GridNetworkNode) grid).getPatterns(), 1, 172, headerAndSlots + 40)); - transferManager.addBiTransfer(getPlayer().inventory, ((GridNetworkNode) grid).getPatterns()); + transferManager.addBiTransfer(getPlayer().getInventory(), ((GridNetworkNode) grid).getPatterns()); // Processing patterns int ox = 8; @@ -277,10 +278,10 @@ public class GridContainer extends BaseContainer implements ICraftingGridListene Slot slot = slots.get(i); if (slot instanceof CraftingGridSlot || slot == craftingResultSlot || slot == patternResultSlot) { - for (IContainerListener listener : containerListeners) { - // @Volatile: We can't use IContainerListener#sendSlotContents since ServerPlayerEntity blocks CraftingResultSlot changes... - if (listener instanceof ServerPlayerEntity) { - ((ServerPlayerEntity) listener).connection.send(new SSetSlotPacket(containerId, i, slot.getItem())); + for (ContainerListener listener : containerListeners) { + // @Volatile: We can't use ContainerSynchronizer#sendInitialData since ServerPlayerEntity blocks CraftingResultSlot changes... + if (listener instanceof ServerPlayer) { + ((ServerPlayer) listener).connection.send(new ClientboundContainerSetSlotPacket(containerId, incrementStateId(), i, slot.getItem())); } } } @@ -301,7 +302,7 @@ public class GridContainer extends BaseContainer implements ICraftingGridListene storageCache = null; } } else if (storageCacheListener == null) { // The grid came online. - storageCacheListener = grid.createListener((ServerPlayerEntity) getPlayer()); + storageCacheListener = grid.createListener((ServerPlayer) getPlayer()); storageCache = grid.getStorageCache(); storageCache.addListener(storageCacheListener); @@ -312,7 +313,7 @@ public class GridContainer extends BaseContainer implements ICraftingGridListene } @Override - public void removed(PlayerEntity player) { + public void removed(Player player) { super.removed(player); if (!player.getCommandSenderWorld().isClientSide) { diff --git a/src/main/java/com/refinedmods/refinedstorage/container/ImporterContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/ImporterContainer.java index cc6c123b5..a148abd65 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/ImporterContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/ImporterContainer.java @@ -5,11 +5,11 @@ import com.refinedmods.refinedstorage.container.slot.filter.FilterSlot; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; import com.refinedmods.refinedstorage.tile.ImporterTile; import com.refinedmods.refinedstorage.tile.config.IType; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.items.SlotItemHandler; public class ImporterContainer extends BaseContainer { - public ImporterContainer(ImporterTile importer, PlayerEntity player, int windowId) { + public ImporterContainer(ImporterTile importer, Player player, int windowId) { super(RSContainers.IMPORTER, importer, player, windowId); for (int i = 0; i < 4; ++i) { @@ -26,7 +26,7 @@ public class ImporterContainer extends BaseContainer { addPlayerInventory(8, 55); - transferManager.addBiTransfer(player.inventory, importer.getNode().getUpgrades()); - transferManager.addFilterTransfer(player.inventory, importer.getNode().getItemFilters(), importer.getNode().getFluidFilters(), importer.getNode()::getType); + transferManager.addBiTransfer(player.getInventory(), importer.getNode().getUpgrades()); + transferManager.addFilterTransfer(player.getInventory(), importer.getNode().getItemFilters(), importer.getNode().getFluidFilters(), importer.getNode()::getType); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/InterfaceContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/InterfaceContainer.java index f205d3a93..ffbc6a080 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/InterfaceContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/InterfaceContainer.java @@ -4,11 +4,11 @@ import com.refinedmods.refinedstorage.RSContainers; import com.refinedmods.refinedstorage.container.slot.OutputSlot; import com.refinedmods.refinedstorage.container.slot.filter.FilterSlot; import com.refinedmods.refinedstorage.tile.InterfaceTile; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.items.SlotItemHandler; public class InterfaceContainer extends BaseContainer { - public InterfaceContainer(InterfaceTile tile, PlayerEntity player, int windowId) { + public InterfaceContainer(InterfaceTile tile, Player player, int windowId) { super(RSContainers.INTERFACE, tile, player, windowId); for (int i = 0; i < 9; ++i) { @@ -29,8 +29,8 @@ public class InterfaceContainer extends BaseContainer { addPlayerInventory(8, 134); - transferManager.addBiTransfer(player.inventory, tile.getNode().getUpgrades()); - transferManager.addBiTransfer(player.inventory, tile.getNode().getImportItems()); - transferManager.addTransfer(tile.getNode().getExportItems(), player.inventory); + transferManager.addBiTransfer(player.getInventory(), tile.getNode().getUpgrades()); + transferManager.addBiTransfer(player.getInventory(), tile.getNode().getImportItems()); + transferManager.addTransfer(tile.getNode().getExportItems(), player.getInventory()); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/NetworkTransmitterContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/NetworkTransmitterContainer.java index b0fe526f2..ed7ce513b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/NetworkTransmitterContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/NetworkTransmitterContainer.java @@ -2,17 +2,17 @@ package com.refinedmods.refinedstorage.container; import com.refinedmods.refinedstorage.RSContainers; import com.refinedmods.refinedstorage.tile.NetworkTransmitterTile; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.items.SlotItemHandler; public class NetworkTransmitterContainer extends BaseContainer { - public NetworkTransmitterContainer(NetworkTransmitterTile networkTransmitter, PlayerEntity player, int windowId) { + public NetworkTransmitterContainer(NetworkTransmitterTile networkTransmitter, Player player, int windowId) { super(RSContainers.NETWORK_TRANSMITTER, networkTransmitter, player, windowId); addSlot(new SlotItemHandler(networkTransmitter.getNode().getNetworkCard(), 0, 8, 20)); addPlayerInventory(8, 55); - transferManager.addBiTransfer(player.inventory, networkTransmitter.getNode().getNetworkCard()); + transferManager.addBiTransfer(player.getInventory(), networkTransmitter.getNode().getNetworkCard()); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/RelayContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/RelayContainer.java index a7439ffab..7f0ee5d1c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/RelayContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/RelayContainer.java @@ -2,10 +2,10 @@ package com.refinedmods.refinedstorage.container; import com.refinedmods.refinedstorage.RSContainers; import com.refinedmods.refinedstorage.tile.RelayTile; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; public class RelayContainer extends BaseContainer { - public RelayContainer(RelayTile relay, PlayerEntity player, int windowId) { + public RelayContainer(RelayTile relay, Player player, int windowId) { super(RSContainers.RELAY, relay, player, windowId); addPlayerInventory(8, 50); diff --git a/src/main/java/com/refinedmods/refinedstorage/container/SecurityManagerContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/SecurityManagerContainer.java index 4cce82740..ea3cebfdb 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/SecurityManagerContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/SecurityManagerContainer.java @@ -2,11 +2,11 @@ package com.refinedmods.refinedstorage.container; import com.refinedmods.refinedstorage.RSContainers; import com.refinedmods.refinedstorage.tile.SecurityManagerTile; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.items.SlotItemHandler; public class SecurityManagerContainer extends BaseContainer { - public SecurityManagerContainer(SecurityManagerTile securityManager, PlayerEntity player, int windowId) { + public SecurityManagerContainer(SecurityManagerTile securityManager, Player player, int windowId) { super(RSContainers.SECURITY_MANAGER, securityManager, player, windowId); int x = 8; @@ -27,7 +27,7 @@ public class SecurityManagerContainer extends BaseContainer { addPlayerInventory(8, 152); - transferManager.addBiTransfer(player.inventory, securityManager.getNode().getCardsItems()); - transferManager.addTransfer(securityManager.getNode().getEditCard(), player.inventory); + transferManager.addBiTransfer(player.getInventory(), securityManager.getNode().getCardsItems()); + transferManager.addTransfer(securityManager.getNode().getEditCard(), player.getInventory()); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/StorageContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/StorageContainer.java index 9d94d55b7..c3456ebea 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/StorageContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/StorageContainer.java @@ -3,10 +3,10 @@ package com.refinedmods.refinedstorage.container; import com.refinedmods.refinedstorage.RSContainers; import com.refinedmods.refinedstorage.container.slot.filter.FilterSlot; import com.refinedmods.refinedstorage.tile.StorageTile; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; public class StorageContainer extends BaseContainer { - public StorageContainer(StorageTile storage, PlayerEntity player, int windowId) { + public StorageContainer(StorageTile storage, Player player, int windowId) { super(RSContainers.STORAGE_BLOCK, storage, player, windowId); for (int i = 0; i < 9; ++i) { @@ -15,6 +15,6 @@ public class StorageContainer extends BaseContainer { addPlayerInventory(8, 141); - transferManager.addItemFilterTransfer(player.inventory, storage.getNode().getFilters()); + transferManager.addItemFilterTransfer(player.getInventory(), storage.getNode().getFilters()); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/StorageMonitorContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/StorageMonitorContainer.java index 7f7132cf7..84792eda9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/StorageMonitorContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/StorageMonitorContainer.java @@ -5,10 +5,10 @@ import com.refinedmods.refinedstorage.container.slot.filter.FilterSlot; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; import com.refinedmods.refinedstorage.tile.StorageMonitorTile; import com.refinedmods.refinedstorage.tile.config.IType; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; public class StorageMonitorContainer extends BaseContainer { - public StorageMonitorContainer(StorageMonitorTile storageMonitor, PlayerEntity player, int windowId) { + public StorageMonitorContainer(StorageMonitorTile storageMonitor, Player player, int windowId) { super(RSContainers.STORAGE_MONITOR, storageMonitor, player, windowId); addSlot(new FilterSlot(storageMonitor.getNode().getItemFilters(), 0, 80, 20).setEnableHandler(() -> storageMonitor.getNode().getType() == IType.ITEMS)); @@ -16,6 +16,6 @@ public class StorageMonitorContainer extends BaseContainer { addPlayerInventory(8, 55); - transferManager.addFilterTransfer(player.inventory, storageMonitor.getNode().getItemFilters(), storageMonitor.getNode().getFluidFilters(), storageMonitor.getNode()::getType); + transferManager.addFilterTransfer(player.getInventory(), storageMonitor.getNode().getItemFilters(), storageMonitor.getNode().getFluidFilters(), storageMonitor.getNode()::getType); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/WirelessTransmitterContainer.java b/src/main/java/com/refinedmods/refinedstorage/container/WirelessTransmitterContainer.java index 29d0466a9..305378f4b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/WirelessTransmitterContainer.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/WirelessTransmitterContainer.java @@ -2,11 +2,11 @@ package com.refinedmods.refinedstorage.container; import com.refinedmods.refinedstorage.RSContainers; import com.refinedmods.refinedstorage.tile.WirelessTransmitterTile; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.items.SlotItemHandler; public class WirelessTransmitterContainer extends BaseContainer { - public WirelessTransmitterContainer(WirelessTransmitterTile wirelessTransmitter, PlayerEntity player, int windowId) { + public WirelessTransmitterContainer(WirelessTransmitterTile wirelessTransmitter, Player player, int windowId) { super(RSContainers.WIRELESS_TRANSMITTER, wirelessTransmitter, player, windowId); for (int i = 0; i < 4; ++i) { @@ -15,6 +15,6 @@ public class WirelessTransmitterContainer extends BaseContainer { addPlayerInventory(8, 55); - transferManager.addBiTransfer(player.inventory, wirelessTransmitter.getNode().getUpgrades()); + transferManager.addBiTransfer(player.getInventory(), wirelessTransmitter.getNode().getUpgrades()); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/factory/CrafterManagerContainerFactory.java b/src/main/java/com/refinedmods/refinedstorage/container/factory/CrafterManagerContainerFactory.java index b1e5ecb5f..7894ba768 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/factory/CrafterManagerContainerFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/factory/CrafterManagerContainerFactory.java @@ -3,17 +3,17 @@ package com.refinedmods.refinedstorage.container.factory; import com.refinedmods.refinedstorage.container.CrafterManagerContainer; import com.refinedmods.refinedstorage.screen.EmptyScreenInfoProvider; import com.refinedmods.refinedstorage.tile.CrafterManagerTile; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.network.IContainerFactory; +import net.minecraft.core.BlockPos; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.player.Inventory; +import net.minecraftforge.network.IContainerFactory; import java.util.LinkedHashMap; import java.util.Map; public class CrafterManagerContainerFactory implements IContainerFactory { @Override - public CrafterManagerContainer create(int windowId, PlayerInventory inv, PacketBuffer buf) { + public CrafterManagerContainer create(int windowId, Inventory inv, FriendlyByteBuf buf) { Map data = new LinkedHashMap<>(); BlockPos pos = buf.readBlockPos(); diff --git a/src/main/java/com/refinedmods/refinedstorage/container/factory/CrafterManagerContainerProvider.java b/src/main/java/com/refinedmods/refinedstorage/container/factory/CrafterManagerContainerProvider.java index 9d70534dc..bea3e93d8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/factory/CrafterManagerContainerProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/factory/CrafterManagerContainerProvider.java @@ -3,52 +3,36 @@ package com.refinedmods.refinedstorage.container.factory; import com.refinedmods.refinedstorage.container.CrafterManagerContainer; import com.refinedmods.refinedstorage.screen.EmptyScreenInfoProvider; import com.refinedmods.refinedstorage.tile.CrafterManagerTile; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.INamedContainerProvider; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.Level; import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nullable; import java.util.List; import java.util.Map; -public class CrafterManagerContainerProvider implements INamedContainerProvider { +public class CrafterManagerContainerProvider implements MenuProvider { private final CrafterManagerTile tile; public CrafterManagerContainerProvider(CrafterManagerTile tile) { this.tile = tile; } - @Override - public ITextComponent getDisplayName() { - return new TranslationTextComponent("gui.refinedstorage.crafter_manager"); - } - - @Nullable - @Override - public Container createMenu(int windowId, PlayerInventory playerInventory, PlayerEntity playerEntity) { - CrafterManagerContainer container = new CrafterManagerContainer(tile, playerEntity, windowId); - - container.setScreenInfoProvider(new EmptyScreenInfoProvider()); - container.initSlotsServer(); - - return container; - } - - public static void writeToBuffer(PacketBuffer buf, World world, BlockPos pos) { + public static void writeToBuffer(FriendlyByteBuf buf, Level world, BlockPos pos) { buf.writeBlockPos(pos); - Map> containerData = ((CrafterManagerTile) world.getBlockEntity(pos)).getNode().getNetwork().getCraftingManager().getNamedContainers(); + Map> containerData = ((CrafterManagerTile) world.getBlockEntity(pos)).getNode().getNetwork().getCraftingManager().getNamedContainers(); buf.writeInt(containerData.size()); - for (Map.Entry> entry : containerData.entrySet()) { + for (Map.Entry> entry : containerData.entrySet()) { buf.writeComponent(entry.getKey()); int slots = 0; @@ -59,4 +43,20 @@ public class CrafterManagerContainerProvider implements INamedContainerProvider buf.writeInt(slots); } } + + @Override + public Component getDisplayName() { + return new TranslatableComponent("gui.refinedstorage.crafter_manager"); + } + + @Nullable + @Override + public AbstractContainerMenu createMenu(int windowId, Inventory playerInventory, Player playerEntity) { + CrafterManagerContainer container = new CrafterManagerContainer(tile, playerEntity, windowId); + + container.setScreenInfoProvider(new EmptyScreenInfoProvider()); + container.initSlotsServer(); + + return container; + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/factory/CraftingMonitorContainerFactory.java b/src/main/java/com/refinedmods/refinedstorage/container/factory/CraftingMonitorContainerFactory.java index f60ce1ea7..603921e2f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/factory/CraftingMonitorContainerFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/factory/CraftingMonitorContainerFactory.java @@ -3,14 +3,14 @@ package com.refinedmods.refinedstorage.container.factory; import com.refinedmods.refinedstorage.RSContainers; import com.refinedmods.refinedstorage.container.CraftingMonitorContainer; import com.refinedmods.refinedstorage.tile.craftingmonitor.CraftingMonitorTile; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.network.IContainerFactory; +import net.minecraft.core.BlockPos; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.player.Inventory; +import net.minecraftforge.network.IContainerFactory; public class CraftingMonitorContainerFactory implements IContainerFactory { @Override - public CraftingMonitorContainer create(int windowId, PlayerInventory inv, PacketBuffer data) { + public CraftingMonitorContainer create(int windowId, Inventory inv, FriendlyByteBuf data) { BlockPos pos = data.readBlockPos(); CraftingMonitorTile tile = (CraftingMonitorTile) inv.player.level.getBlockEntity(pos); diff --git a/src/main/java/com/refinedmods/refinedstorage/container/factory/CraftingMonitorContainerProvider.java b/src/main/java/com/refinedmods/refinedstorage/container/factory/CraftingMonitorContainerProvider.java index 60cd5da00..db6ac5bcd 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/factory/CraftingMonitorContainerProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/factory/CraftingMonitorContainerProvider.java @@ -3,35 +3,35 @@ package com.refinedmods.refinedstorage.container.factory; import com.refinedmods.refinedstorage.container.CraftingMonitorContainer; import com.refinedmods.refinedstorage.tile.craftingmonitor.CraftingMonitorTile; import com.refinedmods.refinedstorage.tile.craftingmonitor.ICraftingMonitor; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.ContainerType; -import net.minecraft.inventory.container.INamedContainerProvider; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.MenuType; import javax.annotation.Nullable; -public class CraftingMonitorContainerProvider implements INamedContainerProvider { +public class CraftingMonitorContainerProvider implements MenuProvider { private final ICraftingMonitor craftingMonitor; @Nullable private final CraftingMonitorTile tile; - private final ContainerType containerType; + private final MenuType containerType; - public CraftingMonitorContainerProvider(ContainerType containerType, ICraftingMonitor craftingMonitor, @Nullable CraftingMonitorTile tile) { + public CraftingMonitorContainerProvider(MenuType containerType, ICraftingMonitor craftingMonitor, @Nullable CraftingMonitorTile tile) { this.containerType = containerType; this.craftingMonitor = craftingMonitor; this.tile = tile; } @Override - public ITextComponent getDisplayName() { + public Component getDisplayName() { return craftingMonitor.getTitle(); } @Nullable @Override - public Container createMenu(int windowId, PlayerInventory playerInventory, PlayerEntity playerEntity) { + public AbstractContainerMenu createMenu(int windowId, Inventory playerInventory, Player playerEntity) { return new CraftingMonitorContainer(containerType, craftingMonitor, tile, playerEntity, windowId); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/factory/GridContainerFactory.java b/src/main/java/com/refinedmods/refinedstorage/container/factory/GridContainerFactory.java index 6a564ccc9..eb88a8b26 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/factory/GridContainerFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/factory/GridContainerFactory.java @@ -5,18 +5,18 @@ import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.tile.BaseTile; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.network.IContainerFactory; +import net.minecraft.core.BlockPos; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraftforge.network.IContainerFactory; import org.apache.commons.lang3.tuple.Pair; public class GridContainerFactory implements IContainerFactory { @Override - public GridContainer create(int windowId, PlayerInventory inv, PacketBuffer data) { + public GridContainer create(int windowId, Inventory inv, FriendlyByteBuf data) { ResourceLocation id = data.readResourceLocation(); BlockPos pos = null; @@ -32,7 +32,7 @@ public class GridContainerFactory implements IContainerFactory { PlayerSlot slot = new PlayerSlot(data); - Pair grid = API.instance().getGridManager().createGrid(id, inv.player, stack, pos, slot); + Pair grid = API.instance().getGridManager().createGrid(id, inv.player, stack, pos, slot); return new GridContainer(grid.getLeft(), grid.getRight() instanceof BaseTile ? (BaseTile) grid.getRight() : null, inv.player, windowId); } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/factory/GridContainerProvider.java b/src/main/java/com/refinedmods/refinedstorage/container/factory/GridContainerProvider.java index 90cb25c37..040e68d01 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/factory/GridContainerProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/factory/GridContainerProvider.java @@ -4,32 +4,32 @@ import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.screen.EmptyScreenInfoProvider; import com.refinedmods.refinedstorage.tile.BaseTile; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.INamedContainerProvider; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nullable; -public class GridContainerProvider implements INamedContainerProvider { +public class GridContainerProvider implements MenuProvider { private final IGrid grid; - private final TileEntity tile; + private final BlockEntity tile; - public GridContainerProvider(IGrid grid, TileEntity tile) { + public GridContainerProvider(IGrid grid, BlockEntity tile) { this.grid = grid; this.tile = tile; } @Override - public ITextComponent getDisplayName() { + public Component getDisplayName() { return grid.getTitle(); } @Nullable @Override - public Container createMenu(int windowId, PlayerInventory inv, PlayerEntity player) { + public AbstractContainerMenu createMenu(int windowId, Inventory inv, Player player) { GridContainer c = new GridContainer(grid, tile instanceof BaseTile ? (BaseTile) tile : null, player, windowId); c.setScreenInfoProvider(new EmptyScreenInfoProvider()); diff --git a/src/main/java/com/refinedmods/refinedstorage/container/factory/PositionalTileContainerFactory.java b/src/main/java/com/refinedmods/refinedstorage/container/factory/PositionalTileContainerFactory.java index ec30bc480..c1732b036 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/factory/PositionalTileContainerFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/factory/PositionalTileContainerFactory.java @@ -1,17 +1,13 @@ package com.refinedmods.refinedstorage.container.factory; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.network.PacketBuffer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.network.IContainerFactory; - -public class PositionalTileContainerFactory implements IContainerFactory { - public interface Factory { - C create(int windowId, PlayerInventory inv, T tile); - } +import net.minecraft.core.BlockPos; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraftforge.network.IContainerFactory; +public class PositionalTileContainerFactory implements IContainerFactory { private final Factory factory; public PositionalTileContainerFactory(Factory factory) { @@ -19,11 +15,15 @@ public class PositionalTileContainerFactory { + C create(int windowId, Inventory inv, T tile); + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/factory/PositionalTileContainerProvider.java b/src/main/java/com/refinedmods/refinedstorage/container/factory/PositionalTileContainerProvider.java index 69614f7f8..494c2af2b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/factory/PositionalTileContainerProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/factory/PositionalTileContainerProvider.java @@ -1,40 +1,39 @@ package com.refinedmods.refinedstorage.container.factory; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.INamedContainerProvider; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nullable; -public class PositionalTileContainerProvider implements INamedContainerProvider { - public interface Provider { - Container create(T tile, int windowId, PlayerInventory inventory, PlayerEntity player); - } - - private final ITextComponent name; +public class PositionalTileContainerProvider implements MenuProvider { + private final Component name; private final Provider provider; private final BlockPos pos; - - public PositionalTileContainerProvider(ITextComponent name, Provider provider, BlockPos pos) { + public PositionalTileContainerProvider(Component name, Provider provider, BlockPos pos) { this.name = name; this.provider = provider; this.pos = pos; } @Override - public ITextComponent getDisplayName() { + public Component getDisplayName() { return name; } @Nullable @Override - public Container createMenu(int windowId, PlayerInventory inventory, PlayerEntity player) { + public AbstractContainerMenu createMenu(int windowId, Inventory inventory, Player player) { T tile = (T) player.level.getBlockEntity(pos); return provider.create(tile, windowId, inventory, player); } + + public interface Provider { + AbstractContainerMenu create(T tile, int windowId, Inventory inventory, Player player); + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/factory/WirelessCraftingMonitorContainerFactory.java b/src/main/java/com/refinedmods/refinedstorage/container/factory/WirelessCraftingMonitorContainerFactory.java index 06136486e..dcbf303f6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/factory/WirelessCraftingMonitorContainerFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/factory/WirelessCraftingMonitorContainerFactory.java @@ -4,14 +4,14 @@ import com.refinedmods.refinedstorage.RSContainers; import com.refinedmods.refinedstorage.container.CraftingMonitorContainer; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.IContainerFactory; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.network.IContainerFactory; public class WirelessCraftingMonitorContainerFactory implements IContainerFactory { @Override - public CraftingMonitorContainer create(int windowId, PlayerInventory inv, PacketBuffer data) { + public CraftingMonitorContainer create(int windowId, Inventory inv, FriendlyByteBuf data) { PlayerSlot slot = new PlayerSlot(data); diff --git a/src/main/java/com/refinedmods/refinedstorage/container/slot/DisabledSlot.java b/src/main/java/com/refinedmods/refinedstorage/container/slot/DisabledSlot.java index eb43eb171..d990d1785 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/slot/DisabledSlot.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/slot/DisabledSlot.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.container.slot; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandler; import javax.annotation.Nonnull; diff --git a/src/main/java/com/refinedmods/refinedstorage/container/slot/OutputSlot.java b/src/main/java/com/refinedmods/refinedstorage/container/slot/OutputSlot.java index d4f33ba73..ede49af56 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/slot/OutputSlot.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/slot/OutputSlot.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.container.slot; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandler; import javax.annotation.Nonnull; diff --git a/src/main/java/com/refinedmods/refinedstorage/container/slot/filter/DisabledFluidFilterSlot.java b/src/main/java/com/refinedmods/refinedstorage/container/slot/filter/DisabledFluidFilterSlot.java index 7f812a280..9498cd2f6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/slot/filter/DisabledFluidFilterSlot.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/slot/filter/DisabledFluidFilterSlot.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.container.slot.filter; import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nonnull; diff --git a/src/main/java/com/refinedmods/refinedstorage/container/slot/filter/FilterSlot.java b/src/main/java/com/refinedmods/refinedstorage/container/slot/filter/FilterSlot.java index 193b03159..823798cbc 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/slot/filter/FilterSlot.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/slot/filter/FilterSlot.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.container.slot.filter; import com.refinedmods.refinedstorage.container.slot.BaseSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.BlockItem; -import net.minecraft.item.ItemStack; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandler; import javax.annotation.Nonnull; @@ -48,7 +48,7 @@ public class FilterSlot extends BaseSlot { } @Override - public boolean mayPickup(PlayerEntity playerIn) { + public boolean mayPickup(Player playerIn) { return false; } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/slot/filter/FluidFilterSlot.java b/src/main/java/com/refinedmods/refinedstorage/container/slot/filter/FluidFilterSlot.java index 5a9391d13..ec4669bc9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/slot/filter/FluidFilterSlot.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/slot/filter/FluidFilterSlot.java @@ -3,8 +3,8 @@ package com.refinedmods.refinedstorage.container.slot.filter; import com.refinedmods.refinedstorage.container.slot.BaseSlot; import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.ItemStackHandler; import javax.annotation.Nonnull; @@ -37,7 +37,7 @@ public class FluidFilterSlot extends BaseSlot { } @Override - public boolean mayPickup(PlayerEntity playerIn) { + public boolean mayPickup(Player playerIn) { return false; } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/slot/grid/CraftingGridSlot.java b/src/main/java/com/refinedmods/refinedstorage/container/slot/grid/CraftingGridSlot.java index 95084b163..20bc9893b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/slot/grid/CraftingGridSlot.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/slot/grid/CraftingGridSlot.java @@ -1,10 +1,10 @@ package com.refinedmods.refinedstorage.container.slot.grid; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.container.Slot; +import net.minecraft.world.Container; +import net.minecraft.world.inventory.Slot; public class CraftingGridSlot extends Slot { - public CraftingGridSlot(IInventory inventory, int inventoryIndex, int x, int y) { + public CraftingGridSlot(Container inventory, int inventoryIndex, int x, int y) { super(inventory, inventoryIndex, x, y); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/slot/grid/ResultCraftingGridSlot.java b/src/main/java/com/refinedmods/refinedstorage/container/slot/grid/ResultCraftingGridSlot.java index 68d4c772b..b7ed5b9f2 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/slot/grid/ResultCraftingGridSlot.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/slot/grid/ResultCraftingGridSlot.java @@ -1,18 +1,18 @@ package com.refinedmods.refinedstorage.container.slot.grid; import com.refinedmods.refinedstorage.api.network.grid.IGrid; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.container.CraftingResultSlot; -import net.minecraft.item.ItemStack; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.ResultSlot; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.common.ForgeHooks; -import net.minecraftforge.fml.hooks.BasicEventHooks; +import net.minecraftforge.event.ForgeEventFactory; import javax.annotation.Nonnull; -public class ResultCraftingGridSlot extends CraftingResultSlot { +public class ResultCraftingGridSlot extends ResultSlot { private final IGrid grid; - public ResultCraftingGridSlot(PlayerEntity player, IGrid grid, int inventoryIndex, int x, int y) { + public ResultCraftingGridSlot(Player player, IGrid grid, int inventoryIndex, int x, int y) { super(player, grid.getCraftingMatrix(), grid.getCraftingResult(), inventoryIndex, x, y); this.grid = grid; @@ -20,8 +20,7 @@ public class ResultCraftingGridSlot extends CraftingResultSlot { // @Volatile: Overriding logic from the super onTake method for Grid behaviors like refilling stacks from the network @Override - @Nonnull - public ItemStack onTake(PlayerEntity player, @Nonnull ItemStack stack) { + public void onTake(Player player, @Nonnull ItemStack stack) { checkTakeAchievements(stack); ForgeHooks.setCraftingPlayer(player); @@ -29,9 +28,7 @@ public class ResultCraftingGridSlot extends CraftingResultSlot { grid.onCrafted(player, null, null); } - BasicEventHooks.firePlayerCraftingEvent(player, stack.copy(), grid.getCraftingMatrix()); + ForgeEventFactory.firePlayerCraftingEvent(player, stack.copy(), grid.getCraftingMatrix()); ForgeHooks.setCraftingPlayer(null); - - return ItemStack.EMPTY; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/slot/legacy/LegacyBaseSlot.java b/src/main/java/com/refinedmods/refinedstorage/container/slot/legacy/LegacyBaseSlot.java index 983566561..64d8d64d8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/slot/legacy/LegacyBaseSlot.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/slot/legacy/LegacyBaseSlot.java @@ -1,14 +1,14 @@ package com.refinedmods.refinedstorage.container.slot.legacy; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.container.Slot; +import net.minecraft.world.Container; +import net.minecraft.world.inventory.Slot; import java.util.function.BooleanSupplier; public class LegacyBaseSlot extends Slot { private BooleanSupplier enableHandler = () -> true; - public LegacyBaseSlot(IInventory inventory, int inventoryIndex, int x, int y) { + public LegacyBaseSlot(Container inventory, int inventoryIndex, int x, int y) { super(inventory, inventoryIndex, x, y); } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/slot/legacy/LegacyDisabledSlot.java b/src/main/java/com/refinedmods/refinedstorage/container/slot/legacy/LegacyDisabledSlot.java index 63dc6c339..d88466d48 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/slot/legacy/LegacyDisabledSlot.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/slot/legacy/LegacyDisabledSlot.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.container.slot.legacy; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; +import net.minecraft.world.Container; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nonnull; public class LegacyDisabledSlot extends LegacyBaseSlot { - public LegacyDisabledSlot(IInventory inventory, int inventoryIndex, int x, int y) { + public LegacyDisabledSlot(Container inventory, int inventoryIndex, int x, int y) { super(inventory, inventoryIndex, x, y); } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/slot/legacy/LegacyFilterSlot.java b/src/main/java/com/refinedmods/refinedstorage/container/slot/legacy/LegacyFilterSlot.java index a8ceb0cde..fa3ddc178 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/slot/legacy/LegacyFilterSlot.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/slot/legacy/LegacyFilterSlot.java @@ -1,19 +1,19 @@ package com.refinedmods.refinedstorage.container.slot.legacy; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; +import net.minecraft.world.Container; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nonnull; public class LegacyFilterSlot extends LegacyBaseSlot { - public LegacyFilterSlot(IInventory inventory, int inventoryIndex, int x, int y) { + public LegacyFilterSlot(Container inventory, int inventoryIndex, int x, int y) { super(inventory, inventoryIndex, x, y); } @Override - public boolean mayPickup(PlayerEntity player) { + public boolean mayPickup(Player player) { return false; } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/transfer/FilterInventoryWrapper.java b/src/main/java/com/refinedmods/refinedstorage/container/transfer/FilterInventoryWrapper.java index 928bac563..5b7291dc3 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/transfer/FilterInventoryWrapper.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/transfer/FilterInventoryWrapper.java @@ -2,7 +2,7 @@ package com.refinedmods.refinedstorage.container.transfer; import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; import com.refinedmods.refinedstorage.tile.config.IType; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandlerModifiable; import java.util.function.Supplier; diff --git a/src/main/java/com/refinedmods/refinedstorage/container/transfer/FluidFilterInventoryWrapper.java b/src/main/java/com/refinedmods/refinedstorage/container/transfer/FluidFilterInventoryWrapper.java index ac56f197c..11c1b00b0 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/transfer/FluidFilterInventoryWrapper.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/transfer/FluidFilterInventoryWrapper.java @@ -4,7 +4,7 @@ import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; diff --git a/src/main/java/com/refinedmods/refinedstorage/container/transfer/IInventoryWrapper.java b/src/main/java/com/refinedmods/refinedstorage/container/transfer/IInventoryWrapper.java index 03d68604f..30ea5e428 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/transfer/IInventoryWrapper.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/transfer/IInventoryWrapper.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.container.transfer; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; interface IInventoryWrapper { InsertionResult insert(ItemStack stack); diff --git a/src/main/java/com/refinedmods/refinedstorage/container/transfer/InsertionResult.java b/src/main/java/com/refinedmods/refinedstorage/container/transfer/InsertionResult.java index d57952448..4be611f8c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/transfer/InsertionResult.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/transfer/InsertionResult.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.container.transfer; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; class InsertionResult { private final InsertionResultType type; diff --git a/src/main/java/com/refinedmods/refinedstorage/container/transfer/InventoryInventoryWrapper.java b/src/main/java/com/refinedmods/refinedstorage/container/transfer/InventoryInventoryWrapper.java index 3726500e8..00cab9d90 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/transfer/InventoryInventoryWrapper.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/transfer/InventoryInventoryWrapper.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.container.transfer; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; +import net.minecraft.world.Container; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.wrapper.InvWrapper; @@ -11,15 +11,15 @@ import net.minecraftforge.items.wrapper.RangedWrapper; import java.util.Objects; class InventoryInventoryWrapper implements IInventoryWrapper { - private final IInventory inventory; + private final Container inventory; private final IItemHandler wrapper; - InventoryInventoryWrapper(IInventory inventory) { + InventoryInventoryWrapper(Container inventory) { this.inventory = inventory; - if (inventory instanceof PlayerInventory) { + if (inventory instanceof Inventory) { // Don't use PlayerMainInvWrapper to avoid stack animations. - this.wrapper = new RangedWrapper(new InvWrapper(inventory), 0, ((PlayerInventory) inventory).items.size()); + this.wrapper = new RangedWrapper(new InvWrapper(inventory), 0, ((Inventory) inventory).items.size()); } else { this.wrapper = new InvWrapper(inventory); } diff --git a/src/main/java/com/refinedmods/refinedstorage/container/transfer/ItemFilterInventoryWrapper.java b/src/main/java/com/refinedmods/refinedstorage/container/transfer/ItemFilterInventoryWrapper.java index 9fb7170a1..43feb9b93 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/transfer/ItemFilterInventoryWrapper.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/transfer/ItemFilterInventoryWrapper.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.container.transfer; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.ItemHandlerHelper; diff --git a/src/main/java/com/refinedmods/refinedstorage/container/transfer/ItemHandlerInventoryWrapper.java b/src/main/java/com/refinedmods/refinedstorage/container/transfer/ItemHandlerInventoryWrapper.java index 7eadce054..930e5022e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/transfer/ItemHandlerInventoryWrapper.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/transfer/ItemHandlerInventoryWrapper.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.container.transfer; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; diff --git a/src/main/java/com/refinedmods/refinedstorage/container/transfer/TransferManager.java b/src/main/java/com/refinedmods/refinedstorage/container/transfer/TransferManager.java index c443fd021..dc8734a36 100644 --- a/src/main/java/com/refinedmods/refinedstorage/container/transfer/TransferManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/container/transfer/TransferManager.java @@ -2,10 +2,10 @@ package com.refinedmods.refinedstorage.container.transfer; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.Slot; -import net.minecraft.item.ItemStack; +import net.minecraft.world.Container; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.SlotItemHandler; @@ -20,12 +20,12 @@ import java.util.function.Supplier; public class TransferManager { private final Map> fromToMap = new HashMap<>(); - private final Container container; + private final AbstractContainerMenu container; @Nullable private Function notFoundHandler; - public TransferManager(Container container) { + public TransferManager(AbstractContainerMenu container) { this.container = container; } @@ -37,31 +37,31 @@ public class TransferManager { this.notFoundHandler = handler; } - public void addTransfer(IInventory from, IItemHandler to) { + public void addTransfer(Container from, IItemHandler to) { addTransfer(new InventoryInventoryWrapper(from), new ItemHandlerInventoryWrapper(to)); } - public void addTransfer(IInventory from, IInventory to) { + public void addTransfer(Container from, Container to) { addTransfer(new InventoryInventoryWrapper(from), new InventoryInventoryWrapper(to)); } - public void addFilterTransfer(IInventory from, IItemHandlerModifiable itemTo, FluidInventory fluidTo, Supplier typeGetter) { + public void addFilterTransfer(Container from, IItemHandlerModifiable itemTo, FluidInventory fluidTo, Supplier typeGetter) { addTransfer(new InventoryInventoryWrapper(from), new FilterInventoryWrapper(itemTo, fluidTo, typeGetter)); } - public void addItemFilterTransfer(IInventory from, IItemHandlerModifiable to) { + public void addItemFilterTransfer(Container from, IItemHandlerModifiable to) { addTransfer(new InventoryInventoryWrapper(from), new ItemFilterInventoryWrapper(to)); } - public void addFluidFilterTransfer(IInventory from, FluidInventory to) { + public void addFluidFilterTransfer(Container from, FluidInventory to) { addTransfer(new InventoryInventoryWrapper(from), new FluidFilterInventoryWrapper(to)); } - public void addTransfer(IItemHandler from, IInventory to) { + public void addTransfer(IItemHandler from, Container to) { addTransfer(new ItemHandlerInventoryWrapper(from), new InventoryInventoryWrapper(to)); } - public void addBiTransfer(IInventory from, IItemHandler to) { + public void addBiTransfer(Container from, IItemHandler to) { addTransfer(from, to); addTransfer(to, from); } diff --git a/src/main/java/com/refinedmods/refinedstorage/datageneration/BlockModelGenerator.java b/src/main/java/com/refinedmods/refinedstorage/datageneration/BlockModelGenerator.java index d907fed77..3e4a92a33 100644 --- a/src/main/java/com/refinedmods/refinedstorage/datageneration/BlockModelGenerator.java +++ b/src/main/java/com/refinedmods/refinedstorage/datageneration/BlockModelGenerator.java @@ -6,9 +6,9 @@ import com.refinedmods.refinedstorage.block.ControllerBlock; import com.refinedmods.refinedstorage.block.DetectorBlock; import com.refinedmods.refinedstorage.block.NetworkNodeBlock; import com.refinedmods.refinedstorage.util.ColorMap; -import net.minecraft.block.Block; import net.minecraft.data.DataGenerator; -import net.minecraft.util.ResourceLocation; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; import net.minecraftforge.client.model.generators.BlockStateProvider; import net.minecraftforge.client.model.generators.ModelFile; import net.minecraftforge.common.data.ExistingFileHelper; diff --git a/src/main/java/com/refinedmods/refinedstorage/datageneration/BlockModels.java b/src/main/java/com/refinedmods/refinedstorage/datageneration/BlockModels.java index 962ba6af9..a33929d81 100644 --- a/src/main/java/com/refinedmods/refinedstorage/datageneration/BlockModels.java +++ b/src/main/java/com/refinedmods/refinedstorage/datageneration/BlockModels.java @@ -2,10 +2,10 @@ package com.refinedmods.refinedstorage.datageneration; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.block.BlockDirection; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; +import net.minecraft.core.Direction; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.generators.BlockModelBuilder; import net.minecraftforge.client.model.generators.ConfiguredModel; import net.minecraftforge.client.model.generators.ModelFile; diff --git a/src/main/java/com/refinedmods/refinedstorage/datageneration/DataGenerators.java b/src/main/java/com/refinedmods/refinedstorage/datageneration/DataGenerators.java index f3d68cda1..13ed3bfbe 100644 --- a/src/main/java/com/refinedmods/refinedstorage/datageneration/DataGenerators.java +++ b/src/main/java/com/refinedmods/refinedstorage/datageneration/DataGenerators.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.datageneration; import com.refinedmods.refinedstorage.RS; -import net.minecraft.data.BlockTagsProvider; +import net.minecraft.data.tags.BlockTagsProvider; import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.event.lifecycle.GatherDataEvent; +import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; public class DataGenerators { @SubscribeEvent diff --git a/src/main/java/com/refinedmods/refinedstorage/datageneration/LootTableGenerator.java b/src/main/java/com/refinedmods/refinedstorage/datageneration/LootTableGenerator.java index e02cf8125..d0dd75bdf 100644 --- a/src/main/java/com/refinedmods/refinedstorage/datageneration/LootTableGenerator.java +++ b/src/main/java/com/refinedmods/refinedstorage/datageneration/LootTableGenerator.java @@ -5,15 +5,21 @@ import com.mojang.datafixers.util.Pair; import com.refinedmods.refinedstorage.RSBlocks; import com.refinedmods.refinedstorage.loottable.ControllerLootFunction; import com.refinedmods.refinedstorage.loottable.CrafterLootFunction; -import net.minecraft.block.Block; import net.minecraft.data.DataGenerator; -import net.minecraft.data.LootTableProvider; -import net.minecraft.data.loot.BlockLootTables; -import net.minecraft.loot.*; -import net.minecraft.loot.conditions.SurvivesExplosion; -import net.minecraft.loot.functions.ILootFunction; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.RegistryObject; +import net.minecraft.data.loot.BlockLoot; +import net.minecraft.data.loot.LootTableProvider; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.storage.loot.LootPool; +import net.minecraft.world.level.storage.loot.LootTable; +import net.minecraft.world.level.storage.loot.ValidationContext; +import net.minecraft.world.level.storage.loot.entries.LootItem; +import net.minecraft.world.level.storage.loot.functions.LootItemFunction; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSet; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; +import net.minecraft.world.level.storage.loot.predicates.ExplosionCondition; +import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; +import net.minecraftforge.registries.RegistryObject; import java.util.List; import java.util.Map; @@ -28,12 +34,12 @@ public class LootTableGenerator extends LootTableProvider { } @Override - protected List>>, LootParameterSet>> getTables() { - return ImmutableList.of(Pair.of(RSBlockLootTables::new, LootParameterSets.BLOCK)); + protected List>>, LootContextParamSet>> getTables() { + return ImmutableList.of(Pair.of(RSBlockLootTables::new, LootContextParamSets.BLOCK)); } @Override - protected void validate(Map map, ValidationTracker validationtracker) { + protected void validate(Map map, ValidationContext validationtracker) { //NO OP } @@ -42,7 +48,7 @@ public class LootTableGenerator extends LootTableProvider { return "Refined Storage Loot Tables"; } - private static class RSBlockLootTables extends BlockLootTables { + private static class RSBlockLootTables extends BlockLoot { @Override protected void addTables() { RSBlocks.CONTROLLER.values().forEach(block -> genBlockItemLootTableWithFunction(block.get(), ControllerLootFunction.builder())); @@ -68,13 +74,13 @@ public class LootTableGenerator extends LootTableProvider { return RSBlocks.COLORED_BLOCKS.stream().map(RegistryObject::get).collect(Collectors.toList()); } - private void genBlockItemLootTableWithFunction(Block block, ILootFunction.IBuilder builder) { + private void genBlockItemLootTableWithFunction(Block block, LootItemFunction.Builder builder) { add(block, LootTable.lootTable().withPool( LootPool.lootPool() - .setRolls(ConstantRange.exactly(1)) - .add(ItemLootEntry.lootTableItem(block) + .setRolls(ConstantValue.exactly(1)) + .add(LootItem.lootTableItem(block) .apply(builder)) - .when(SurvivesExplosion.survivesExplosion()))); + .when(ExplosionCondition.survivesExplosion()))); } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/datageneration/RecipeGenerator.java b/src/main/java/com/refinedmods/refinedstorage/datageneration/RecipeGenerator.java index 2d3192687..081d64835 100644 --- a/src/main/java/com/refinedmods/refinedstorage/datageneration/RecipeGenerator.java +++ b/src/main/java/com/refinedmods/refinedstorage/datageneration/RecipeGenerator.java @@ -4,14 +4,14 @@ import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.RSItems; import com.refinedmods.refinedstorage.item.ProcessorItem; import com.refinedmods.refinedstorage.util.ColorMap; -import net.minecraft.advancements.criterion.InventoryChangeTrigger; +import net.minecraft.advancements.critereon.InventoryChangeTrigger; import net.minecraft.data.DataGenerator; -import net.minecraft.data.IFinishedRecipe; -import net.minecraft.data.RecipeProvider; -import net.minecraft.data.ShapelessRecipeBuilder; -import net.minecraft.item.Items; +import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.data.recipes.RecipeProvider; +import net.minecraft.data.recipes.ShapelessRecipeBuilder; +import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; -import net.minecraft.util.ResourceLocation; +import net.minecraft.world.item.Items; import java.util.function.Consumer; @@ -23,13 +23,13 @@ public class RecipeGenerator extends RecipeProvider { } @Override - protected void buildShapelessRecipes(Consumer recipeAcceptor) { + protected void buildCraftingRecipes(Consumer recipeAcceptor) { // Tag + Color -> Colored Block RSItems.COLORED_ITEM_TAGS.forEach((tag, map) -> map.forEach((color, item) -> ShapelessRecipeBuilder.shapeless(item.get()) .requires(tag) .requires(color.getTag()) .group(RS.ID) - .unlockedBy("refinedstorage:controller", InventoryChangeTrigger.Instance.hasItems(RSItems.CONTROLLER.get(ColorMap.DEFAULT_COLOR).get())) + .unlockedBy("refinedstorage:controller", InventoryChangeTrigger.TriggerInstance.hasItems(RSItems.CONTROLLER.get(ColorMap.DEFAULT_COLOR).get())) .save(recipeAcceptor, new ResourceLocation(RS.ID, "coloring_recipes/" + item.getId().getPath())) )); @@ -38,7 +38,7 @@ public class RecipeGenerator extends RecipeProvider { .requires(RSItems.GRID.get(color).get()) .requires(RSItems.PROCESSORS.get(ProcessorItem.Type.ADVANCED).get()) .requires(ItemTags.bind("refinedstorage:crafting_tables")) - .unlockedBy(GRID_ID, InventoryChangeTrigger.Instance.hasItems(RSItems.GRID.get(ColorMap.DEFAULT_COLOR).get())) + .unlockedBy(GRID_ID, InventoryChangeTrigger.TriggerInstance.hasItems(RSItems.GRID.get(ColorMap.DEFAULT_COLOR).get())) .save(recipeAcceptor, new ResourceLocation(RS.ID, "crafting_grid/" + item.getId().getPath())) ); @@ -47,7 +47,7 @@ public class RecipeGenerator extends RecipeProvider { .requires(RSItems.GRID.get(color).get()) .requires(RSItems.PROCESSORS.get(ProcessorItem.Type.ADVANCED).get()) .requires(Items.BUCKET) - .unlockedBy(GRID_ID, InventoryChangeTrigger.Instance.hasItems(RSItems.GRID.get(ColorMap.DEFAULT_COLOR).get())) + .unlockedBy(GRID_ID, InventoryChangeTrigger.TriggerInstance.hasItems(RSItems.GRID.get(ColorMap.DEFAULT_COLOR).get())) .save(recipeAcceptor, new ResourceLocation(RS.ID, "fluid_grid/" + item.getId().getPath())) ); @@ -56,7 +56,7 @@ public class RecipeGenerator extends RecipeProvider { .requires(RSItems.GRID.get(color).get()) .requires(RSItems.PROCESSORS.get(ProcessorItem.Type.ADVANCED).get()) .requires(RSItems.PATTERN.get()) - .unlockedBy(GRID_ID, InventoryChangeTrigger.Instance.hasItems(RSItems.GRID.get(ColorMap.DEFAULT_COLOR).get())) + .unlockedBy(GRID_ID, InventoryChangeTrigger.TriggerInstance.hasItems(RSItems.GRID.get(ColorMap.DEFAULT_COLOR).get())) .save(recipeAcceptor, new ResourceLocation(RS.ID, "pattern_grid/" + item.getId().getPath())) ); } diff --git a/src/main/java/com/refinedmods/refinedstorage/datageneration/TagGenerator.java b/src/main/java/com/refinedmods/refinedstorage/datageneration/TagGenerator.java index 07acc266a..32d49371c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/datageneration/TagGenerator.java +++ b/src/main/java/com/refinedmods/refinedstorage/datageneration/TagGenerator.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.datageneration; import com.refinedmods.refinedstorage.RSItems; -import net.minecraft.data.BlockTagsProvider; import net.minecraft.data.DataGenerator; -import net.minecraft.data.ItemTagsProvider; +import net.minecraft.data.tags.BlockTagsProvider; +import net.minecraft.data.tags.ItemTagsProvider; import net.minecraftforge.common.data.ExistingFileHelper; import javax.annotation.Nullable; diff --git a/src/main/java/com/refinedmods/refinedstorage/energy/ItemEnergyStorage.java b/src/main/java/com/refinedmods/refinedstorage/energy/ItemEnergyStorage.java index 218224314..84cd6e1bc 100644 --- a/src/main/java/com/refinedmods/refinedstorage/energy/ItemEnergyStorage.java +++ b/src/main/java/com/refinedmods/refinedstorage/energy/ItemEnergyStorage.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.energy; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.energy.EnergyStorage; public class ItemEnergyStorage extends EnergyStorage { @@ -22,7 +22,7 @@ public class ItemEnergyStorage extends EnergyStorage { if (received > 0 && !simulate) { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } stack.getTag().putInt(NBT_ENERGY, getEnergyStored()); @@ -37,7 +37,7 @@ public class ItemEnergyStorage extends EnergyStorage { if (extracted > 0 && !simulate) { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } stack.getTag().putInt(NBT_ENERGY, getEnergyStored()); diff --git a/src/main/java/com/refinedmods/refinedstorage/integration/craftingtweaks/CraftingTweaksIntegration.java b/src/main/java/com/refinedmods/refinedstorage/integration/craftingtweaks/CraftingTweaksIntegration.java index d7dffbbbb..c6728615e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/integration/craftingtweaks/CraftingTweaksIntegration.java +++ b/src/main/java/com/refinedmods/refinedstorage/integration/craftingtweaks/CraftingTweaksIntegration.java @@ -3,7 +3,7 @@ package com.refinedmods.refinedstorage.integration.craftingtweaks; import com.refinedmods.refinedstorage.api.network.grid.GridType; import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.container.slot.grid.CraftingGridSlot; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.CompoundTag; import net.minecraftforge.fml.InterModComms; import net.minecraftforge.fml.ModList; @@ -25,7 +25,7 @@ public final class CraftingTweaksIntegration { } public static void register() { - CompoundNBT tag = new CompoundNBT(); + CompoundTag tag = new CompoundTag(); tag.putString("ContainerClass", GridContainer.class.getName()); tag.putString("ValidContainerPredicate", ValidContainerPredicate.class.getName()); diff --git a/src/main/java/com/refinedmods/refinedstorage/integration/curios/CuriosIntegration.java b/src/main/java/com/refinedmods/refinedstorage/integration/curios/CuriosIntegration.java index 77c5169d7..5695beef2 100644 --- a/src/main/java/com/refinedmods/refinedstorage/integration/curios/CuriosIntegration.java +++ b/src/main/java/com/refinedmods/refinedstorage/integration/curios/CuriosIntegration.java @@ -18,8 +18,8 @@ public class CuriosIntegration { } @SubscribeEvent - public void registerSlots(InterModEnqueueEvent event){ - InterModComms.sendTo(ID, SlotTypeMessage.REGISTER_TYPE,()-> SlotTypePreset.BELT.getMessageBuilder().build()); - InterModComms.sendTo(ID, SlotTypeMessage.REGISTER_TYPE,()-> SlotTypePreset.BODY.getMessageBuilder().build()); + public void registerSlots(InterModEnqueueEvent event) { + InterModComms.sendTo(ID, SlotTypeMessage.REGISTER_TYPE, () -> SlotTypePreset.BELT.getMessageBuilder().build()); + InterModComms.sendTo(ID, SlotTypeMessage.REGISTER_TYPE, () -> SlotTypePreset.BODY.getMessageBuilder().build()); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/integration/jei/CoverCraftingCategoryExtension.java b/src/main/java/com/refinedmods/refinedstorage/integration/jei/CoverCraftingCategoryExtension.java index d771ba144..8a56de826 100644 --- a/src/main/java/com/refinedmods/refinedstorage/integration/jei/CoverCraftingCategoryExtension.java +++ b/src/main/java/com/refinedmods/refinedstorage/integration/jei/CoverCraftingCategoryExtension.java @@ -7,16 +7,14 @@ import com.refinedmods.refinedstorage.recipe.CoverRecipe; import mezz.jei.api.constants.VanillaTypes; import mezz.jei.api.gui.IRecipeLayout; import mezz.jei.api.ingredients.IIngredients; -import mezz.jei.api.recipe.category.extensions.vanilla.crafting.ICraftingCategoryExtension; import mezz.jei.api.recipe.category.extensions.vanilla.crafting.ICustomCraftingCategoryExtension; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemGroup; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; +import net.minecraft.core.NonNullList; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Block; import net.minecraftforge.common.Tags; import net.minecraftforge.common.util.Size2i; import net.minecraftforge.registries.ForgeRegistries; @@ -39,7 +37,7 @@ public class CoverCraftingCategoryExtension implements ICustomCraftingCategoryEx continue; } NonNullList subBlocks = NonNullList.create(); - block.fillItemCategory(ItemGroup.TAB_SEARCH, subBlocks); + block.fillItemCategory(CreativeModeTab.TAB_SEARCH, subBlocks); for (ItemStack subBlock : subBlocks) { if (CoverManager.isValidCover(subBlock)) { input.add(subBlock); @@ -68,7 +66,7 @@ public class CoverCraftingCategoryExtension implements ICustomCraftingCategoryEx @Override public void setRecipe(IRecipeLayout recipeLayout, IIngredients ingredients) { ItemStack stack = recipeLayout.getFocus(VanillaTypes.ITEM).getValue(); - if (stack.getItem() instanceof CoverItem){ + if (stack.getItem() instanceof CoverItem) { recipeLayout.getIngredientsGroup(VanillaTypes.ITEM).set(4, Tags.Items.NUGGETS_IRON.getValues().stream().map(ItemStack::new).collect(Collectors.toList())); recipeLayout.getIngredientsGroup(VanillaTypes.ITEM).set(5, CoverItem.getItem(stack)); recipeLayout.getIngredientsGroup(VanillaTypes.ITEM).set(0, stack); diff --git a/src/main/java/com/refinedmods/refinedstorage/integration/jei/GhostIngredientHandler.java b/src/main/java/com/refinedmods/refinedstorage/integration/jei/GhostIngredientHandler.java index 391d206f1..0743b0ebd 100644 --- a/src/main/java/com/refinedmods/refinedstorage/integration/jei/GhostIngredientHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/integration/jei/GhostIngredientHandler.java @@ -9,17 +9,15 @@ import com.refinedmods.refinedstorage.network.SetFluidFilterSlotMessage; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.util.StackUtils; import mezz.jei.api.gui.handlers.IGhostIngredientHandler; -import net.minecraft.client.renderer.Rectangle2d; -import net.minecraft.inventory.container.Slot; -import net.minecraft.item.ItemStack; +import net.minecraft.client.renderer.Rect2i; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; import java.util.List; -import mezz.jei.api.gui.handlers.IGhostIngredientHandler.Target; - public class GhostIngredientHandler implements IGhostIngredientHandler { @Override public List> getTargets(BaseScreen gui, I ingredient, boolean doStart) { @@ -30,12 +28,12 @@ public class GhostIngredientHandler implements IGhostIngredientHandler() { @Override - public Rectangle2d getArea() { + public Rect2i getArea() { return bounds; } @@ -49,7 +47,7 @@ public class GhostIngredientHandler implements IGhostIngredientHandler() { @Override - public Rectangle2d getArea() { + public Rect2i getArea() { return bounds; } diff --git a/src/main/java/com/refinedmods/refinedstorage/integration/jei/GridRecipeTransferHandler.java b/src/main/java/com/refinedmods/refinedstorage/integration/jei/GridRecipeTransferHandler.java index bacdb1031..d153390d2 100644 --- a/src/main/java/com/refinedmods/refinedstorage/integration/jei/GridRecipeTransferHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/integration/jei/GridRecipeTransferHandler.java @@ -9,15 +9,15 @@ import com.refinedmods.refinedstorage.network.grid.GridTransferMessage; import com.refinedmods.refinedstorage.screen.grid.GridScreen; import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; import com.refinedmods.refinedstorage.screen.grid.stack.ItemGridStack; -import mezz.jei.api.constants.VanillaRecipeCategoryUid; import mezz.jei.api.gui.IRecipeLayout; import mezz.jei.api.gui.ingredient.IGuiIngredient; import mezz.jei.api.recipe.transfer.IRecipeTransferError; import mezz.jei.api.recipe.transfer.IRecipeTransferHandler; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.item.ItemStack; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CraftingRecipe; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -26,7 +26,7 @@ import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; -public class GridRecipeTransferHandler implements IRecipeTransferHandler { +public class GridRecipeTransferHandler implements IRecipeTransferHandler { public static final GridRecipeTransferHandler INSTANCE = new GridRecipeTransferHandler(); private static final long TRANSFER_SCROLLBAR_DELAY_MS = 200; @@ -42,7 +42,12 @@ public class GridRecipeTransferHandler implements IRecipeTransferHandler getRecipeClass() { + return Object.class; + } + + @Override + public IRecipeTransferError transferRecipe(@Nonnull GridContainer container, Object recipe, @Nonnull IRecipeLayout recipeLayout, @Nonnull Player player, boolean maxTransfer, boolean doTransfer) { if (!(container.getScreenInfoProvider() instanceof GridScreen)) { return null; } @@ -50,15 +55,15 @@ public class GridRecipeTransferHandler implements IRecipeTransferHandler s.container instanceof CraftingInventory).collect(Collectors.toList()) + gridContainer.slots.stream().filter(s -> s.container instanceof CraftingContainer).collect(Collectors.toList()) )); } diff --git a/src/main/java/com/refinedmods/refinedstorage/integration/jei/GuiContainerHandler.java b/src/main/java/com/refinedmods/refinedstorage/integration/jei/GuiContainerHandler.java index 4432db06c..d3faa38a2 100644 --- a/src/main/java/com/refinedmods/refinedstorage/integration/jei/GuiContainerHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/integration/jei/GuiContainerHandler.java @@ -7,8 +7,8 @@ import com.refinedmods.refinedstorage.screen.grid.GridScreen; import com.refinedmods.refinedstorage.screen.widget.sidebutton.SideButton; import com.refinedmods.refinedstorage.util.RenderUtils; import mezz.jei.api.gui.handlers.IGuiContainerHandler; -import net.minecraft.client.gui.screen.inventory.ContainerScreen; -import net.minecraft.client.renderer.Rectangle2d; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.client.renderer.Rect2i; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; @@ -16,15 +16,15 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -public class GuiContainerHandler implements IGuiContainerHandler> { +public class GuiContainerHandler implements IGuiContainerHandler> { @Override - public List getGuiExtraAreas(ContainerScreen screen) { + public List getGuiExtraAreas(AbstractContainerScreen screen) { if (screen instanceof BaseScreen) { List sideButtons = ((BaseScreen) screen).getSideButtons(); - List rectangles = new ArrayList<>(); + List rectangles = new ArrayList<>(); for (SideButton sideButton : sideButtons) { - rectangles.add(new Rectangle2d(sideButton.x, sideButton.y, sideButton.getWidth(), sideButton.getHeight())); + rectangles.add(new Rect2i(sideButton.x, sideButton.y, sideButton.getWidth(), sideButton.getHeight())); } return rectangles; @@ -35,7 +35,7 @@ public class GuiContainerHandler implements IGuiContainerHandler guiIngredient; - private UUID craftStackId; private final int required; + private UUID craftStackId; private int fulfilled; public Ingredient(IGuiIngredient guiIngredient) { diff --git a/src/main/java/com/refinedmods/refinedstorage/integration/jei/IngredientTracker.java b/src/main/java/com/refinedmods/refinedstorage/integration/jei/IngredientTracker.java index 9a108e16e..2f2947763 100644 --- a/src/main/java/com/refinedmods/refinedstorage/integration/jei/IngredientTracker.java +++ b/src/main/java/com/refinedmods/refinedstorage/integration/jei/IngredientTracker.java @@ -9,8 +9,8 @@ import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; import mezz.jei.api.gui.IRecipeLayout; import mezz.jei.api.gui.ingredient.IGuiIngredient; import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nullable; import java.util.*; diff --git a/src/main/java/com/refinedmods/refinedstorage/integration/jei/RSJeiPlugin.java b/src/main/java/com/refinedmods/refinedstorage/integration/jei/RSJeiPlugin.java index 87185dfb7..dd76578cb 100644 --- a/src/main/java/com/refinedmods/refinedstorage/integration/jei/RSJeiPlugin.java +++ b/src/main/java/com/refinedmods/refinedstorage/integration/jei/RSJeiPlugin.java @@ -7,12 +7,12 @@ import com.refinedmods.refinedstorage.recipe.HollowCoverRecipe; import com.refinedmods.refinedstorage.screen.BaseScreen; import mezz.jei.api.IModPlugin; import mezz.jei.api.JeiPlugin; -import mezz.jei.api.constants.VanillaRecipeCategoryUid; -import mezz.jei.api.registration.*; +import mezz.jei.api.registration.IGuiHandlerRegistration; +import mezz.jei.api.registration.IRecipeTransferRegistration; +import mezz.jei.api.registration.ISubtypeRegistration; +import mezz.jei.api.registration.IVanillaCategoryExtensionRegistration; import mezz.jei.api.runtime.IJeiRuntime; -import net.minecraft.util.ResourceLocation; - -import java.util.Collections; +import net.minecraft.resources.ResourceLocation; @JeiPlugin public class RSJeiPlugin implements IModPlugin { @@ -20,6 +20,10 @@ public class RSJeiPlugin implements IModPlugin { private static IJeiRuntime runtime; + public static IJeiRuntime getRuntime() { + return runtime; + } + @Override public ResourceLocation getPluginUid() { return ID; @@ -41,10 +45,6 @@ public class RSJeiPlugin implements IModPlugin { RSJeiPlugin.runtime = runtime; } - public static IJeiRuntime getRuntime() { - return runtime; - } - @Override public void registerItemSubtypes(ISubtypeRegistration registration) { registration.useNbtForSubtypes(RSItems.COVER.get(), RSItems.HOLLOW_COVER.get()); diff --git a/src/main/java/com/refinedmods/refinedstorage/integration/jei/RecipeTransferCraftingGridError.java b/src/main/java/com/refinedmods/refinedstorage/integration/jei/RecipeTransferCraftingGridError.java index 699b5e9bb..0b89a868f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/integration/jei/RecipeTransferCraftingGridError.java +++ b/src/main/java/com/refinedmods/refinedstorage/integration/jei/RecipeTransferCraftingGridError.java @@ -1,26 +1,21 @@ package com.refinedmods.refinedstorage.integration.jei; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import mezz.jei.api.gui.IRecipeLayout; import mezz.jei.api.recipe.transfer.IRecipeTransferError; +import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraftforge.fml.client.gui.GuiUtils; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; import java.awt.*; import java.util.ArrayList; import java.util.List; -import mezz.jei.api.recipe.transfer.IRecipeTransferError.Type; - public class RecipeTransferCraftingGridError implements IRecipeTransferError { - private static final Color MISSING_HIGHLIGHT_COLOR = new Color(1.0f, 0.0f, 0.0f, 0.4f); protected static final Color AUTOCRAFTING_HIGHLIGHT_COLOR = new Color(0.0f, 0.0f, 1.0f, 0.4f); - + private static final Color MISSING_HIGHLIGHT_COLOR = new Color(1.0f, 0.0f, 0.0f, 0.4f); protected final IngredientTracker tracker; public RecipeTransferCraftingGridError(IngredientTracker tracker) { @@ -33,16 +28,16 @@ public class RecipeTransferCraftingGridError implements IRecipeTransferError { } @Override - public void showError(MatrixStack stack, int mouseX, int mouseY, IRecipeLayout recipeLayout, int recipeX, int recipeY) { - List message = drawIngredientHighlights(stack, recipeX, recipeY); + public void showError(PoseStack stack, int mouseX, int mouseY, IRecipeLayout recipeLayout, int recipeX, int recipeY) { + List message = drawIngredientHighlights(stack, recipeX, recipeY); Screen currentScreen = Minecraft.getInstance().screen; - GuiUtils.drawHoveringText(ItemStack.EMPTY, stack, message, mouseX, mouseY, currentScreen.width, currentScreen.height, 200, Minecraft.getInstance().font); + currentScreen.renderComponentTooltip(stack, message, mouseX, mouseY); } - protected List drawIngredientHighlights(MatrixStack stack, int recipeX, int recipeY) { - List message = new ArrayList<>(); - message.add(new TranslationTextComponent("jei.tooltip.transfer")); + protected List drawIngredientHighlights(PoseStack stack, int recipeX, int recipeY) { + List message = new ArrayList<>(); + message.add(new TranslatableComponent("jei.tooltip.transfer")); boolean craftMessage = false; boolean missingMessage = false; @@ -60,11 +55,11 @@ public class RecipeTransferCraftingGridError implements IRecipeTransferError { } if (missingMessage) { - message.add(new TranslationTextComponent("jei.tooltip.error.recipe.transfer.missing").withStyle(TextFormatting.RED)); + message.add(new TranslatableComponent("jei.tooltip.error.recipe.transfer.missing").withStyle(ChatFormatting.RED)); } if (craftMessage) { - message.add(new TranslationTextComponent("gui.refinedstorage.jei.transfer.request_autocrafting").withStyle(TextFormatting.BLUE)); + message.add(new TranslatableComponent("gui.refinedstorage.jei.transfer.request_autocrafting").withStyle(ChatFormatting.BLUE)); } return message; diff --git a/src/main/java/com/refinedmods/refinedstorage/integration/jei/RecipeTransferPatternGridError.java b/src/main/java/com/refinedmods/refinedstorage/integration/jei/RecipeTransferPatternGridError.java index 290eda679..38ce96ce6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/integration/jei/RecipeTransferPatternGridError.java +++ b/src/main/java/com/refinedmods/refinedstorage/integration/jei/RecipeTransferPatternGridError.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.integration.jei; -import com.mojang.blaze3d.matrix.MatrixStack; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.util.text.TranslationTextComponent; +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; import java.util.ArrayList; import java.util.List; @@ -14,9 +14,9 @@ public class RecipeTransferPatternGridError extends RecipeTransferCraftingGridEr } @Override - protected List drawIngredientHighlights(MatrixStack stack, int recipeX, int recipeY) { - List message = new ArrayList<>(); - message.add(new TranslationTextComponent("jei.tooltip.transfer")); + protected List drawIngredientHighlights(PoseStack stack, int recipeX, int recipeY) { + List message = new ArrayList<>(); + message.add(new TranslatableComponent("jei.tooltip.transfer")); boolean craftMessage = false; @@ -28,7 +28,7 @@ public class RecipeTransferPatternGridError extends RecipeTransferCraftingGridEr } if (craftMessage) { - message.add(new TranslationTextComponent("gui.refinedstorage.jei.transfer.autocrafting_available").withStyle(TextFormatting.BLUE)); + message.add(new TranslatableComponent("gui.refinedstorage.jei.transfer.autocrafting_available").withStyle(ChatFormatting.BLUE)); } return message; diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/ConfiguredFluidsInFilterItemHandler.java b/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/ConfiguredFluidsInFilterItemHandler.java index 6b5c9020e..a8e09bda7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/ConfiguredFluidsInFilterItemHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/ConfiguredFluidsInFilterItemHandler.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.inventory.fluid; import com.refinedmods.refinedstorage.item.FilterItem; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.NonNullList; +import net.minecraft.core.NonNullList; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; public class ConfiguredFluidsInFilterItemHandler extends FluidInventory { @@ -12,7 +12,7 @@ public class ConfiguredFluidsInFilterItemHandler extends FluidInventory { this.addListener((handler, slot, reading) -> { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } stack.getTag().put(FilterItem.NBT_FLUID_FILTERS, writeToNbt()); diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/ConfiguredIconInFluidFilterItemHandler.java b/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/ConfiguredIconInFluidFilterItemHandler.java index c5e86573a..a10a4b2a9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/ConfiguredIconInFluidFilterItemHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/ConfiguredIconInFluidFilterItemHandler.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.inventory.fluid; import com.refinedmods.refinedstorage.item.FilterItem; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; public class ConfiguredIconInFluidFilterItemHandler extends FluidInventory { @@ -11,7 +11,7 @@ public class ConfiguredIconInFluidFilterItemHandler extends FluidInventory { this.addListener((handler, slot, reading) -> { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } FilterItem.setFluidIcon(stack, getFluid(slot)); diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/FluidInventory.java b/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/FluidInventory.java index 16ddd7d68..030fa5949 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/FluidInventory.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/FluidInventory.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.inventory.fluid; import com.refinedmods.refinedstorage.inventory.listener.InventoryListener; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.CompoundTag; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -69,21 +69,21 @@ public class FluidInventory { updateEmptyState(); } - public CompoundNBT writeToNbt() { - CompoundNBT tag = new CompoundNBT(); + public CompoundTag writeToNbt() { + CompoundTag tag = new CompoundTag(); for (int i = 0; i < getSlots(); ++i) { FluidStack stack = getFluid(i); if (!stack.isEmpty()) { - tag.put(String.format(NBT_SLOT, i), stack.writeToNBT(new CompoundNBT())); + tag.put(String.format(NBT_SLOT, i), stack.writeToNBT(new CompoundTag())); } } return tag; } - public void readFromNbt(CompoundNBT tag) { + public void readFromNbt(CompoundTag tag) { for (int i = 0; i < getSlots(); ++i) { String key = String.format(NBT_SLOT, i); diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/ProxyFluidHandler.java b/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/ProxyFluidHandler.java index 7dc5d433f..a0768e32b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/ProxyFluidHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/fluid/ProxyFluidHandler.java @@ -6,8 +6,6 @@ import net.minecraftforge.fluids.capability.templates.FluidTank; import javax.annotation.Nonnull; -import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; - public class ProxyFluidHandler implements IFluidHandler { private final FluidTank insertHandler; private final FluidTank extractHandler; diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/item/BaseItemHandler.java b/src/main/java/com/refinedmods/refinedstorage/inventory/item/BaseItemHandler.java index 86f0768c0..40d40d863 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/item/BaseItemHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/item/BaseItemHandler.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.inventory.item; import com.refinedmods.refinedstorage.inventory.listener.InventoryListener; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.ItemStackHandler; import javax.annotation.Nonnull; @@ -62,7 +62,7 @@ public class BaseItemHandler extends ItemStackHandler { } @Override - public void deserializeNBT(CompoundNBT tag) { + public void deserializeNBT(CompoundTag tag) { super.deserializeNBT(tag); this.empty = stacks.stream().allMatch(ItemStack::isEmpty); diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/item/ConfiguredIconInFilterItemHandler.java b/src/main/java/com/refinedmods/refinedstorage/inventory/item/ConfiguredIconInFilterItemHandler.java index 3a5ba7693..518453702 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/item/ConfiguredIconInFilterItemHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/item/ConfiguredIconInFilterItemHandler.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.inventory.item; import com.refinedmods.refinedstorage.item.FilterItem; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.ItemStackHandler; public class ConfiguredIconInFilterItemHandler extends ItemStackHandler { diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/item/ConfiguredItemsInFilterItemHandler.java b/src/main/java/com/refinedmods/refinedstorage/inventory/item/ConfiguredItemsInFilterItemHandler.java index e6f7da646..b7a49aabd 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/item/ConfiguredItemsInFilterItemHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/item/ConfiguredItemsInFilterItemHandler.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.inventory.item; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.NonNullList; +import net.minecraft.core.NonNullList; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.ItemStackHandler; public class ConfiguredItemsInFilterItemHandler extends ItemStackHandler { @@ -24,7 +24,7 @@ public class ConfiguredItemsInFilterItemHandler extends ItemStackHandler { super.onContentsChanged(slot); if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } StackUtils.writeItems(this, 0, stack.getTag()); diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/item/FilterItemHandler.java b/src/main/java/com/refinedmods/refinedstorage/inventory/item/FilterItemHandler.java index 15f3f5289..8dd3e59f4 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/item/FilterItemHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/item/FilterItemHandler.java @@ -11,10 +11,10 @@ import com.refinedmods.refinedstorage.inventory.item.validator.ItemValidator; import com.refinedmods.refinedstorage.item.FilterItem; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.screen.grid.GridScreen; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fml.LogicalSide; -import net.minecraftforge.fml.common.thread.EffectiveSide; +import net.minecraftforge.fml.util.thread.EffectiveSide; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/item/ProxyItemHandler.java b/src/main/java/com/refinedmods/refinedstorage/inventory/item/ProxyItemHandler.java index c7ec3eefe..3b83a43d2 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/item/ProxyItemHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/item/ProxyItemHandler.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.inventory.item; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandler; import javax.annotation.Nonnull; diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/item/UpgradeItemHandler.java b/src/main/java/com/refinedmods/refinedstorage/inventory/item/UpgradeItemHandler.java index 2688fc1b8..35e0d6247 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/item/UpgradeItemHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/item/UpgradeItemHandler.java @@ -2,7 +2,7 @@ package com.refinedmods.refinedstorage.inventory.item; import com.refinedmods.refinedstorage.inventory.item.validator.UpgradeItemValidator; import com.refinedmods.refinedstorage.item.UpgradeItem; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; public class UpgradeItemHandler extends BaseItemHandler { public UpgradeItemHandler(int size, UpgradeItem.Type... supportedUpgrades) { diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/ItemValidator.java b/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/ItemValidator.java index 6bd1f44cd..1fac3313d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/ItemValidator.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/ItemValidator.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.inventory.item.validator; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import java.util.function.Predicate; diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/PatternItemValidator.java b/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/PatternItemValidator.java index 414c72b91..05096c3a9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/PatternItemValidator.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/PatternItemValidator.java @@ -3,15 +3,15 @@ package com.refinedmods.refinedstorage.inventory.item.validator; import com.refinedmods.refinedstorage.RSItems; import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPatternProvider; import com.refinedmods.refinedstorage.item.PatternItem; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import java.util.function.Predicate; public class PatternItemValidator implements Predicate { - private final World world; + private final Level world; - public PatternItemValidator(World world) { + public PatternItemValidator(Level world) { this.world = world; } diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/StorageDiskItemValidator.java b/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/StorageDiskItemValidator.java index d37044e3b..417c5a240 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/StorageDiskItemValidator.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/StorageDiskItemValidator.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.inventory.item.validator; import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskProvider; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import java.util.function.Predicate; diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/UpgradeItemValidator.java b/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/UpgradeItemValidator.java index a7dcb155a..ed6f386cd 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/UpgradeItemValidator.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/item/validator/UpgradeItemValidator.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.inventory.item.validator; import com.refinedmods.refinedstorage.item.UpgradeItem; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import java.util.function.Predicate; diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/listener/TileInventoryListener.java b/src/main/java/com/refinedmods/refinedstorage/inventory/listener/TileInventoryListener.java index 25b3bee01..4730a25c8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/listener/TileInventoryListener.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/listener/TileInventoryListener.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.inventory.listener; import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler; -import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.level.block.entity.BlockEntity; public class TileInventoryListener implements InventoryListener { - private final TileEntity tile; + private final BlockEntity tile; - public TileInventoryListener(TileEntity tile) { + public TileInventoryListener(BlockEntity tile) { this.tile = tile; } diff --git a/src/main/java/com/refinedmods/refinedstorage/inventory/player/PlayerSlot.java b/src/main/java/com/refinedmods/refinedstorage/inventory/player/PlayerSlot.java index a0de77916..020e51e05 100644 --- a/src/main/java/com/refinedmods/refinedstorage/inventory/player/PlayerSlot.java +++ b/src/main/java/com/refinedmods/refinedstorage/inventory/player/PlayerSlot.java @@ -2,10 +2,10 @@ package com.refinedmods.refinedstorage.inventory.player; import com.refinedmods.refinedstorage.integration.curios.CuriosIntegration; import com.refinedmods.refinedstorage.util.PacketBufferUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.Hand; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.common.util.LazyOptional; import top.theillusivec4.curios.api.CuriosApi; import top.theillusivec4.curios.api.type.capability.ICuriosItemHandler; @@ -26,7 +26,7 @@ public class PlayerSlot { this.slot = slot; } - public PlayerSlot(PacketBuffer buffer) { + public PlayerSlot(FriendlyByteBuf buffer) { slot = buffer.readInt(); if (buffer.readBoolean()) { @@ -34,9 +34,18 @@ public class PlayerSlot { } } - public ItemStack getStackFromSlot(PlayerEntity player) { + public static PlayerSlot getSlotForHand(Player player, InteractionHand hand) { + if (hand == InteractionHand.MAIN_HAND) { + return new PlayerSlot(player.getInventory().selected); + } + + //@Volatile Offhand Slot, could use -1 as we aren't using this anywhere. + return new PlayerSlot(40); + } + + public ItemStack getStackFromSlot(Player player) { if (curioSlot == null || !CuriosIntegration.isLoaded()) { - return player.inventory.getItem(slot); + return player.getInventory().getItem(slot); } LazyOptional curiosHandler = CuriosApi.getCuriosHelper().getCuriosHandler(player); @@ -50,7 +59,7 @@ public class PlayerSlot { return stack.orElse(ItemStack.EMPTY); } - public void writePlayerSlot(PacketBuffer buffer) { + public void writePlayerSlot(FriendlyByteBuf buffer) { buffer.writeInt(slot); buffer.writeBoolean(curioSlot != null); if (curioSlot != null) { @@ -64,13 +73,4 @@ public class PlayerSlot { } return slot; } - - public static PlayerSlot getSlotForHand(PlayerEntity player, Hand hand) { - if (hand == Hand.MAIN_HAND) { - return new PlayerSlot(player.inventory.selected); - } - - //@Volatile Offhand Slot, could use -1 as we aren't using this anywhere. - return new PlayerSlot(40); - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/CoreItem.java b/src/main/java/com/refinedmods/refinedstorage/item/CoreItem.java index a77ff5351..a82e7a6f7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/CoreItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/CoreItem.java @@ -1,15 +1,15 @@ package com.refinedmods.refinedstorage.item; import com.refinedmods.refinedstorage.RS; -import net.minecraft.item.Item; +import net.minecraft.world.item.Item; public class CoreItem extends Item { + public CoreItem() { + super(new Item.Properties().tab(RS.MAIN_GROUP)); + } + public enum Type { CONSTRUCTION, DESTRUCTION } - - public CoreItem() { - super(new Item.Properties().tab(RS.MAIN_GROUP)); - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/CoverItem.java b/src/main/java/com/refinedmods/refinedstorage/item/CoverItem.java index 0455ae53d..66895d2ee 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/CoverItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/CoverItem.java @@ -11,21 +11,21 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverType; import com.refinedmods.refinedstorage.block.CableBlock; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.*; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TextComponent; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.NonNullList; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.*; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.client.model.ModelDataManager; import net.minecraftforge.registries.ForgeRegistries; @@ -35,9 +35,8 @@ import java.util.List; public class CoverItem extends Item { - private static final String NBT_ITEM = "Item"; - public static final ItemStack HIDDEN_COVER_ALTERNATIVE = new ItemStack(Blocks.STONE_BRICKS); + private static final String NBT_ITEM = "Item"; public CoverItem() { @@ -46,7 +45,7 @@ public class CoverItem extends Item { public static void setItem(ItemStack cover, ItemStack item) { if (!cover.hasTag()) { - cover.setTag(new CompoundNBT()); + cover.setTag(new CompoundTag()); } ItemStack result = item.copy(); result.setCount(1); @@ -63,17 +62,17 @@ public class CoverItem extends Item { } @Override - public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable Level worldIn, List tooltip, TooltipFlag flagIn) { super.appendHoverText(stack, worldIn, tooltip, flagIn); ItemStack item = getItem(stack); if (!item.isEmpty()) { - tooltip.add(((TextComponent) item.getItem().getName(item)).withStyle(TextFormatting.GRAY)); + tooltip.add(((BaseComponent) item.getItem().getName(item)).withStyle(ChatFormatting.GRAY)); } } @Override - public void fillItemCategory(ItemGroup group, NonNullList items) { + public void fillItemCategory(CreativeModeTab group, NonNullList items) { if (this.allowdedIn(group)) { //Changed from 1.12: to use 1.16 configs if (!RS.CLIENT_CONFIG.getCover().showAllRecipesInJEI()) { ItemStack stack = new ItemStack(this); @@ -93,7 +92,7 @@ public class CoverItem extends Item { NonNullList subBlocks = NonNullList.create(); - block.fillItemCategory(ItemGroup.TAB_SEARCH, subBlocks); + block.fillItemCategory(CreativeModeTab.TAB_SEARCH, subBlocks); for (ItemStack subBlock : subBlocks) { if (CoverManager.isValidCover(subBlock)) { @@ -109,14 +108,14 @@ public class CoverItem extends Item { } @Override - public ActionResultType useOn(ItemUseContext context) { + public InteractionResult useOn(UseOnContext context) { BlockPos pos = context.getClickedPos(); Direction facing = context.getClickedFace(); - World world = context.getLevel(); + Level world = context.getLevel(); ItemStack stack = context.getPlayer().getItemInHand(context.getHand()); - TileEntity tile = world.getBlockEntity(pos); + BlockEntity tile = world.getBlockEntity(pos); // Support placing on the bottom side without too much hassle. if (!canPlaceOn(world, pos, facing)) { @@ -130,7 +129,7 @@ public class CoverItem extends Item { if (canPlaceOn(world, pos, facing)) { if (world.isClientSide) { ModelDataManager.requestModelDataRefresh(tile); - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } INetworkNode node = ((NetworkNodeTile) tile).getNode(); @@ -138,25 +137,25 @@ public class CoverItem extends Item { if (node.getNetwork() != null && !node.getNetwork().getSecurityManager().hasPermission(Permission.BUILD, context.getPlayer())) { WorldUtils.sendNoPermissionMessage(context.getPlayer()); - return ActionResultType.FAIL; + return InteractionResult.FAIL; } if (((ICoverable) node).getCoverManager().setCover(facing, createCover(getItem(stack)))) { context.getPlayer().getItemInHand(context.getHand()).shrink(1); WorldUtils.updateBlock(world, pos); - API.instance().getNetworkNodeManager((ServerWorld) world).markForSaving(); - return ActionResultType.SUCCESS; + API.instance().getNetworkNodeManager((ServerLevel) world).markForSaving(); + return InteractionResult.SUCCESS; } - return ActionResultType.FAIL; + return InteractionResult.FAIL; } - return ActionResultType.PASS; + return InteractionResult.PASS; } - private boolean canPlaceOn(World world, BlockPos pos, Direction facing) { + private boolean canPlaceOn(Level world, BlockPos pos, Direction facing) { return world.getBlockEntity(pos) instanceof NetworkNodeTile && ((NetworkNodeTile) world.getBlockEntity(pos)).getNode() instanceof ICoverable && !CableBlock.hasVisualConnectionOnSide(world.getBlockState(pos), facing); } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/EnergyItem.java b/src/main/java/com/refinedmods/refinedstorage/item/EnergyItem.java index 64ad09cc3..16feccdaf 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/EnergyItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/EnergyItem.java @@ -2,14 +2,14 @@ package com.refinedmods.refinedstorage.item; import com.refinedmods.refinedstorage.item.capabilityprovider.EnergyCapabilityProvider; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.util.Mth; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; import net.minecraftforge.common.capabilities.ICapabilityProvider; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; @@ -30,41 +30,40 @@ public abstract class EnergyItem extends Item { } @Override - public ICapabilityProvider initCapabilities(ItemStack stack, CompoundNBT tag) { + public ICapabilityProvider initCapabilities(ItemStack stack, CompoundTag tag) { return new EnergyCapabilityProvider(stack, energyCapacity.get()); } @Override - public boolean showDurabilityBar(ItemStack stack) { + public boolean isBarVisible(ItemStack stack) { return !creative; } @Override - public double getDurabilityForDisplay(ItemStack stack) { + public int getBarWidth(ItemStack stack) { IEnergyStorage energy = stack.getCapability(CapabilityEnergy.ENERGY).orElse(null); if (energy == null) { return 0; } - - return 1D - ((double) energy.getEnergyStored() / (double) energy.getMaxEnergyStored()); + float stored = (float) energy.getEnergyStored() / (float) energy.getMaxEnergyStored(); + return Math.round(stored * 13F); } @Override - public int getRGBDurabilityForDisplay(ItemStack stack) { + public int getBarColor(ItemStack stack) { IEnergyStorage energy = stack.getCapability(CapabilityEnergy.ENERGY, null).orElse(null); if (energy == null) { - return super.getRGBDurabilityForDisplay(stack); + return super.getBarColor(stack); } - - return MathHelper.hsvToRgb(Math.max(0.0F, (float) energy.getEnergyStored() / (float) energy.getMaxEnergyStored()) / 3.0F, 1.0F, 1.0F); + return Mth.hsvToRgb(Math.max(0.0F, (float) energy.getEnergyStored() / (float) energy.getMaxEnergyStored()) / 3.0F, 1.0F, 1.0F); } @Override - public void appendHoverText(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { super.appendHoverText(stack, world, tooltip, flag); if (!creative) { - stack.getCapability(CapabilityEnergy.ENERGY, null).ifPresent(energy -> tooltip.add(new TranslationTextComponent("misc.refinedstorage.energy_stored", energy.getEnergyStored(), energy.getMaxEnergyStored()).setStyle(Styles.GRAY))); + stack.getCapability(CapabilityEnergy.ENERGY, null).ifPresent(energy -> tooltip.add(new TranslatableComponent("misc.refinedstorage.energy_stored", energy.getEnergyStored(), energy.getMaxEnergyStored()).setStyle(Styles.GRAY))); } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/FilterItem.java b/src/main/java/com/refinedmods/refinedstorage/item/FilterItem.java index 50ff925f2..2d95dd239 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/FilterItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/FilterItem.java @@ -10,20 +10,20 @@ import com.refinedmods.refinedstorage.inventory.item.ConfiguredItemsInFilterItem import com.refinedmods.refinedstorage.render.Styles; import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.INamedContainerProvider; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -31,6 +31,7 @@ import javax.annotation.Nullable; import java.util.List; public class FilterItem extends Item { + public static final String NBT_FLUID_FILTERS = "FluidFilters"; private static final String NBT_COMPARE = "Compare"; private static final String NBT_MODE = "Mode"; private static final String NBT_MOD_FILTER = "ModFilter"; @@ -38,63 +39,18 @@ public class FilterItem extends Item { private static final String NBT_ICON = "Icon"; private static final String NBT_FLUID_ICON = "FluidIcon"; private static final String NBT_TYPE = "Type"; - public static final String NBT_FLUID_FILTERS = "FluidFilters"; public FilterItem() { super(new Item.Properties().tab(RS.MAIN_GROUP).stacksTo(1)); } - @Override - public ActionResult use(World world, PlayerEntity player, Hand hand) { - ItemStack stack = player.getItemInHand(hand); - - if (!world.isClientSide) { - if (player.isCrouching()) { - return new ActionResult<>(ActionResultType.SUCCESS, new ItemStack(RSItems.FILTER.get())); - } - - player.openMenu(new INamedContainerProvider() { - @Override - public ITextComponent getDisplayName() { - return new TranslationTextComponent("gui.refinedstorage.filter"); - } - - @Override - public Container createMenu(int windowId, PlayerInventory inventory, PlayerEntity player) { - return new FilterContainer(player, inventory.getSelected(), windowId); - } - }); - } - - return new ActionResult<>(ActionResultType.CONSUME, stack); - } - - @Override - public void appendHoverText(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { - super.appendHoverText(stack, world, tooltip, flag); - - tooltip.add(new TranslationTextComponent("sidebutton.refinedstorage.mode." + (getMode(stack) == IFilter.MODE_WHITELIST ? "whitelist" : "blacklist")).setStyle(Styles.YELLOW)); - - if (isModFilter(stack)) { - tooltip.add(new TranslationTextComponent("gui.refinedstorage.filter.mod_filter").setStyle(Styles.BLUE)); - } - - RenderUtils.addCombinedItemsToTooltip(tooltip, false, new ConfiguredItemsInFilterItemHandler(stack).getConfiguredItems()); - RenderUtils.addCombinedFluidsToTooltip(tooltip, false, new ConfiguredFluidsInFilterItemHandler(stack).getConfiguredFluids()); - } - - @Override - public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { - return false; - } - public static int getCompare(ItemStack stack) { return (stack.hasTag() && stack.getTag().contains(NBT_COMPARE)) ? stack.getTag().getInt(NBT_COMPARE) : IComparer.COMPARE_NBT; } public static void setCompare(ItemStack stack, int compare) { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } stack.getTag().putInt(NBT_COMPARE, compare); @@ -106,7 +62,7 @@ public class FilterItem extends Item { public static void setMode(ItemStack stack, int mode) { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } stack.getTag().putInt(NBT_MODE, mode); @@ -118,7 +74,7 @@ public class FilterItem extends Item { public static void setModFilter(ItemStack stack, boolean modFilter) { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } stack.getTag().putBoolean(NBT_MOD_FILTER, modFilter); @@ -130,7 +86,7 @@ public class FilterItem extends Item { public static void setName(ItemStack stack, String name) { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } stack.getTag().putString(NBT_NAME, name); @@ -143,7 +99,7 @@ public class FilterItem extends Item { public static void setIcon(ItemStack stack, ItemStack icon) { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } stack.getTag().put(NBT_ICON, icon.serializeNBT()); @@ -151,13 +107,13 @@ public class FilterItem extends Item { public static void setFluidIcon(ItemStack stack, @Nullable FluidStack icon) { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } if (icon == null) { stack.getTag().remove(NBT_FLUID_ICON); } else { - stack.getTag().put(NBT_FLUID_ICON, icon.writeToNBT(new CompoundNBT())); + stack.getTag().put(NBT_FLUID_ICON, icon.writeToNBT(new CompoundTag())); } } @@ -172,9 +128,53 @@ public class FilterItem extends Item { public static void setType(ItemStack stack, int type) { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } stack.getTag().putInt(NBT_TYPE, type); } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + + if (!world.isClientSide) { + if (player.isCrouching()) { + return new InteractionResultHolder<>(InteractionResult.SUCCESS, new ItemStack(RSItems.FILTER.get())); + } + + player.openMenu(new MenuProvider() { + @Override + public Component getDisplayName() { + return new TranslatableComponent("gui.refinedstorage.filter"); + } + + @Override + public AbstractContainerMenu createMenu(int windowId, Inventory inventory, Player player) { + return new FilterContainer(player, inventory.getSelected(), windowId); + } + }); + } + + return new InteractionResultHolder<>(InteractionResult.CONSUME, stack); + } + + @Override + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { + super.appendHoverText(stack, world, tooltip, flag); + + tooltip.add(new TranslatableComponent("sidebutton.refinedstorage.mode." + (getMode(stack) == IFilter.MODE_WHITELIST ? "whitelist" : "blacklist")).setStyle(Styles.YELLOW)); + + if (isModFilter(stack)) { + tooltip.add(new TranslatableComponent("gui.refinedstorage.filter.mod_filter").setStyle(Styles.BLUE)); + } + + RenderUtils.addCombinedItemsToTooltip(tooltip, false, new ConfiguredItemsInFilterItemHandler(stack).getConfiguredItems()); + RenderUtils.addCombinedFluidsToTooltip(tooltip, false, new ConfiguredFluidsInFilterItemHandler(stack).getConfiguredFluids()); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return false; + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/FluidStorageDiskItem.java b/src/main/java/com/refinedmods/refinedstorage/item/FluidStorageDiskItem.java index 830f97375..61e25da2c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/FluidStorageDiskItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/FluidStorageDiskItem.java @@ -9,21 +9,21 @@ import com.refinedmods.refinedstorage.api.storage.disk.StorageDiskSyncData; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.storage.FluidStorageType; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.Containers; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; import javax.annotation.Nullable; import java.util.List; @@ -41,21 +41,21 @@ public class FluidStorageDiskItem extends Item implements IStorageDiskProvider { } @Override - public void inventoryTick(ItemStack stack, World world, Entity entity, int slot, boolean selected) { + public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) { super.inventoryTick(stack, world, entity, slot, selected); - if (!world.isClientSide && !stack.hasTag() && entity instanceof PlayerEntity) { + if (!world.isClientSide && !stack.hasTag() && entity instanceof Player) { UUID id = UUID.randomUUID(); - API.instance().getStorageDiskManager((ServerWorld) world).set(id, API.instance().createDefaultFluidDisk((ServerWorld) world, getCapacity(stack), (PlayerEntity) entity)); - API.instance().getStorageDiskManager((ServerWorld) world).markForSaving(); + API.instance().getStorageDiskManager((ServerLevel) world).set(id, API.instance().createDefaultFluidDisk((ServerLevel) world, getCapacity(stack), (Player) entity)); + API.instance().getStorageDiskManager((ServerLevel) world).markForSaving(); setId(stack, id); } } @Override - public void appendHoverText(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { super.appendHoverText(stack, world, tooltip, flag); if (isValid(stack)) { @@ -66,44 +66,44 @@ public class FluidStorageDiskItem extends Item implements IStorageDiskProvider { StorageDiskSyncData data = API.instance().getStorageDiskSync().getData(id); if (data != null) { if (data.getCapacity() == -1) { - tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored())).setStyle(Styles.GRAY)); + tooltip.add(new TranslatableComponent("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored())).setStyle(Styles.GRAY)); } else { - tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity())).setStyle(Styles.GRAY)); + tooltip.add(new TranslatableComponent("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity())).setStyle(Styles.GRAY)); } } if (flag.isAdvanced()) { - tooltip.add(new StringTextComponent(id.toString()).setStyle(Styles.GRAY)); + tooltip.add(new TextComponent(id.toString()).setStyle(Styles.GRAY)); } } } @Override - public ActionResult use(World world, PlayerEntity player, Hand hand) { + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { ItemStack diskStack = player.getItemInHand(hand); if (!world.isClientSide && player.isCrouching() && type != FluidStorageType.CREATIVE) { - IStorageDisk disk = API.instance().getStorageDiskManager((ServerWorld) world).getByStack(diskStack); + IStorageDisk disk = API.instance().getStorageDiskManager((ServerLevel) world).getByStack(diskStack); if (disk != null && disk.getStored() == 0) { ItemStack storagePart = new ItemStack(FluidStoragePartItem.getByType(type), diskStack.getCount()); - if (!player.inventory.add(storagePart.copy())) { - InventoryHelper.dropItemStack(world, player.getX(), player.getY(), player.getZ(), storagePart); + if (!player.getInventory().add(storagePart.copy())) { + Containers.dropItemStack(world, player.getX(), player.getY(), player.getZ(), storagePart); } - API.instance().getStorageDiskManager((ServerWorld) world).remove(getId(diskStack)); - API.instance().getStorageDiskManager((ServerWorld) world).markForSaving(); + API.instance().getStorageDiskManager((ServerLevel) world).remove(getId(diskStack)); + API.instance().getStorageDiskManager((ServerLevel) world).markForSaving(); - return new ActionResult<>(ActionResultType.SUCCESS, new ItemStack(RSItems.STORAGE_HOUSING.get())); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, new ItemStack(RSItems.STORAGE_HOUSING.get())); } } - return new ActionResult<>(ActionResultType.PASS, diskStack); + return new InteractionResultHolder<>(InteractionResult.PASS, diskStack); } @Override - public int getEntityLifespan(ItemStack stack, World world) { + public int getEntityLifespan(ItemStack stack, Level world) { return Integer.MAX_VALUE; } @@ -114,7 +114,7 @@ public class FluidStorageDiskItem extends Item implements IStorageDiskProvider { @Override public void setId(ItemStack disk, UUID id) { - disk.setTag(new CompoundNBT()); + disk.setTag(new CompoundTag()); disk.getTag().putUUID(NBT_ID, id); } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/FluidStoragePartItem.java b/src/main/java/com/refinedmods/refinedstorage/item/FluidStoragePartItem.java index a468eb123..8a478999b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/FluidStoragePartItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/FluidStoragePartItem.java @@ -3,7 +3,7 @@ package com.refinedmods.refinedstorage.item; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.RSItems; import com.refinedmods.refinedstorage.apiimpl.storage.FluidStorageType; -import net.minecraft.item.Item; +import net.minecraft.world.item.Item; public class FluidStoragePartItem extends Item { public FluidStoragePartItem() { diff --git a/src/main/java/com/refinedmods/refinedstorage/item/HollowCoverItem.java b/src/main/java/com/refinedmods/refinedstorage/item/HollowCoverItem.java index fb8997125..e18f26971 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/HollowCoverItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/HollowCoverItem.java @@ -2,9 +2,9 @@ package com.refinedmods.refinedstorage.item; import com.refinedmods.refinedstorage.apiimpl.network.node.cover.Cover; import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverType; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; -public class HollowCoverItem extends CoverItem{ +public class HollowCoverItem extends CoverItem { public HollowCoverItem() { super(); diff --git a/src/main/java/com/refinedmods/refinedstorage/item/NetworkCardItem.java b/src/main/java/com/refinedmods/refinedstorage/item/NetworkCardItem.java index 2f60548ad..fe2fabc57 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/NetworkCardItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/NetworkCardItem.java @@ -3,20 +3,20 @@ package com.refinedmods.refinedstorage.item; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.block.NetworkReceiverBlock; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.block.Block; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemUseContext; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.RegistryKey; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.Registry; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Registry; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; import javax.annotation.Nullable; import java.util.List; @@ -31,44 +31,6 @@ public class NetworkCardItem extends Item { super(new Item.Properties().tab(RS.MAIN_GROUP).stacksTo(1)); } - @Override - public ActionResultType useOn(ItemUseContext ctx) { - Block block = ctx.getLevel().getBlockState(ctx.getClickedPos()).getBlock(); - - if (block instanceof NetworkReceiverBlock) { - CompoundNBT tag = new CompoundNBT(); - - tag.putInt(NBT_RECEIVER_X, ctx.getClickedPos().getX()); - tag.putInt(NBT_RECEIVER_Y, ctx.getClickedPos().getY()); - tag.putInt(NBT_RECEIVER_Z, ctx.getClickedPos().getZ()); - tag.putString(NBT_DIMENSION, ctx.getLevel().dimension().location().toString()); - - ctx.getPlayer().getItemInHand(ctx.getHand()).setTag(tag); - - return ActionResultType.SUCCESS; - } - - return ActionResultType.PASS; - } - - @Override - public void appendHoverText(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { - super.appendHoverText(stack, world, tooltip, flag); - - BlockPos pos = getReceiver(stack); - RegistryKey type = getDimension(stack); - - if (pos != null && type != null) { - tooltip.add(new TranslationTextComponent( - "misc.refinedstorage.network_card.tooltip", - pos.getX(), - pos.getY(), - pos.getZ(), - type.location().toString() - ).setStyle(Styles.GRAY)); - } - } - @Nullable public static BlockPos getReceiver(ItemStack stack) { if (stack.hasTag() && @@ -86,16 +48,54 @@ public class NetworkCardItem extends Item { } @Nullable - public static RegistryKey getDimension(ItemStack stack) { + public static ResourceKey getDimension(ItemStack stack) { if (stack.hasTag() && stack.getTag().contains(NBT_DIMENSION)) { ResourceLocation name = ResourceLocation.tryParse(stack.getTag().getString(NBT_DIMENSION)); if (name == null) { return null; } - return RegistryKey.create(Registry.DIMENSION_REGISTRY, name); + return ResourceKey.create(Registry.DIMENSION_REGISTRY, name); } return null; } + + @Override + public InteractionResult useOn(UseOnContext ctx) { + Block block = ctx.getLevel().getBlockState(ctx.getClickedPos()).getBlock(); + + if (block instanceof NetworkReceiverBlock) { + CompoundTag tag = new CompoundTag(); + + tag.putInt(NBT_RECEIVER_X, ctx.getClickedPos().getX()); + tag.putInt(NBT_RECEIVER_Y, ctx.getClickedPos().getY()); + tag.putInt(NBT_RECEIVER_Z, ctx.getClickedPos().getZ()); + tag.putString(NBT_DIMENSION, ctx.getLevel().dimension().location().toString()); + + ctx.getPlayer().getItemInHand(ctx.getHand()).setTag(tag); + + return InteractionResult.SUCCESS; + } + + return InteractionResult.PASS; + } + + @Override + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { + super.appendHoverText(stack, world, tooltip, flag); + + BlockPos pos = getReceiver(stack); + ResourceKey type = getDimension(stack); + + if (pos != null && type != null) { + tooltip.add(new TranslatableComponent( + "misc.refinedstorage.network_card.tooltip", + pos.getX(), + pos.getY(), + pos.getZ(), + type.location().toString() + ).setStyle(Styles.GRAY)); + } + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/NetworkItem.java b/src/main/java/com/refinedmods/refinedstorage/item/NetworkItem.java index 03793c816..50ca8c1b8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/NetworkItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/NetworkItem.java @@ -5,20 +5,24 @@ import com.refinedmods.refinedstorage.api.network.item.INetworkItemProvider; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.render.Styles; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemUseContext; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Registry; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; -import net.minecraft.util.*; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.Registry; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; import javax.annotation.Nullable; import java.util.List; @@ -35,94 +39,15 @@ public abstract class NetworkItem extends EnergyItem implements INetworkItemProv super(item, creative, energyCapacity); } - @Override - public ActionResult use(World world, PlayerEntity player, Hand hand) { - ItemStack stack = player.getItemInHand(hand); - - if (!world.isClientSide) { - applyNetwork(world.getServer(), stack, n -> n.getNetworkItemManager().open(player, player.getItemInHand(hand), PlayerSlot.getSlotForHand(player, hand)), err -> player.sendMessage(err, player.getUUID())); - } - - return ActionResult.success(stack); - } - - public void applyNetwork(MinecraftServer server, ItemStack stack, Consumer onNetwork, Consumer onError) { - TranslationTextComponent notFound = new TranslationTextComponent("misc.refinedstorage.network_item.not_found"); - - if (!isValid(stack)) { - onError.accept(notFound); - return; - } - - RegistryKey dimension = getDimension(stack); - if (dimension == null) { - onError.accept(notFound); - return; - } - - World nodeWorld = server.getLevel(dimension); - if (nodeWorld == null) { - onError.accept(notFound); - return; - } - - INetwork network = NetworkUtils.getNetworkFromNode(NetworkUtils.getNodeFromTile(nodeWorld.getBlockEntity(new BlockPos(getX(stack), getY(stack), getZ(stack))))); - if (network == null) { - onError.accept(notFound); - return; - } - - onNetwork.accept(network); - } - - @Override - public void appendHoverText(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { - super.appendHoverText(stack, world, tooltip, flag); - - if (isValid(stack)) { - tooltip.add(new TranslationTextComponent("misc.refinedstorage.network_item.tooltip", getX(stack), getY(stack), getZ(stack)).setStyle(Styles.GRAY)); - } - } - - @Override - public ActionResultType interactLivingEntity(ItemStack stack, PlayerEntity playerIn, LivingEntity target, Hand hand) { - return super.interactLivingEntity(stack, playerIn, target, hand); - } - - @Override - public ActionResultType useOn(ItemUseContext ctx) { - ItemStack stack = ctx.getPlayer().getItemInHand(ctx.getHand()); - - INetwork network = NetworkUtils.getNetworkFromNode(NetworkUtils.getNodeFromTile(ctx.getLevel().getBlockEntity(ctx.getClickedPos()))); - if (network != null) { - CompoundNBT tag = stack.getTag(); - - if (tag == null) { - tag = new CompoundNBT(); - } - - tag.putInt(NBT_NODE_X, network.getPosition().getX()); - tag.putInt(NBT_NODE_Y, network.getPosition().getY()); - tag.putInt(NBT_NODE_Z, network.getPosition().getZ()); - tag.putString(NBT_DIMENSION, ctx.getLevel().dimension().location().toString()); - - stack.setTag(tag); - - return ActionResultType.SUCCESS; - } - - return ActionResultType.PASS; - } - @Nullable - public static RegistryKey getDimension(ItemStack stack) { + public static ResourceKey getDimension(ItemStack stack) { if (stack.hasTag() && stack.getTag().contains(NBT_DIMENSION)) { ResourceLocation name = ResourceLocation.tryParse(stack.getTag().getString(NBT_DIMENSION)); if (name == null) { return null; } - return RegistryKey.create(Registry.DIMENSION_REGISTRY, name); + return ResourceKey.create(Registry.DIMENSION_REGISTRY, name); } return null; @@ -140,11 +65,6 @@ public abstract class NetworkItem extends EnergyItem implements INetworkItemProv return stack.getTag().getInt(NBT_NODE_Z); } - @Override - public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { - return false; - } - public static boolean isValid(ItemStack stack) { return stack.hasTag() && stack.getTag().contains(NBT_NODE_X) @@ -152,4 +72,88 @@ public abstract class NetworkItem extends EnergyItem implements INetworkItemProv && stack.getTag().contains(NBT_NODE_Z) && stack.getTag().contains(NBT_DIMENSION); } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + + if (!world.isClientSide) { + applyNetwork(world.getServer(), stack, n -> n.getNetworkItemManager().open(player, player.getItemInHand(hand), PlayerSlot.getSlotForHand(player, hand)), err -> player.sendMessage(err, player.getUUID())); + } + + return InteractionResultHolder.success(stack); + } + + public void applyNetwork(MinecraftServer server, ItemStack stack, Consumer onNetwork, Consumer onError) { + TranslatableComponent notFound = new TranslatableComponent("misc.refinedstorage.network_item.not_found"); + + if (!isValid(stack)) { + onError.accept(notFound); + return; + } + + ResourceKey dimension = getDimension(stack); + if (dimension == null) { + onError.accept(notFound); + return; + } + + Level nodeWorld = server.getLevel(dimension); + if (nodeWorld == null) { + onError.accept(notFound); + return; + } + + INetwork network = NetworkUtils.getNetworkFromNode(NetworkUtils.getNodeFromTile(nodeWorld.getBlockEntity(new BlockPos(getX(stack), getY(stack), getZ(stack))))); + if (network == null) { + onError.accept(notFound); + return; + } + + onNetwork.accept(network); + } + + @Override + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { + super.appendHoverText(stack, world, tooltip, flag); + + if (isValid(stack)) { + tooltip.add(new TranslatableComponent("misc.refinedstorage.network_item.tooltip", getX(stack), getY(stack), getZ(stack)).setStyle(Styles.GRAY)); + } + } + + @Override + public InteractionResult interactLivingEntity(ItemStack stack, Player playerIn, LivingEntity target, InteractionHand hand) { + return super.interactLivingEntity(stack, playerIn, target, hand); + } + + @Override + public InteractionResult useOn(UseOnContext ctx) { + ItemStack stack = ctx.getPlayer().getItemInHand(ctx.getHand()); + + INetwork network = NetworkUtils.getNetworkFromNode(NetworkUtils.getNodeFromTile(ctx.getLevel().getBlockEntity(ctx.getClickedPos()))); + if (network != null) { + CompoundTag tag = stack.getTag(); + + if (tag == null) { + tag = new CompoundTag(); + } + + tag.putInt(NBT_NODE_X, network.getPosition().getX()); + tag.putInt(NBT_NODE_Y, network.getPosition().getY()); + tag.putInt(NBT_NODE_Z, network.getPosition().getZ()); + tag.putString(NBT_DIMENSION, ctx.getLevel().dimension().location().toString()); + + stack.setTag(tag); + + return InteractionResult.SUCCESS; + } + + return InteractionResult.PASS; + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return false; + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/PatternItem.java b/src/main/java/com/refinedmods/refinedstorage/item/PatternItem.java index 572ff2569..7d43f612b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/PatternItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/PatternItem.java @@ -13,19 +13,23 @@ import com.refinedmods.refinedstorage.render.Styles; import com.refinedmods.refinedstorage.render.tesr.PatternItemStackTileRenderer; import com.refinedmods.refinedstorage.util.ItemStackKey; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; +import net.minecraftforge.client.IItemRenderProperties; +import net.minecraftforge.common.util.NonNullLazy; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -34,9 +38,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.function.Consumer; import java.util.stream.Collectors; -public class PatternItem extends Item implements ICraftingPatternProvider { +public class PatternItem extends Item implements ICraftingPatternProvider, IItemRenderProperties { private static final Map CACHE = new HashMap<>(); private static final String NBT_VERSION = "Version"; @@ -50,11 +55,28 @@ public class PatternItem extends Item implements ICraftingPatternProvider { private static final int VERSION = 1; + private final NonNullLazy renderer = NonNullLazy.of(() -> new PatternItemStackTileRenderer( + Minecraft.getInstance().getBlockEntityRenderDispatcher(), + Minecraft.getInstance().getEntityModels() + )); + public PatternItem() { - super(new Item.Properties().tab(RS.MAIN_GROUP).setISTER(() -> PatternItemStackTileRenderer::new)); + super(new Item.Properties().tab(RS.MAIN_GROUP)); } - public static ICraftingPattern fromCache(World world, ItemStack stack) { + @Override + public void initializeClient(Consumer consumer) { + super.initializeClient(consumer); + + consumer.accept(new IItemRenderProperties() { + @Override + public BlockEntityWithoutLevelRenderer getItemStackRenderer() { + return renderer.get(); + } + }); + } + + public static ICraftingPattern fromCache(Level world, ItemStack stack) { ICraftingPattern pattern = CACHE.computeIfAbsent( new ItemStackKey(stack), s -> CraftingPatternFactory.INSTANCE.create(world, null, s.getStack()) @@ -69,90 +91,9 @@ public class PatternItem extends Item implements ICraftingPatternProvider { return pattern; } - @Override - public void appendHoverText(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { - super.appendHoverText(stack, world, tooltip, flag); - - if (!stack.hasTag()) { - return; - } - - ICraftingPattern pattern = fromCache(world, stack); - - if (pattern.isValid()) { - if (Screen.hasShiftDown() || isProcessing(stack)) { - tooltip.add(new TranslationTextComponent("misc.refinedstorage.pattern.inputs").setStyle(Styles.YELLOW)); - - RenderUtils.addCombinedItemsToTooltip(tooltip, true, pattern.getInputs().stream().map(i -> !i.isEmpty() ? i.get(0) : ItemStack.EMPTY).collect(Collectors.toList())); - RenderUtils.addCombinedFluidsToTooltip(tooltip, true, pattern.getFluidInputs().stream().map(i -> !i.isEmpty() ? i.get(0) : FluidStack.EMPTY).collect(Collectors.toList())); - - tooltip.add(new TranslationTextComponent("misc.refinedstorage.pattern.outputs").setStyle(Styles.YELLOW)); - } - - RenderUtils.addCombinedItemsToTooltip(tooltip, true, pattern.getOutputs()); - RenderUtils.addCombinedFluidsToTooltip(tooltip, true, pattern.getFluidOutputs()); - - if (pattern instanceof CraftingPattern && ((CraftingPattern) pattern).getAllowedTagList() != null) { - addAllowedTags(tooltip, (CraftingPattern) pattern); - } - - if (isExact(stack)) { - tooltip.add(new TranslationTextComponent("misc.refinedstorage.pattern.exact").setStyle(Styles.BLUE)); - } - - if (isProcessing(stack)) { - tooltip.add(new TranslationTextComponent("misc.refinedstorage.processing").setStyle(Styles.BLUE)); - } - } else { - tooltip.add(new TranslationTextComponent("misc.refinedstorage.pattern.invalid").setStyle(Styles.RED)); - tooltip.add(pattern.getErrorMessage().plainCopy().setStyle(Styles.GRAY)); - } - } - - public void addAllowedTags(List tooltip, CraftingPattern pattern) { - for (int i = 0; i < pattern.getAllowedTagList().getAllowedItemTags().size(); ++i) { - Set allowedTags = pattern.getAllowedTagList().getAllowedItemTags().get(i); - - for (ResourceLocation tag : allowedTags) { - tooltip.add(new TranslationTextComponent( - "misc.refinedstorage.pattern.allowed_item_tag", - tag.toString(), - pattern.getInputs().get(i).get(0).getHoverName() - ).setStyle(Styles.AQUA)); - } - } - - for (int i = 0; i < pattern.getAllowedTagList().getAllowedFluidTags().size(); ++i) { - Set allowedTags = pattern.getAllowedTagList().getAllowedFluidTags().get(i); - - for (ResourceLocation tag : allowedTags) { - tooltip.add(new TranslationTextComponent( - "misc.refinedstorage.pattern.allowed_fluid_tag", - tag.toString(), - pattern.getFluidInputs().get(i).get(0).getDisplayName() - ).setStyle(Styles.AQUA)); - } - } - } - - @Override - public ActionResult use(World world, PlayerEntity player, Hand hand) { - if (!world.isClientSide && player.isCrouching()) { - return new ActionResult<>(ActionResultType.SUCCESS, new ItemStack(RSItems.PATTERN.get(), player.getItemInHand(hand).getCount())); - } - - return new ActionResult<>(ActionResultType.PASS, player.getItemInHand(hand)); - } - - @Override - @Nonnull - public ICraftingPattern create(World world, ItemStack stack, ICraftingPatternContainer container) { - return CraftingPatternFactory.INSTANCE.create(world, container, stack); - } - public static void setInputSlot(ItemStack pattern, int slot, ItemStack stack) { if (!pattern.hasTag()) { - pattern.setTag(new CompoundNBT()); + pattern.setTag(new CompoundTag()); } pattern.getTag().put(String.format(NBT_INPUT_SLOT, slot), stack.serializeNBT()); @@ -171,7 +112,7 @@ public class PatternItem extends Item implements ICraftingPatternProvider { public static void setOutputSlot(ItemStack pattern, int slot, ItemStack stack) { if (!pattern.hasTag()) { - pattern.setTag(new CompoundNBT()); + pattern.setTag(new CompoundTag()); } pattern.getTag().put(String.format(NBT_OUTPUT_SLOT, slot), stack.serializeNBT()); @@ -190,10 +131,10 @@ public class PatternItem extends Item implements ICraftingPatternProvider { public static void setFluidInputSlot(ItemStack pattern, int slot, FluidStack stack) { if (!pattern.hasTag()) { - pattern.setTag(new CompoundNBT()); + pattern.setTag(new CompoundTag()); } - pattern.getTag().put(String.format(NBT_FLUID_INPUT_SLOT, slot), stack.writeToNBT(new CompoundNBT())); + pattern.getTag().put(String.format(NBT_FLUID_INPUT_SLOT, slot), stack.writeToNBT(new CompoundTag())); } public static FluidStack getFluidInputSlot(ItemStack pattern, int slot) { @@ -208,10 +149,10 @@ public class PatternItem extends Item implements ICraftingPatternProvider { public static void setFluidOutputSlot(ItemStack pattern, int slot, FluidStack stack) { if (!pattern.hasTag()) { - pattern.setTag(new CompoundNBT()); + pattern.setTag(new CompoundTag()); } - pattern.getTag().put(String.format(NBT_FLUID_OUTPUT_SLOT, slot), stack.writeToNBT(new CompoundNBT())); + pattern.getTag().put(String.format(NBT_FLUID_OUTPUT_SLOT, slot), stack.writeToNBT(new CompoundTag())); } public static FluidStack getFluidOutputSlot(ItemStack pattern, int slot) { @@ -230,7 +171,7 @@ public class PatternItem extends Item implements ICraftingPatternProvider { public static void setProcessing(ItemStack pattern, boolean processing) { if (!pattern.hasTag()) { - pattern.setTag(new CompoundNBT()); + pattern.setTag(new CompoundTag()); } pattern.getTag().putBoolean(NBT_PROCESSING, processing); @@ -246,7 +187,7 @@ public class PatternItem extends Item implements ICraftingPatternProvider { public static void setExact(ItemStack pattern, boolean exact) { if (!pattern.hasTag()) { - pattern.setTag(new CompoundNBT()); + pattern.setTag(new CompoundTag()); } pattern.getTag().putBoolean(NBT_EXACT, exact); @@ -254,7 +195,7 @@ public class PatternItem extends Item implements ICraftingPatternProvider { public static void setToCurrentVersion(ItemStack pattern) { if (!pattern.hasTag()) { - pattern.setTag(new CompoundNBT()); + pattern.setTag(new CompoundTag()); } pattern.getTag().putInt(NBT_VERSION, VERSION); @@ -262,7 +203,7 @@ public class PatternItem extends Item implements ICraftingPatternProvider { public static void setAllowedTags(ItemStack pattern, AllowedTagList allowedTagList) { if (!pattern.hasTag()) { - pattern.setTag(new CompoundNBT()); + pattern.setTag(new CompoundTag()); } pattern.getTag().put(NBT_ALLOWED_TAGS, allowedTagList.writeToNbt()); @@ -280,4 +221,85 @@ public class PatternItem extends Item implements ICraftingPatternProvider { return allowedTagList; } + + @Override + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { + super.appendHoverText(stack, world, tooltip, flag); + + if (!stack.hasTag()) { + return; + } + + ICraftingPattern pattern = fromCache(world, stack); + + if (pattern.isValid()) { + if (Screen.hasShiftDown() || isProcessing(stack)) { + tooltip.add(new TranslatableComponent("misc.refinedstorage.pattern.inputs").setStyle(Styles.YELLOW)); + + RenderUtils.addCombinedItemsToTooltip(tooltip, true, pattern.getInputs().stream().map(i -> !i.isEmpty() ? i.get(0) : ItemStack.EMPTY).collect(Collectors.toList())); + RenderUtils.addCombinedFluidsToTooltip(tooltip, true, pattern.getFluidInputs().stream().map(i -> !i.isEmpty() ? i.get(0) : FluidStack.EMPTY).collect(Collectors.toList())); + + tooltip.add(new TranslatableComponent("misc.refinedstorage.pattern.outputs").setStyle(Styles.YELLOW)); + } + + RenderUtils.addCombinedItemsToTooltip(tooltip, true, pattern.getOutputs()); + RenderUtils.addCombinedFluidsToTooltip(tooltip, true, pattern.getFluidOutputs()); + + if (pattern instanceof CraftingPattern && ((CraftingPattern) pattern).getAllowedTagList() != null) { + addAllowedTags(tooltip, (CraftingPattern) pattern); + } + + if (isExact(stack)) { + tooltip.add(new TranslatableComponent("misc.refinedstorage.pattern.exact").setStyle(Styles.BLUE)); + } + + if (isProcessing(stack)) { + tooltip.add(new TranslatableComponent("misc.refinedstorage.processing").setStyle(Styles.BLUE)); + } + } else { + tooltip.add(new TranslatableComponent("misc.refinedstorage.pattern.invalid").setStyle(Styles.RED)); + tooltip.add(pattern.getErrorMessage().plainCopy().setStyle(Styles.GRAY)); + } + } + + public void addAllowedTags(List tooltip, CraftingPattern pattern) { + for (int i = 0; i < pattern.getAllowedTagList().getAllowedItemTags().size(); ++i) { + Set allowedTags = pattern.getAllowedTagList().getAllowedItemTags().get(i); + + for (ResourceLocation tag : allowedTags) { + tooltip.add(new TranslatableComponent( + "misc.refinedstorage.pattern.allowed_item_tag", + tag.toString(), + pattern.getInputs().get(i).get(0).getHoverName() + ).setStyle(Styles.AQUA)); + } + } + + for (int i = 0; i < pattern.getAllowedTagList().getAllowedFluidTags().size(); ++i) { + Set allowedTags = pattern.getAllowedTagList().getAllowedFluidTags().get(i); + + for (ResourceLocation tag : allowedTags) { + tooltip.add(new TranslatableComponent( + "misc.refinedstorage.pattern.allowed_fluid_tag", + tag.toString(), + pattern.getFluidInputs().get(i).get(0).getDisplayName() + ).setStyle(Styles.AQUA)); + } + } + } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + if (!world.isClientSide && player.isCrouching()) { + return new InteractionResultHolder<>(InteractionResult.SUCCESS, new ItemStack(RSItems.PATTERN.get(), player.getItemInHand(hand).getCount())); + } + + return new InteractionResultHolder<>(InteractionResult.PASS, player.getItemInHand(hand)); + } + + @Override + @Nonnull + public ICraftingPattern create(Level world, ItemStack stack, ICraftingPatternContainer container) { + return CraftingPatternFactory.INSTANCE.create(world, container, stack); + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/ProcessorBindingItem.java b/src/main/java/com/refinedmods/refinedstorage/item/ProcessorBindingItem.java index ce1e11ce2..5b6f4e7a7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/ProcessorBindingItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/ProcessorBindingItem.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.item; import com.refinedmods.refinedstorage.RS; -import net.minecraft.item.Item; +import net.minecraft.world.item.Item; public class ProcessorBindingItem extends Item { public ProcessorBindingItem() { diff --git a/src/main/java/com/refinedmods/refinedstorage/item/ProcessorItem.java b/src/main/java/com/refinedmods/refinedstorage/item/ProcessorItem.java index 64c26aafe..52a80baff 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/ProcessorItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/ProcessorItem.java @@ -1,9 +1,13 @@ package com.refinedmods.refinedstorage.item; import com.refinedmods.refinedstorage.RS; -import net.minecraft.item.Item; +import net.minecraft.world.item.Item; public class ProcessorItem extends Item { + public ProcessorItem() { + super(new Item.Properties().tab(RS.MAIN_GROUP)); + } + public enum Type { RAW_BASIC("raw_basic"), RAW_IMPROVED("raw_improved"), @@ -22,8 +26,4 @@ public class ProcessorItem extends Item { return name; } } - - public ProcessorItem() { - super(new Item.Properties().tab(RS.MAIN_GROUP)); - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/QuartzEnrichedIronItem.java b/src/main/java/com/refinedmods/refinedstorage/item/QuartzEnrichedIronItem.java index 2f0b00a31..5c68fe5f5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/QuartzEnrichedIronItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/QuartzEnrichedIronItem.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.item; import com.refinedmods.refinedstorage.RS; -import net.minecraft.item.Item; +import net.minecraft.world.item.Item; public class QuartzEnrichedIronItem extends Item { public QuartzEnrichedIronItem() { diff --git a/src/main/java/com/refinedmods/refinedstorage/item/SecurityCardItem.java b/src/main/java/com/refinedmods/refinedstorage/item/SecurityCardItem.java index 774034dc7..9ae9eff35 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/SecurityCardItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/SecurityCardItem.java @@ -3,17 +3,17 @@ package com.refinedmods.refinedstorage.item; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.network.security.Permission; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; import javax.annotation.Nullable; import java.util.List; @@ -28,20 +28,6 @@ public class SecurityCardItem extends Item { super(new Item.Properties().tab(RS.MAIN_GROUP).stacksTo(1)); } - @Override - public ActionResult use(World world, PlayerEntity player, Hand hand) { - ItemStack stack = player.getItemInHand(hand); - - if (!world.isClientSide) { - stack.setTag(new CompoundNBT()); - - stack.getTag().putString(NBT_OWNER, player.getGameProfile().getId().toString()); - stack.getTag().putString(NBT_OWNER_NAME, player.getGameProfile().getName()); - } - - return ActionResult.success(stack); - } - @Nullable public static UUID getOwner(ItemStack stack) { if (stack.hasTag() && stack.getTag().contains(NBT_OWNER)) { @@ -63,7 +49,7 @@ public class SecurityCardItem extends Item { public static void setPermission(ItemStack stack, Permission permission, boolean state) { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } stack.getTag().putBoolean(String.format(NBT_PERMISSION, permission.getId()), state); @@ -74,16 +60,30 @@ public class SecurityCardItem extends Item { } @Override - public void appendHoverText(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + + if (!world.isClientSide) { + stack.setTag(new CompoundTag()); + + stack.getTag().putString(NBT_OWNER, player.getGameProfile().getId().toString()); + stack.getTag().putString(NBT_OWNER_NAME, player.getGameProfile().getName()); + } + + return InteractionResultHolder.success(stack); + } + + @Override + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { super.appendHoverText(stack, world, tooltip, flag); if (stack.hasTag() && stack.getTag().contains(NBT_OWNER_NAME)) { - tooltip.add(new TranslationTextComponent("item.refinedstorage.security_card.owner", stack.getTag().getString(NBT_OWNER_NAME)).setStyle(Styles.GRAY)); + tooltip.add(new TranslatableComponent("item.refinedstorage.security_card.owner", stack.getTag().getString(NBT_OWNER_NAME)).setStyle(Styles.GRAY)); } for (Permission permission : Permission.values()) { if (hasPermission(stack, permission)) { - tooltip.add(new StringTextComponent("- ").append(new TranslationTextComponent("gui.refinedstorage.security_manager.permission." + permission.getId())).setStyle(Styles.GRAY)); + tooltip.add(new TextComponent("- ").append(new TranslatableComponent("gui.refinedstorage.security_manager.permission." + permission.getId())).setStyle(Styles.GRAY)); } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/SiliconItem.java b/src/main/java/com/refinedmods/refinedstorage/item/SiliconItem.java index b64792aa1..543f4bf28 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/SiliconItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/SiliconItem.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.item; import com.refinedmods.refinedstorage.RS; -import net.minecraft.item.Item; +import net.minecraft.world.item.Item; public class SiliconItem extends Item { public SiliconItem() { diff --git a/src/main/java/com/refinedmods/refinedstorage/item/StorageDiskItem.java b/src/main/java/com/refinedmods/refinedstorage/item/StorageDiskItem.java index 009086d52..c5ab35390 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/StorageDiskItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/StorageDiskItem.java @@ -9,21 +9,21 @@ import com.refinedmods.refinedstorage.api.storage.disk.StorageDiskSyncData; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.storage.ItemStorageType; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.Containers; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; import javax.annotation.Nullable; import java.util.List; @@ -41,21 +41,21 @@ public class StorageDiskItem extends Item implements IStorageDiskProvider { } @Override - public void inventoryTick(ItemStack stack, World world, Entity entity, int slot, boolean selected) { + public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) { super.inventoryTick(stack, world, entity, slot, selected); - if (!world.isClientSide && !stack.hasTag() && entity instanceof PlayerEntity) { + if (!world.isClientSide && !stack.hasTag() && entity instanceof Player) { UUID id = UUID.randomUUID(); - API.instance().getStorageDiskManager((ServerWorld) world).set(id, API.instance().createDefaultItemDisk((ServerWorld) world, getCapacity(stack), (PlayerEntity) entity)); - API.instance().getStorageDiskManager((ServerWorld) world).markForSaving(); + API.instance().getStorageDiskManager((ServerLevel) world).set(id, API.instance().createDefaultItemDisk((ServerLevel) world, getCapacity(stack), (Player) entity)); + API.instance().getStorageDiskManager((ServerLevel) world).markForSaving(); setId(stack, id); } } @Override - public void appendHoverText(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { super.appendHoverText(stack, world, tooltip, flag); if (isValid(stack)) { @@ -66,44 +66,44 @@ public class StorageDiskItem extends Item implements IStorageDiskProvider { StorageDiskSyncData data = API.instance().getStorageDiskSync().getData(id); if (data != null) { if (data.getCapacity() == -1) { - tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored())).setStyle(Styles.GRAY)); + tooltip.add(new TranslatableComponent("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored())).setStyle(Styles.GRAY)); } else { - tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity())).setStyle(Styles.GRAY)); + tooltip.add(new TranslatableComponent("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity())).setStyle(Styles.GRAY)); } } if (flag.isAdvanced()) { - tooltip.add(new StringTextComponent(id.toString()).setStyle(Styles.GRAY)); + tooltip.add(new TextComponent(id.toString()).setStyle(Styles.GRAY)); } } } @Override - public ActionResult use(World world, PlayerEntity player, Hand hand) { + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { ItemStack diskStack = player.getItemInHand(hand); if (!world.isClientSide && player.isCrouching() && type != ItemStorageType.CREATIVE) { - IStorageDisk disk = API.instance().getStorageDiskManager((ServerWorld) world).getByStack(diskStack); + IStorageDisk disk = API.instance().getStorageDiskManager((ServerLevel) world).getByStack(diskStack); if (disk != null && disk.getStored() == 0) { ItemStack storagePart = new ItemStack(StoragePartItem.getByType(type), diskStack.getCount()); - if (!player.inventory.add(storagePart.copy())) { - InventoryHelper.dropItemStack(world, player.getX(), player.getY(), player.getZ(), storagePart); + if (!player.getInventory().add(storagePart.copy())) { + Containers.dropItemStack(world, player.getX(), player.getY(), player.getZ(), storagePart); } - API.instance().getStorageDiskManager((ServerWorld) world).remove(getId(diskStack)); - API.instance().getStorageDiskManager((ServerWorld) world).markForSaving(); + API.instance().getStorageDiskManager((ServerLevel) world).remove(getId(diskStack)); + API.instance().getStorageDiskManager((ServerLevel) world).markForSaving(); - return new ActionResult<>(ActionResultType.SUCCESS, new ItemStack(RSItems.STORAGE_HOUSING.get())); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, new ItemStack(RSItems.STORAGE_HOUSING.get())); } } - return new ActionResult<>(ActionResultType.PASS, diskStack); + return new InteractionResultHolder<>(InteractionResult.PASS, diskStack); } @Override - public int getEntityLifespan(ItemStack stack, World world) { + public int getEntityLifespan(ItemStack stack, Level world) { return Integer.MAX_VALUE; } @@ -114,7 +114,7 @@ public class StorageDiskItem extends Item implements IStorageDiskProvider { @Override public void setId(ItemStack disk, UUID id) { - disk.setTag(new CompoundNBT()); + disk.setTag(new CompoundTag()); disk.getTag().putUUID(NBT_ID, id); } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/StorageHousingItem.java b/src/main/java/com/refinedmods/refinedstorage/item/StorageHousingItem.java index 43385fa4a..9554f1afa 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/StorageHousingItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/StorageHousingItem.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.item; import com.refinedmods.refinedstorage.RS; -import net.minecraft.item.Item; +import net.minecraft.world.item.Item; public class StorageHousingItem extends Item { public StorageHousingItem() { diff --git a/src/main/java/com/refinedmods/refinedstorage/item/StoragePartItem.java b/src/main/java/com/refinedmods/refinedstorage/item/StoragePartItem.java index ab05b4dd6..f920152d4 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/StoragePartItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/StoragePartItem.java @@ -3,7 +3,7 @@ package com.refinedmods.refinedstorage.item; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.RSItems; import com.refinedmods.refinedstorage.apiimpl.storage.ItemStorageType; -import net.minecraft.item.Item; +import net.minecraft.world.item.Item; public class StoragePartItem extends Item { public StoragePartItem() { diff --git a/src/main/java/com/refinedmods/refinedstorage/item/UpgradeItem.java b/src/main/java/com/refinedmods/refinedstorage/item/UpgradeItem.java index 38f23efea..e7e409836 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/UpgradeItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/UpgradeItem.java @@ -2,17 +2,51 @@ package com.refinedmods.refinedstorage.item; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; import javax.annotation.Nullable; import java.util.List; public class UpgradeItem extends Item { + private final Type type; + + public UpgradeItem(Type type) { + super(new Item.Properties().tab(RS.MAIN_GROUP)); + + this.type = type; + } + + @Override + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { + super.appendHoverText(stack, world, tooltip, flag); + + if (type.getFortuneLevel() > 0) { + tooltip.add( + new TranslatableComponent("enchantment.minecraft.fortune") + .append(" ") + .append(new TranslatableComponent("enchantment.level." + type.getFortuneLevel())) + .setStyle(Styles.GRAY) + ); + } + } + + @Override + public boolean isFoil(ItemStack stack) { + return type == Type.SILK_TOUCH || + type == Type.FORTUNE_1 || + type == Type.FORTUNE_2 || + type == Type.FORTUNE_3; + } + + public Type getType() { + return type; + } + public enum Type { NORMAL("normal"), SPEED("speed"), @@ -75,38 +109,4 @@ public class UpgradeItem extends Item { } } } - - private final Type type; - - public UpgradeItem(Type type) { - super(new Item.Properties().tab(RS.MAIN_GROUP)); - - this.type = type; - } - - @Override - public void appendHoverText(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { - super.appendHoverText(stack, world, tooltip, flag); - - if (type.getFortuneLevel() > 0) { - tooltip.add( - new TranslationTextComponent("enchantment.minecraft.fortune") - .append(" ") - .append(new TranslationTextComponent("enchantment.level." + type.getFortuneLevel())) - .setStyle(Styles.GRAY) - ); - } - } - - @Override - public boolean isFoil(ItemStack stack) { - return type == Type.SILK_TOUCH || - type == Type.FORTUNE_1 || - type == Type.FORTUNE_2 || - type == Type.FORTUNE_3; - } - - public Type getType() { - return type; - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/WirelessCraftingMonitorItem.java b/src/main/java/com/refinedmods/refinedstorage/item/WirelessCraftingMonitorItem.java index fd4adbcfd..5c1cb99fa 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/WirelessCraftingMonitorItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/WirelessCraftingMonitorItem.java @@ -5,10 +5,10 @@ import com.refinedmods.refinedstorage.api.network.item.INetworkItem; import com.refinedmods.refinedstorage.api.network.item.INetworkItemManager; import com.refinedmods.refinedstorage.apiimpl.network.item.WirelessCraftingMonitorNetworkItem; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nonnull; import java.util.Optional; @@ -17,12 +17,6 @@ import java.util.UUID; public class WirelessCraftingMonitorItem extends NetworkItem { public static final String NBT_TAB_SELECTED = "TabSelected"; public static final String NBT_TAB_PAGE = "TabPage"; - - public enum Type { - NORMAL, - CREATIVE - } - private final Type type; public WirelessCraftingMonitorItem(Type type) { @@ -31,16 +25,6 @@ public class WirelessCraftingMonitorItem extends NetworkItem { this.type = type; } - public Type getType() { - return type; - } - - @Nonnull - @Override - public INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot) { - return new WirelessCraftingMonitorNetworkItem(handler, player, stack, slot); - } - public static Optional getTabSelected(ItemStack stack) { if (stack.hasTag() && stack.getTag().hasUUID(NBT_TAB_SELECTED)) { return Optional.of(stack.getTag().getUUID(NBT_TAB_SELECTED)); @@ -51,7 +35,7 @@ public class WirelessCraftingMonitorItem extends NetworkItem { public static void setTabSelected(ItemStack stack, Optional tabSelected) { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } if (tabSelected.isPresent()) { @@ -72,9 +56,24 @@ public class WirelessCraftingMonitorItem extends NetworkItem { public static void setTabPage(ItemStack stack, int tabPage) { if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } stack.getTag().putInt(NBT_TAB_PAGE, tabPage); } + + public Type getType() { + return type; + } + + @Nonnull + @Override + public INetworkItem provide(INetworkItemManager handler, Player player, ItemStack stack, PlayerSlot slot) { + return new WirelessCraftingMonitorNetworkItem(handler, player, stack, slot); + } + + public enum Type { + NORMAL, + CREATIVE + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/WirelessFluidGridItem.java b/src/main/java/com/refinedmods/refinedstorage/item/WirelessFluidGridItem.java index ddbe5f05b..da9ab17c2 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/WirelessFluidGridItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/WirelessFluidGridItem.java @@ -7,18 +7,13 @@ import com.refinedmods.refinedstorage.api.network.item.INetworkItemManager; import com.refinedmods.refinedstorage.apiimpl.network.item.WirelessFluidGridNetworkItem; import com.refinedmods.refinedstorage.apiimpl.network.node.GridNetworkNode; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nonnull; public class WirelessFluidGridItem extends NetworkItem { - public enum Type { - NORMAL, - CREATIVE - } - private final Type type; public WirelessFluidGridItem(Type type) { @@ -27,16 +22,6 @@ public class WirelessFluidGridItem extends NetworkItem { this.type = type; } - public Type getType() { - return type; - } - - @Nonnull - @Override - public INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot) { - return new WirelessFluidGridNetworkItem(handler, player, stack, slot); - } - public static int getSortingType(ItemStack stack) { return (stack.hasTag() && stack.getTag().contains(GridNetworkNode.NBT_SORTING_TYPE)) ? stack.getTag().getInt(GridNetworkNode.NBT_SORTING_TYPE) : IGrid.SORTING_TYPE_QUANTITY; } @@ -60,4 +45,19 @@ public class WirelessFluidGridItem extends NetworkItem { public static int getSize(ItemStack stack) { return (stack.hasTag() && stack.getTag().contains(GridNetworkNode.NBT_SIZE)) ? stack.getTag().getInt(GridNetworkNode.NBT_SIZE) : IGrid.SIZE_STRETCH; } + + public Type getType() { + return type; + } + + @Nonnull + @Override + public INetworkItem provide(INetworkItemManager handler, Player player, ItemStack stack, PlayerSlot slot) { + return new WirelessFluidGridNetworkItem(handler, player, stack, slot); + } + + public enum Type { + NORMAL, + CREATIVE + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/WirelessGridItem.java b/src/main/java/com/refinedmods/refinedstorage/item/WirelessGridItem.java index 3bc9f06fe..ea1a287dd 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/WirelessGridItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/WirelessGridItem.java @@ -7,18 +7,13 @@ import com.refinedmods.refinedstorage.api.network.item.INetworkItemManager; import com.refinedmods.refinedstorage.apiimpl.network.item.WirelessGridNetworkItem; import com.refinedmods.refinedstorage.apiimpl.network.node.GridNetworkNode; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nonnull; public class WirelessGridItem extends NetworkItem { - public enum Type { - NORMAL, - CREATIVE - } - private final Type type; public WirelessGridItem(Type type) { @@ -27,16 +22,6 @@ public class WirelessGridItem extends NetworkItem { this.type = type; } - public Type getType() { - return type; - } - - @Override - @Nonnull - public INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack, PlayerSlot slot) { - return new WirelessGridNetworkItem(handler, player, stack, slot); - } - public static int getViewType(ItemStack stack) { return (stack.hasTag() && stack.getTag().contains(GridNetworkNode.NBT_VIEW_TYPE)) ? stack.getTag().getInt(GridNetworkNode.NBT_VIEW_TYPE) : IGrid.VIEW_TYPE_NORMAL; } @@ -64,4 +49,19 @@ public class WirelessGridItem extends NetworkItem { public static int getSize(ItemStack stack) { return (stack.hasTag() && stack.getTag().contains(GridNetworkNode.NBT_SIZE)) ? stack.getTag().getInt(GridNetworkNode.NBT_SIZE) : IGrid.SIZE_STRETCH; } + + public Type getType() { + return type; + } + + @Override + @Nonnull + public INetworkItem provide(INetworkItemManager handler, Player player, ItemStack stack, PlayerSlot slot) { + return new WirelessGridNetworkItem(handler, player, stack, slot); + } + + public enum Type { + NORMAL, + CREATIVE + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/WrenchItem.java b/src/main/java/com/refinedmods/refinedstorage/item/WrenchItem.java index b7ad26070..4028f3d8b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/WrenchItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/WrenchItem.java @@ -6,15 +6,14 @@ import com.refinedmods.refinedstorage.api.network.node.ICoverable; import com.refinedmods.refinedstorage.api.network.node.INetworkNode; import com.refinedmods.refinedstorage.api.network.security.Permission; import com.refinedmods.refinedstorage.apiimpl.network.node.cover.Cover; -import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverType; import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.block.BlockState; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemUseContext; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Rotation; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.items.ItemHandlerHelper; public class WrenchItem extends Item { @@ -23,9 +22,9 @@ public class WrenchItem extends Item { } @Override - public ActionResultType onItemUseFirst(ItemStack stack, ItemUseContext ctx) { + public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext ctx) { if (ctx.getLevel().isClientSide) { - return ActionResultType.CONSUME; + return InteractionResult.CONSUME; } INetworkNode node = NetworkUtils.getNodeFromTile(ctx.getLevel().getBlockEntity(ctx.getClickedPos())); @@ -33,24 +32,24 @@ public class WrenchItem extends Item { if (network != null && !network.getSecurityManager().hasPermission(Permission.BUILD, ctx.getPlayer())) { WorldUtils.sendNoPermissionMessage(ctx.getPlayer()); - return ActionResultType.FAIL; + return InteractionResult.FAIL; } BlockState state = ctx.getLevel().getBlockState(ctx.getClickedPos()); - if (node instanceof ICoverable && ((ICoverable) node).getCoverManager().hasCover(ctx.getClickedFace())){ + if (node instanceof ICoverable && ((ICoverable) node).getCoverManager().hasCover(ctx.getClickedFace())) { Cover cover = ((ICoverable) node).getCoverManager().removeCover(ctx.getClickedFace()); - if (cover != null){ + if (cover != null) { ItemStack stack1 = cover.getType().createStack(); CoverItem.setItem(stack1, cover.getStack()); ItemHandlerHelper.giveItemToPlayer(ctx.getPlayer(), stack1); ctx.getLevel().sendBlockUpdated(ctx.getClickedPos(), state, state, 3); ctx.getLevel().updateNeighborsAt(ctx.getClickedPos(), ctx.getLevel().getBlockState(ctx.getClickedPos()).getBlock()); - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } } ctx.getLevel().setBlockAndUpdate(ctx.getClickedPos(), state.rotate(ctx.getLevel(), ctx.getClickedPos(), Rotation.CLOCKWISE_90)); - return ActionResultType.CONSUME; + return InteractionResult.CONSUME; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/BaseBlockItem.java b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/BaseBlockItem.java index a6a92afbf..d4f3afafa 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/BaseBlockItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/BaseBlockItem.java @@ -2,11 +2,9 @@ package com.refinedmods.refinedstorage.item.blockitem; import com.refinedmods.refinedstorage.block.BaseBlock; import com.refinedmods.refinedstorage.block.BlockDirection; -import net.minecraft.block.BlockState; -import net.minecraft.item.BlockItem; -import net.minecraft.item.BlockItemUseContext; - -import net.minecraft.item.Item.Properties; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.block.state.BlockState; public class BaseBlockItem extends BlockItem { private final BaseBlock block; @@ -18,7 +16,7 @@ public class BaseBlockItem extends BlockItem { } @Override - protected boolean placeBlock(BlockItemUseContext context, BlockState state) { + protected boolean placeBlock(BlockPlaceContext context, BlockState state) { boolean result = super.placeBlock(context, state); if (result && block.getDirection() != BlockDirection.NONE) { diff --git a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/ColoredBlockItem.java b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/ColoredBlockItem.java index 7a2a5a611..6e6728ab5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/ColoredBlockItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/ColoredBlockItem.java @@ -2,23 +2,21 @@ package com.refinedmods.refinedstorage.item.blockitem; import com.refinedmods.refinedstorage.block.BaseBlock; import com.refinedmods.refinedstorage.util.ColorMap; -import net.minecraft.item.DyeColor; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; - -import net.minecraft.item.Item.Properties; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.ItemStack; public class ColoredBlockItem extends BaseBlockItem { - private final ITextComponent displayName; + private final Component displayName; - public ColoredBlockItem(BaseBlock block, Properties builder, DyeColor color, ITextComponent displayName) { + public ColoredBlockItem(BaseBlock block, Properties builder, DyeColor color, Component displayName) { super(block, builder); if (color != ColorMap.DEFAULT_COLOR) { - this.displayName = new TranslationTextComponent("color.minecraft." + color.getName()) - .append(" ") - .append(displayName); + this.displayName = new TranslatableComponent("color.minecraft." + color.getName()) + .append(" ") + .append(displayName); } else { this.displayName = displayName; } @@ -26,7 +24,7 @@ public class ColoredBlockItem extends BaseBlockItem { } @Override - public ITextComponent getName(ItemStack stack) { + public Component getName(ItemStack stack) { return displayName; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/ControllerBlockItem.java b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/ControllerBlockItem.java index c7d3a424f..72ceb592d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/ControllerBlockItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/ControllerBlockItem.java @@ -4,22 +4,22 @@ import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.network.NetworkType; import com.refinedmods.refinedstorage.block.ControllerBlock; import com.refinedmods.refinedstorage.util.ColorMap; -import net.minecraft.item.DyeColor; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; public class ControllerBlockItem extends EnergyBlockItem { - private final ITextComponent displayName; + private final Component displayName; - public ControllerBlockItem(ControllerBlock block, DyeColor color, ITextComponent displayName) { + public ControllerBlockItem(ControllerBlock block, DyeColor color, Component displayName) { super(block, new Item.Properties().tab(RS.MAIN_GROUP).stacksTo(1), block.getType() == NetworkType.CREATIVE, () -> RS.SERVER_CONFIG.getController().getCapacity()); if (color != ColorMap.DEFAULT_COLOR) { - this.displayName = new TranslationTextComponent("color.minecraft." + color.getName()) - .append(" ") - .append(displayName); + this.displayName = new TranslatableComponent("color.minecraft." + color.getName()) + .append(" ") + .append(displayName); } else { this.displayName = displayName; } @@ -27,7 +27,7 @@ public class ControllerBlockItem extends EnergyBlockItem { } @Override - public ITextComponent getName(ItemStack stack) { + public Component getName(ItemStack stack) { return displayName; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/EnergyBlockItem.java b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/EnergyBlockItem.java index 043c5c5f7..d969507be 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/EnergyBlockItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/EnergyBlockItem.java @@ -3,14 +3,14 @@ package com.refinedmods.refinedstorage.item.blockitem; import com.refinedmods.refinedstorage.block.BaseBlock; import com.refinedmods.refinedstorage.item.capabilityprovider.EnergyCapabilityProvider; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.util.Mth; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; import net.minecraftforge.common.capabilities.ICapabilityProvider; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; @@ -31,41 +31,40 @@ public abstract class EnergyBlockItem extends BaseBlockItem { } @Override - public ICapabilityProvider initCapabilities(ItemStack stack, CompoundNBT tag) { + public ICapabilityProvider initCapabilities(ItemStack stack, CompoundTag tag) { return new EnergyCapabilityProvider(stack, energyCapacity.get()); } @Override - public boolean showDurabilityBar(ItemStack stack) { + public boolean isBarVisible(ItemStack stack) { return !creative; } @Override - public double getDurabilityForDisplay(ItemStack stack) { + public int getBarWidth(ItemStack stack) { IEnergyStorage energy = stack.getCapability(CapabilityEnergy.ENERGY).orElse(null); if (energy == null) { return 0; } - - return 1D - ((double) energy.getEnergyStored() / (double) energy.getMaxEnergyStored()); + float stored = (float) energy.getEnergyStored() / (float) energy.getMaxEnergyStored(); + return Math.round(stored * 13F); } @Override - public int getRGBDurabilityForDisplay(ItemStack stack) { + public int getBarColor(ItemStack stack) { IEnergyStorage energy = stack.getCapability(CapabilityEnergy.ENERGY, null).orElse(null); if (energy == null) { - return super.getRGBDurabilityForDisplay(stack); + return super.getBarColor(stack); } - - return MathHelper.hsvToRgb(Math.max(0.0F, (float) energy.getEnergyStored() / (float) energy.getMaxEnergyStored()) / 3.0F, 1.0F, 1.0F); + return Mth.hsvToRgb(Math.max(0.0F, (float) energy.getEnergyStored() / (float) energy.getMaxEnergyStored()) / 3.0F, 1.0F, 1.0F); } @Override - public void appendHoverText(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { super.appendHoverText(stack, world, tooltip, flag); if (!creative) { - stack.getCapability(CapabilityEnergy.ENERGY, null).ifPresent(energy -> tooltip.add(new TranslationTextComponent("misc.refinedstorage.energy_stored", energy.getEnergyStored(), energy.getMaxEnergyStored()).setStyle(Styles.GRAY))); + stack.getCapability(CapabilityEnergy.ENERGY, null).ifPresent(energy -> tooltip.add(new TranslatableComponent("misc.refinedstorage.energy_stored", energy.getEnergyStored(), energy.getMaxEnergyStored()).setStyle(Styles.GRAY))); } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/FluidStorageBlockItem.java b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/FluidStorageBlockItem.java index 8da347ec2..b3bedb917 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/FluidStorageBlockItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/FluidStorageBlockItem.java @@ -12,20 +12,20 @@ import com.refinedmods.refinedstorage.block.FluidStorageBlock; import com.refinedmods.refinedstorage.item.FluidStoragePartItem; import com.refinedmods.refinedstorage.item.ProcessorItem; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.Containers; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; import javax.annotation.Nullable; import java.util.List; @@ -41,7 +41,7 @@ public class FluidStorageBlockItem extends BaseBlockItem { } @Override - public void appendHoverText(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { super.appendHoverText(stack, world, tooltip, flag); if (isValid(stack)) { @@ -52,20 +52,20 @@ public class FluidStorageBlockItem extends BaseBlockItem { StorageDiskSyncData data = API.instance().getStorageDiskSync().getData(id); if (data != null) { if (data.getCapacity() == -1) { - tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored())).setStyle(Styles.GRAY)); + tooltip.add(new TranslatableComponent("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored())).setStyle(Styles.GRAY)); } else { - tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity())).setStyle(Styles.GRAY)); + tooltip.add(new TranslatableComponent("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity())).setStyle(Styles.GRAY)); } } if (flag.isAdvanced()) { - tooltip.add(new StringTextComponent(id.toString()).setStyle(Styles.GRAY)); + tooltip.add(new TextComponent(id.toString()).setStyle(Styles.GRAY)); } } } @Override - public ActionResult use(World world, PlayerEntity player, Hand hand) { + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { ItemStack storageStack = player.getItemInHand(hand); if (!world.isClientSide && player.isCrouching() && type != FluidStorageType.CREATIVE) { @@ -74,43 +74,43 @@ public class FluidStorageBlockItem extends BaseBlockItem { if (isValid(storageStack)) { diskId = getId(storageStack); - disk = API.instance().getStorageDiskManager((ServerWorld) world).get(diskId); + disk = API.instance().getStorageDiskManager((ServerLevel) world).get(diskId); } // Newly created fluid storages won't have a tag yet, so allow invalid disks as well. if (disk == null || disk.getStored() == 0) { ItemStack fluidStoragePart = new ItemStack(FluidStoragePartItem.getByType(type)); - if (!player.inventory.add(fluidStoragePart.copy())) { - InventoryHelper.dropItemStack(world, player.getX(), player.getY(), player.getZ(), fluidStoragePart); + if (!player.getInventory().add(fluidStoragePart.copy())) { + Containers.dropItemStack(world, player.getX(), player.getY(), player.getZ(), fluidStoragePart); } ItemStack processor = new ItemStack(RSItems.PROCESSORS.get(ProcessorItem.Type.BASIC).get()); - if (!player.inventory.add(processor.copy())) { - InventoryHelper.dropItemStack(world, player.getX(), player.getY(), player.getZ(), processor); + if (!player.getInventory().add(processor.copy())) { + Containers.dropItemStack(world, player.getX(), player.getY(), player.getZ(), processor); } ItemStack bucket = new ItemStack(Items.BUCKET); - if (!player.inventory.add(bucket.copy())) { - InventoryHelper.dropItemStack(world, player.getX(), player.getY(), player.getZ(), bucket); + if (!player.getInventory().add(bucket.copy())) { + Containers.dropItemStack(world, player.getX(), player.getY(), player.getZ(), bucket); } if (disk != null) { - API.instance().getStorageDiskManager((ServerWorld) world).remove(diskId); - API.instance().getStorageDiskManager((ServerWorld) world).markForSaving(); + API.instance().getStorageDiskManager((ServerLevel) world).remove(diskId); + API.instance().getStorageDiskManager((ServerLevel) world).markForSaving(); } - return new ActionResult<>(ActionResultType.SUCCESS, new ItemStack(RSBlocks.MACHINE_CASING.get())); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, new ItemStack(RSBlocks.MACHINE_CASING.get())); } } - return new ActionResult<>(ActionResultType.PASS, storageStack); + return new InteractionResultHolder<>(InteractionResult.PASS, storageStack); } @Override - public int getEntityLifespan(ItemStack stack, World world) { + public int getEntityLifespan(ItemStack stack, Level world) { return Integer.MAX_VALUE; } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/PortableGridBlockItem.java b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/PortableGridBlockItem.java index ac158c0ed..3dd2aa067 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/PortableGridBlockItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/PortableGridBlockItem.java @@ -7,28 +7,23 @@ import com.refinedmods.refinedstorage.apiimpl.network.grid.factory.PortableGridG import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.item.WirelessGridItem; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemUseContext; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; import javax.annotation.Nullable; import java.util.List; public class PortableGridBlockItem extends EnergyBlockItem { - public enum Type { - NORMAL, - CREATIVE - } - private final Type type; public PortableGridBlockItem(Type type) { @@ -47,27 +42,27 @@ public class PortableGridBlockItem extends EnergyBlockItem { } @Override - public ActionResult use(World world, PlayerEntity player, Hand hand) { + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { ItemStack stack = player.getItemInHand(hand); if (!world.isClientSide) { - API.instance().getGridManager().openGrid(PortableGridGridFactory.ID, (ServerPlayerEntity) player, stack, PlayerSlot.getSlotForHand(player, hand)); + API.instance().getGridManager().openGrid(PortableGridGridFactory.ID, (ServerPlayer) player, stack, PlayerSlot.getSlotForHand(player, hand)); } - return ActionResult.success(stack); + return InteractionResultHolder.success(stack); } @Override - public void appendHoverText(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { super.appendHoverText(stack, world, tooltip, flag); - tooltip.add(new TranslationTextComponent("block.refinedstorage.portable_grid.tooltip").setStyle(Styles.GRAY)); + tooltip.add(new TranslatableComponent("block.refinedstorage.portable_grid.tooltip").setStyle(Styles.GRAY)); } @Override - public ActionResultType useOn(ItemUseContext context) { + public InteractionResult useOn(UseOnContext context) { if (context.getPlayer() == null) { - return ActionResultType.FAIL; + return InteractionResult.FAIL; } //Place @@ -78,14 +73,14 @@ public class PortableGridBlockItem extends EnergyBlockItem { ItemStack stack = context.getPlayer().getItemInHand(context.getHand()); if (!context.getLevel().isClientSide) { - API.instance().getGridManager().openGrid(PortableGridGridFactory.ID, (ServerPlayerEntity) context.getPlayer(), stack, PlayerSlot.getSlotForHand(context.getPlayer(), context.getHand())); + API.instance().getGridManager().openGrid(PortableGridGridFactory.ID, (ServerPlayer) context.getPlayer(), stack, PlayerSlot.getSlotForHand(context.getPlayer(), context.getHand())); } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } @Override - public int getEntityLifespan(ItemStack stack, World world) { + public int getEntityLifespan(ItemStack stack, Level world) { return Integer.MAX_VALUE; } @@ -103,4 +98,9 @@ public class PortableGridBlockItem extends EnergyBlockItem { return super.shouldCauseReequipAnimation(oldStack, newStack, slotChanged); } + + public enum Type { + NORMAL, + CREATIVE + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/StorageBlockItem.java b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/StorageBlockItem.java index 9837e7a68..0a384c1a0 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/blockitem/StorageBlockItem.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/blockitem/StorageBlockItem.java @@ -10,19 +10,19 @@ import com.refinedmods.refinedstorage.apiimpl.storage.ItemStorageType; import com.refinedmods.refinedstorage.block.StorageBlock; import com.refinedmods.refinedstorage.item.StoragePartItem; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.Containers; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; import javax.annotation.Nullable; import java.util.List; @@ -38,7 +38,7 @@ public class StorageBlockItem extends BaseBlockItem { } @Override - public void appendHoverText(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { super.appendHoverText(stack, world, tooltip, flag); if (isValid(stack)) { @@ -49,20 +49,20 @@ public class StorageBlockItem extends BaseBlockItem { StorageDiskSyncData data = API.instance().getStorageDiskSync().getData(id); if (data != null) { if (data.getCapacity() == -1) { - tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored())).setStyle(Styles.GRAY)); + tooltip.add(new TranslatableComponent("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored())).setStyle(Styles.GRAY)); } else { - tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity())).setStyle(Styles.GRAY)); + tooltip.add(new TranslatableComponent("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity())).setStyle(Styles.GRAY)); } } if (flag.isAdvanced()) { - tooltip.add(new StringTextComponent(id.toString()).setStyle(Styles.GRAY)); + tooltip.add(new TextComponent(id.toString()).setStyle(Styles.GRAY)); } } } @Override - public ActionResult use(World world, PlayerEntity player, Hand hand) { + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { ItemStack storageStack = player.getItemInHand(hand); int count = storageStack.getCount(); @@ -72,7 +72,7 @@ public class StorageBlockItem extends BaseBlockItem { if (isValid(storageStack)) { diskId = getId(storageStack); - disk = API.instance().getStorageDiskManager((ServerWorld) world).get(diskId); + disk = API.instance().getStorageDiskManager((ServerLevel) world).get(diskId); } // Newly created storages won't have a tag yet, so allow invalid disks as well. @@ -80,26 +80,26 @@ public class StorageBlockItem extends BaseBlockItem { ItemStack storagePart = new ItemStack(StoragePartItem.getByType(type)); storagePart.setCount(count); - if (!player.inventory.add(storagePart.copy())) { - InventoryHelper.dropItemStack(world, player.getX(), player.getY(), player.getZ(), storagePart); + if (!player.getInventory().add(storagePart.copy())) { + Containers.dropItemStack(world, player.getX(), player.getY(), player.getZ(), storagePart); } if (disk != null) { - API.instance().getStorageDiskManager((ServerWorld) world).remove(diskId); - API.instance().getStorageDiskManager((ServerWorld) world).markForSaving(); + API.instance().getStorageDiskManager((ServerLevel) world).remove(diskId); + API.instance().getStorageDiskManager((ServerLevel) world).markForSaving(); } ItemStack stack = new ItemStack(RSBlocks.MACHINE_CASING.get()); stack.setCount(count); - return new ActionResult<>(ActionResultType.SUCCESS, stack); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, stack); } } - return new ActionResult<>(ActionResultType.PASS, storageStack); + return new InteractionResultHolder<>(InteractionResult.PASS, storageStack); } @Override - public int getEntityLifespan(ItemStack stack, World world) { + public int getEntityLifespan(ItemStack stack, Level world) { return Integer.MAX_VALUE; } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/capabilityprovider/EnergyCapabilityProvider.java b/src/main/java/com/refinedmods/refinedstorage/item/capabilityprovider/EnergyCapabilityProvider.java index 167f4d273..ed4253124 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/capabilityprovider/EnergyCapabilityProvider.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/capabilityprovider/EnergyCapabilityProvider.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.item.capabilityprovider; import com.refinedmods.refinedstorage.energy.ItemEnergyStorage; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Direction; +import net.minecraft.core.Direction; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.ICapabilityProvider; import net.minecraftforge.common.util.LazyOptional; diff --git a/src/main/java/com/refinedmods/refinedstorage/item/group/MainItemGroup.java b/src/main/java/com/refinedmods/refinedstorage/item/group/MainItemGroup.java index 33d639a79..778e4f70a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/group/MainItemGroup.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/group/MainItemGroup.java @@ -3,10 +3,10 @@ package com.refinedmods.refinedstorage.item.group; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.RSBlocks; import com.refinedmods.refinedstorage.util.ColorMap; -import net.minecraft.item.ItemGroup; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; -public class MainItemGroup extends ItemGroup { +public class MainItemGroup extends CreativeModeTab { public MainItemGroup() { super(RS.ID); } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/property/ControllerItemPropertyGetter.java b/src/main/java/com/refinedmods/refinedstorage/item/property/ControllerItemPropertyGetter.java index 9dafcf6a6..5d9a36398 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/property/ControllerItemPropertyGetter.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/property/ControllerItemPropertyGetter.java @@ -2,23 +2,22 @@ package com.refinedmods.refinedstorage.item.property; import com.refinedmods.refinedstorage.apiimpl.network.Network; import com.refinedmods.refinedstorage.block.ControllerBlock; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.IItemPropertyGetter; -import net.minecraft.item.ItemStack; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.renderer.item.ItemPropertyFunction; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; import javax.annotation.Nullable; -public class ControllerItemPropertyGetter implements IItemPropertyGetter { +public class ControllerItemPropertyGetter implements ItemPropertyFunction { @Override - public float call(ItemStack stack, @Nullable ClientWorld world, @Nullable LivingEntity entity) { + public float call(ItemStack stack, @Nullable ClientLevel world, @Nullable LivingEntity entity, int p) { IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY).orElse(null); if (storage != null) { return Network.getEnergyType(storage.getEnergyStored(), storage.getMaxEnergyStored()).ordinal(); } - return ControllerBlock.EnergyType.OFF.ordinal(); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/property/NetworkItemPropertyGetter.java b/src/main/java/com/refinedmods/refinedstorage/item/property/NetworkItemPropertyGetter.java index 56b8720de..7bd59efd9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/property/NetworkItemPropertyGetter.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/property/NetworkItemPropertyGetter.java @@ -1,16 +1,16 @@ package com.refinedmods.refinedstorage.item.property; import com.refinedmods.refinedstorage.item.NetworkItem; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.IItemPropertyGetter; -import net.minecraft.item.ItemStack; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.renderer.item.ItemPropertyFunction; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nullable; -public class NetworkItemPropertyGetter implements IItemPropertyGetter { +public class NetworkItemPropertyGetter implements ItemPropertyFunction { @Override - public float call(ItemStack stack, @Nullable ClientWorld world, @Nullable LivingEntity entity) { + public float call(ItemStack stack, @Nullable ClientLevel world, @Nullable LivingEntity entity, int p) { return entity != null && NetworkItem.isValid(stack) ? 1.0f : 0.0f; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/item/property/SecurityCardItemPropertyGetter.java b/src/main/java/com/refinedmods/refinedstorage/item/property/SecurityCardItemPropertyGetter.java index 9c8977f89..b47c19a53 100644 --- a/src/main/java/com/refinedmods/refinedstorage/item/property/SecurityCardItemPropertyGetter.java +++ b/src/main/java/com/refinedmods/refinedstorage/item/property/SecurityCardItemPropertyGetter.java @@ -1,16 +1,16 @@ package com.refinedmods.refinedstorage.item.property; import com.refinedmods.refinedstorage.item.SecurityCardItem; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.IItemPropertyGetter; -import net.minecraft.item.ItemStack; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.renderer.item.ItemPropertyFunction; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nullable; -public class SecurityCardItemPropertyGetter implements IItemPropertyGetter { +public class SecurityCardItemPropertyGetter implements ItemPropertyFunction { @Override - public float call(ItemStack stack, @Nullable ClientWorld world, @Nullable LivingEntity entity) { + public float call(ItemStack stack, @Nullable ClientLevel world, @Nullable LivingEntity entity, int p) { return entity != null && SecurityCardItem.isValid(stack) ? 1.0f : 0.0f; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/loottable/ControllerLootFunction.java b/src/main/java/com/refinedmods/refinedstorage/loottable/ControllerLootFunction.java index 2151a9d5b..ed685e0bc 100644 --- a/src/main/java/com/refinedmods/refinedstorage/loottable/ControllerLootFunction.java +++ b/src/main/java/com/refinedmods/refinedstorage/loottable/ControllerLootFunction.java @@ -5,23 +5,27 @@ import com.google.gson.JsonObject; import com.refinedmods.refinedstorage.RSLootFunctions; import com.refinedmods.refinedstorage.api.network.INetwork; import com.refinedmods.refinedstorage.tile.ControllerTile; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.LootContext; -import net.minecraft.loot.LootFunction; -import net.minecraft.loot.LootFunctionType; -import net.minecraft.loot.LootParameters; -import net.minecraft.loot.conditions.ILootCondition; -import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.functions.LootItemConditionalFunction; +import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; import net.minecraftforge.energy.CapabilityEnergy; -public class ControllerLootFunction extends LootFunction { - protected ControllerLootFunction(ILootCondition[] conditions) { +public class ControllerLootFunction extends LootItemConditionalFunction { + protected ControllerLootFunction(LootItemCondition[] conditions) { super(conditions); } + public static LootItemConditionalFunction.Builder builder() { + return simpleBuilder(ControllerLootFunction::new); + } + @Override protected ItemStack run(ItemStack itemStack, LootContext lootContext) { - TileEntity tile = lootContext.getParamOrNull(LootParameters.BLOCK_ENTITY); + BlockEntity tile = lootContext.getParamOrNull(LootContextParams.BLOCK_ENTITY); if (tile instanceof ControllerTile) { INetwork network = ((ControllerTile) tile).getRemovedNetwork() == null ? ((ControllerTile) tile).getNetwork() : ((ControllerTile) tile).getRemovedNetwork(); @@ -33,17 +37,13 @@ public class ControllerLootFunction extends LootFunction { } @Override - public LootFunctionType getType() { + public LootItemFunctionType getType() { return RSLootFunctions.getController(); } - public static LootFunction.Builder builder() { - return simpleBuilder(ControllerLootFunction::new); - } - - public static class Serializer extends LootFunction.Serializer { + public static class Serializer extends LootItemConditionalFunction.Serializer { @Override - public ControllerLootFunction deserialize(JsonObject object, JsonDeserializationContext deserializationContext, ILootCondition[] conditions) { + public ControllerLootFunction deserialize(JsonObject object, JsonDeserializationContext deserializationContext, LootItemCondition[] conditions) { return new ControllerLootFunction(conditions); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/loottable/CrafterLootFunction.java b/src/main/java/com/refinedmods/refinedstorage/loottable/CrafterLootFunction.java index 8fc468016..603fe9b10 100644 --- a/src/main/java/com/refinedmods/refinedstorage/loottable/CrafterLootFunction.java +++ b/src/main/java/com/refinedmods/refinedstorage/loottable/CrafterLootFunction.java @@ -5,22 +5,26 @@ import com.google.gson.JsonObject; import com.refinedmods.refinedstorage.RSLootFunctions; import com.refinedmods.refinedstorage.apiimpl.network.node.CrafterNetworkNode; import com.refinedmods.refinedstorage.tile.CrafterTile; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.LootContext; -import net.minecraft.loot.LootFunction; -import net.minecraft.loot.LootFunctionType; -import net.minecraft.loot.LootParameters; -import net.minecraft.loot.conditions.ILootCondition; -import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.functions.LootItemConditionalFunction; +import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; -public class CrafterLootFunction extends LootFunction { - protected CrafterLootFunction(ILootCondition[] conditions) { +public class CrafterLootFunction extends LootItemConditionalFunction { + protected CrafterLootFunction(LootItemCondition[] conditions) { super(conditions); } + public static LootItemConditionalFunction.Builder builder() { + return simpleBuilder(CrafterLootFunction::new); + } + @Override public ItemStack run(ItemStack stack, LootContext lootContext) { - TileEntity tile = lootContext.getParamOrNull(LootParameters.BLOCK_ENTITY); + BlockEntity tile = lootContext.getParamOrNull(LootContextParams.BLOCK_ENTITY); CrafterNetworkNode removedNode = ((CrafterTile) tile).getRemovedNode(); if (removedNode == null) { @@ -35,17 +39,13 @@ public class CrafterLootFunction extends LootFunction { } @Override - public LootFunctionType getType() { + public LootItemFunctionType getType() { return RSLootFunctions.getCrafter(); } - public static LootFunction.Builder builder() { - return simpleBuilder(CrafterLootFunction::new); - } - - public static class Serializer extends LootFunction.Serializer { + public static class Serializer extends LootItemConditionalFunction.Serializer { @Override - public CrafterLootFunction deserialize(JsonObject object, JsonDeserializationContext deserializationContext, ILootCondition[] conditions) { + public CrafterLootFunction deserialize(JsonObject object, JsonDeserializationContext deserializationContext, LootItemCondition[] conditions) { return new CrafterLootFunction(conditions); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/loottable/PortableGridBlockLootFunction.java b/src/main/java/com/refinedmods/refinedstorage/loottable/PortableGridBlockLootFunction.java index 58b1cab84..9b7473e96 100644 --- a/src/main/java/com/refinedmods/refinedstorage/loottable/PortableGridBlockLootFunction.java +++ b/src/main/java/com/refinedmods/refinedstorage/loottable/PortableGridBlockLootFunction.java @@ -4,22 +4,22 @@ import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonObject; import com.refinedmods.refinedstorage.RSLootFunctions; import com.refinedmods.refinedstorage.tile.grid.portable.PortableGridTile; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.LootContext; -import net.minecraft.loot.LootFunction; -import net.minecraft.loot.LootFunctionType; -import net.minecraft.loot.LootParameters; -import net.minecraft.loot.conditions.ILootCondition; -import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.functions.LootItemConditionalFunction; +import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; -public class PortableGridBlockLootFunction extends LootFunction { - protected PortableGridBlockLootFunction(ILootCondition[] conditions) { +public class PortableGridBlockLootFunction extends LootItemConditionalFunction { + protected PortableGridBlockLootFunction(LootItemCondition[] conditions) { super(conditions); } @Override public ItemStack run(ItemStack stack, LootContext lootContext) { - TileEntity tile = lootContext.getParamOrNull(LootParameters.BLOCK_ENTITY); + BlockEntity tile = lootContext.getParamOrNull(LootContextParams.BLOCK_ENTITY); if (tile instanceof PortableGridTile) { ((PortableGridTile) tile).applyDataFromTileToItem(stack); @@ -29,13 +29,13 @@ public class PortableGridBlockLootFunction extends LootFunction { } @Override - public LootFunctionType getType() { + public LootItemFunctionType getType() { return RSLootFunctions.getPortableGrid(); } - public static class Serializer extends LootFunction.Serializer { + public static class Serializer extends LootItemConditionalFunction.Serializer { @Override - public PortableGridBlockLootFunction deserialize(JsonObject object, JsonDeserializationContext deserializationContext, ILootCondition[] conditions) { + public PortableGridBlockLootFunction deserialize(JsonObject object, JsonDeserializationContext deserializationContext, LootItemCondition[] conditions) { return new PortableGridBlockLootFunction(conditions); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/loottable/StorageBlockLootFunction.java b/src/main/java/com/refinedmods/refinedstorage/loottable/StorageBlockLootFunction.java index f231ca62b..a8ce18234 100644 --- a/src/main/java/com/refinedmods/refinedstorage/loottable/StorageBlockLootFunction.java +++ b/src/main/java/com/refinedmods/refinedstorage/loottable/StorageBlockLootFunction.java @@ -7,23 +7,23 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.storage.FluidStorageN import com.refinedmods.refinedstorage.apiimpl.network.node.storage.StorageNetworkNode; import com.refinedmods.refinedstorage.tile.FluidStorageTile; import com.refinedmods.refinedstorage.tile.StorageTile; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.LootContext; -import net.minecraft.loot.LootFunction; -import net.minecraft.loot.LootFunctionType; -import net.minecraft.loot.LootParameters; -import net.minecraft.loot.conditions.ILootCondition; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.tileentity.TileEntity; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.functions.LootItemConditionalFunction; +import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; -public class StorageBlockLootFunction extends LootFunction { - protected StorageBlockLootFunction(ILootCondition[] conditions) { +public class StorageBlockLootFunction extends LootItemConditionalFunction { + protected StorageBlockLootFunction(LootItemCondition[] conditions) { super(conditions); } @Override public ItemStack run(ItemStack stack, LootContext lootContext) { - TileEntity tile = lootContext.getParamOrNull(LootParameters.BLOCK_ENTITY); + BlockEntity tile = lootContext.getParamOrNull(LootContextParams.BLOCK_ENTITY); // This code needs to work without the node being removed as well. // For example: the Destructor calls getDrops before the node has been removed. @@ -34,7 +34,7 @@ public class StorageBlockLootFunction extends LootFunction { removedNode = ((StorageTile) tile).getNode(); } - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); stack.getTag().putUUID(StorageNetworkNode.NBT_ID, removedNode.getStorageId()); } else if (tile instanceof FluidStorageTile) { FluidStorageNetworkNode removedNode = ((FluidStorageTile) tile).getRemovedNode(); @@ -42,7 +42,7 @@ public class StorageBlockLootFunction extends LootFunction { removedNode = ((FluidStorageTile) tile).getNode(); } - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); stack.getTag().putUUID(FluidStorageNetworkNode.NBT_ID, removedNode.getStorageId()); } @@ -50,13 +50,13 @@ public class StorageBlockLootFunction extends LootFunction { } @Override - public LootFunctionType getType() { + public LootItemFunctionType getType() { return RSLootFunctions.getStorageBlock(); } - public static class Serializer extends LootFunction.Serializer { + public static class Serializer extends LootItemConditionalFunction.Serializer { @Override - public StorageBlockLootFunction deserialize(JsonObject object, JsonDeserializationContext deserializationContext, ILootCondition[] conditions) { + public StorageBlockLootFunction deserialize(JsonObject object, JsonDeserializationContext deserializationContext, LootItemCondition[] conditions) { return new StorageBlockLootFunction(conditions); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/network/ClientProxy.java b/src/main/java/com/refinedmods/refinedstorage/network/ClientProxy.java index 06ed522f3..475393b97 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/ClientProxy.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/ClientProxy.java @@ -7,8 +7,8 @@ import com.refinedmods.refinedstorage.screen.CraftingMonitorScreen; import com.refinedmods.refinedstorage.screen.grid.CraftingPreviewScreen; import com.refinedmods.refinedstorage.screen.grid.CraftingSettingsScreen; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.TranslatableComponent; public class ClientProxy { private ClientProxy() { @@ -27,7 +27,7 @@ public class ClientProxy { message.getId(), message.getQuantity(), message.isFluids(), - new TranslationTextComponent("gui.refinedstorage.crafting_preview") + new TranslatableComponent("gui.refinedstorage.crafting_preview") )); } diff --git a/src/main/java/com/refinedmods/refinedstorage/network/FilterUpdateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/FilterUpdateMessage.java index 34b250871..250cc9c26 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/FilterUpdateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/FilterUpdateMessage.java @@ -3,9 +3,9 @@ package com.refinedmods.refinedstorage.network; import com.refinedmods.refinedstorage.container.FilterContainer; import com.refinedmods.refinedstorage.item.FilterItem; import com.refinedmods.refinedstorage.util.PacketBufferUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.player.Player; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; @@ -24,7 +24,7 @@ public class FilterUpdateMessage { this.type = type; } - public static FilterUpdateMessage decode(PacketBuffer buf) { + public static FilterUpdateMessage decode(FriendlyByteBuf buf) { return new FilterUpdateMessage( buf.readInt(), buf.readInt(), @@ -34,7 +34,7 @@ public class FilterUpdateMessage { ); } - public static void encode(FilterUpdateMessage message, PacketBuffer buf) { + public static void encode(FilterUpdateMessage message, FriendlyByteBuf buf) { buf.writeInt(message.compare); buf.writeInt(message.mode); buf.writeBoolean(message.modFilter); @@ -43,7 +43,7 @@ public class FilterUpdateMessage { } public static void handle(FilterUpdateMessage message, Supplier ctx) { - PlayerEntity player = ctx.get().getSender(); + Player player = ctx.get().getSender(); if (player != null && player.containerMenu instanceof FilterContainer) { ctx.get().enqueueWork(() -> { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/FluidFilterSlotUpdateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/FluidFilterSlotUpdateMessage.java index 187547d12..2ed10b336 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/FluidFilterSlotUpdateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/FluidFilterSlotUpdateMessage.java @@ -2,10 +2,10 @@ package com.refinedmods.refinedstorage.network; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; import com.refinedmods.refinedstorage.screen.BaseScreen; -import net.minecraft.inventory.container.Slot; -import net.minecraft.network.PacketBuffer; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.inventory.Slot; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; @@ -18,12 +18,12 @@ public class FluidFilterSlotUpdateMessage { this.stack = stack; } - public static void encode(FluidFilterSlotUpdateMessage message, PacketBuffer buf) { + public static void encode(FluidFilterSlotUpdateMessage message, FriendlyByteBuf buf) { buf.writeInt(message.containerSlot); message.stack.writeToPacket(buf); } - public static FluidFilterSlotUpdateMessage decode(PacketBuffer buf) { + public static FluidFilterSlotUpdateMessage decode(FriendlyByteBuf buf) { return new FluidFilterSlotUpdateMessage(buf.readInt(), FluidStack.readFromPacket(buf)); } diff --git a/src/main/java/com/refinedmods/refinedstorage/network/NetworkHandler.java b/src/main/java/com/refinedmods/refinedstorage/network/NetworkHandler.java index ca9b0398c..b23dc95b3 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/NetworkHandler.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/NetworkHandler.java @@ -9,12 +9,12 @@ import com.refinedmods.refinedstorage.network.disk.StorageDiskSizeResponseMessag import com.refinedmods.refinedstorage.network.grid.*; import com.refinedmods.refinedstorage.network.tiledata.TileDataParameterMessage; import com.refinedmods.refinedstorage.network.tiledata.TileDataParameterUpdateMessage; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.util.ResourceLocation; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.common.util.FakePlayer; -import net.minecraftforge.fml.network.NetworkRegistry; -import net.minecraftforge.fml.network.PacketDistributor; -import net.minecraftforge.fml.network.simple.SimpleChannel; +import net.minecraftforge.network.NetworkRegistry; +import net.minecraftforge.network.PacketDistributor; +import net.minecraftforge.network.simple.SimpleChannel; public class NetworkHandler { private final String protocolVersion = Integer.toString(1); @@ -74,7 +74,7 @@ public class NetworkHandler { handler.registerMessage(id++, SplitPacketMessage.class, SplitPacketMessage::encode, SplitPacketMessage::decode, SplitPacketMessage::handle); } - public void sendTo(ServerPlayerEntity player, Object message) { + public void sendTo(ServerPlayer player, Object message) { if (!(player instanceof FakePlayer)) { if (splitter.shouldMessageBeSplit(message.getClass())) { splitter.sendToPlayer(player, message); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/OpenNetworkItemMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/OpenNetworkItemMessage.java index 63d31d9a5..e051fff9c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/OpenNetworkItemMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/OpenNetworkItemMessage.java @@ -5,10 +5,10 @@ import com.refinedmods.refinedstorage.apiimpl.network.grid.factory.PortableGridG import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.item.NetworkItem; import com.refinedmods.refinedstorage.item.blockitem.PortableGridBlockItem; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; @@ -19,16 +19,16 @@ public class OpenNetworkItemMessage { this.slot = slot; } - public static OpenNetworkItemMessage decode(PacketBuffer buf) { + public static OpenNetworkItemMessage decode(FriendlyByteBuf buf) { return new OpenNetworkItemMessage(new PlayerSlot(buf)); } - public static void encode(OpenNetworkItemMessage message, PacketBuffer buf) { + public static void encode(OpenNetworkItemMessage message, FriendlyByteBuf buf) { message.slot.writePlayerSlot(buf); } public static void handle(OpenNetworkItemMessage message, Supplier ctx) { - ServerPlayerEntity player = ctx.get().getSender(); + ServerPlayer player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/PacketSplitter.java b/src/main/java/com/refinedmods/refinedstorage/network/PacketSplitter.java index 26c6c32b7..768609fbd 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/PacketSplitter.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/PacketSplitter.java @@ -2,12 +2,12 @@ package com.refinedmods.refinedstorage.network; import com.google.common.primitives.Bytes; import io.netty.buffer.Unpooled; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.network.NetworkEvent; -import net.minecraftforge.fml.network.PacketDistributor; -import net.minecraftforge.fml.network.simple.SimpleChannel; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; +import net.minecraftforge.network.NetworkEvent; +import net.minecraftforge.network.PacketDistributor; +import net.minecraftforge.network.simple.SimpleChannel; import org.apache.commons.lang3.tuple.Pair; import org.apache.logging.log4j.LogManager; @@ -19,32 +19,30 @@ import java.util.function.Supplier; public class PacketSplitter { private final static int MAX_PACKET_SIZE = 943718; + private static final Map> PACKAGE_CACHE = new HashMap<>(); - private final ResourceLocation CHANNEL_ID; - private final SimpleChannel CHANNEL; - - private static final Map> packageCache = new HashMap<>(); - private final Map messageTargets = new HashMap<>(); + private final ResourceLocation channelId; + private final SimpleChannel channel; + private final Map messageTargets = new HashMap<>(); private final Map packetMaximums = new HashMap<>(); private final Set> messagesToSplit = new HashSet<>(); - - private int comId = 0; private final int maxNumberOfMessages; - private int ID; + private int comId = 0; + private int id; - public PacketSplitter(int maxNumberOfMessages, SimpleChannel CHANNEL, ResourceLocation CHANNEL_ID) { + public PacketSplitter(int maxNumberOfMessages, SimpleChannel channel, ResourceLocation CHANNEL_ID) { this.maxNumberOfMessages = maxNumberOfMessages; - this.CHANNEL = CHANNEL; - this.CHANNEL_ID = CHANNEL_ID; + this.channel = channel; + this.channelId = CHANNEL_ID; } public boolean shouldMessageBeSplit(Class clazz) { return messagesToSplit.contains(clazz); } - public void sendToPlayer(ServerPlayerEntity player, Object message) { - if (ID == 0) ID++; // in case we wrapped around, 0 is reserved for server - int id = ID++; + public void sendToPlayer(ServerPlayer player, Object message) { + if (id == 0) id++; // in case we wrapped around, 0 is reserved for server + int id = this.id++; messageTargets.put(id, player); sendPacket(message, id, PacketDistributor.PLAYER.with(() -> player)); } @@ -56,27 +54,27 @@ public class PacketSplitter { //@Volatile mostly copied from SimpleChannel private void sendPacket(Object Message, int id, PacketDistributor.PacketTarget target) { - final PacketBuffer bufIn = new PacketBuffer(Unpooled.buffer()); + final FriendlyByteBuf bufIn = new FriendlyByteBuf(Unpooled.buffer()); //write the message id to be able to figure out where the packet is supposed to go in the wrapper bufIn.writeInt(id); - int index = CHANNEL.encodeMessage(Message, bufIn); - target.send(target.getDirection().buildPacket(Pair.of(bufIn, index), CHANNEL_ID).getThis()); + int index = channel.encodeMessage(Message, bufIn); + target.send(target.getDirection().buildPacket(Pair.of(bufIn, index), channelId).getThis()); } - public void registerMessage(int index, Class messageType, BiConsumer encoder, Function decoder, BiConsumer> messageConsumer) { + public void registerMessage(int index, Class messageType, BiConsumer encoder, Function decoder, BiConsumer> messageConsumer) { registerMessage(index, maxNumberOfMessages, messageType, encoder, decoder, messageConsumer); } - public void registerMessage(int index, int maxNumberOfMessages, Class messageType, BiConsumer encoder, Function decoder, BiConsumer> messageConsumer) { + public void registerMessage(int index, int maxNumberOfMessages, Class messageType, BiConsumer encoder, Function decoder, BiConsumer> messageConsumer) { packetMaximums.put(index, maxNumberOfMessages); messagesToSplit.add(messageType); - BiConsumer wrappedEncoder = (msg, buffer) -> { + BiConsumer wrappedEncoder = (msg, buffer) -> { int id = buffer.readInt(); buffer.discardReadBytes(); - ServerPlayerEntity player = messageTargets.get(id); + ServerPlayer player = messageTargets.get(id); messageTargets.remove(id); //write a zero for the number of packets in case the packet does not need to be split @@ -85,10 +83,10 @@ public class PacketSplitter { createSplittingConsumer(player).accept(msg, buffer); }; - CHANNEL.registerMessage(index, messageType, wrappedEncoder, createPacketCombiner().andThen(decoder), messageConsumer); + channel.registerMessage(index, messageType, wrappedEncoder, createPacketCombiner().andThen(decoder), messageConsumer); } - private BiConsumer createSplittingConsumer(ServerPlayerEntity playerEntity) { + private BiConsumer createSplittingConsumer(ServerPlayer playerEntity) { return (MSG, buf) -> { if (buf.writerIndex() < MAX_PACKET_SIZE) { @@ -129,9 +127,9 @@ public class PacketSplitter { SplitPacketMessage splitPacketMessage = new SplitPacketMessage(comId, packetIndex++, subPacketData); if (playerEntity == null) { - CHANNEL.send(PacketDistributor.SERVER.noArg(), splitPacketMessage); + channel.send(PacketDistributor.SERVER.noArg(), splitPacketMessage); } else { - CHANNEL.send(PacketDistributor.PLAYER.with(() -> playerEntity), splitPacketMessage); + channel.send(PacketDistributor.PLAYER.with(() -> playerEntity), splitPacketMessage); } } @@ -139,7 +137,7 @@ public class PacketSplitter { currentIndex += sliceSize; if (packetIndex > maximumPackets) { - LogManager.getLogger().error("Failure Splitting Packets on Channel \"" + CHANNEL_ID + "\"." + " with " + MSG.getClass() + ". " + + LogManager.getLogger().error("Failure Splitting Packets on Channel \"" + channelId + "\"." + " with " + MSG.getClass() + ". " + " Number of Packets sent " + (packetIndex - 1) + ", expected number of Packets " + expectedPackets + ", maximum number of packets for a message of this type " + packetMaximums.get(packetId)); failure = true; break; @@ -162,7 +160,7 @@ public class PacketSplitter { }; } - private Function createPacketCombiner() { + private Function createPacketCombiner() { return (buf) -> { int size = buf.readShort(); @@ -171,12 +169,12 @@ public class PacketSplitter { int comId = buf.readInt(); - Map partsMap = packageCache.get(comId); + Map partsMap = PACKAGE_CACHE.get(comId); if (partsMap == null || partsMap.size() != size - 1) { int partSize = partsMap == null ? 0 : partsMap.size(); int id = buf.readUnsignedByte(); int max = packetMaximums.get(id) == null ? 0 : packetMaximums.get(id); - throw new PacketSplittingException(CHANNEL_ID, partSize, size, max, id); + throw new PacketSplittingException(channelId, partSize, size, max, id); } //Add data that came from this packet @@ -189,19 +187,19 @@ public class PacketSplitter { .map(Map.Entry::getValue) .reduce(new byte[0], Bytes::concat); - PacketBuffer buffer = new PacketBuffer(Unpooled.wrappedBuffer(packetData)); + FriendlyByteBuf buffer = new FriendlyByteBuf(Unpooled.wrappedBuffer(packetData)); //remove data from cache - packageCache.remove(comId); + PACKAGE_CACHE.remove(comId); return buffer; }; } public void addPackagePart(int communicationId, int packetIndex, byte[] payload) { //Sync on the message cache since this is still on the Netty thread. - synchronized (PacketSplitter.packageCache) { - PacketSplitter.packageCache.computeIfAbsent(communicationId, (id) -> new ConcurrentHashMap<>()); - PacketSplitter.packageCache.get(communicationId).put(packetIndex, payload); + synchronized (PacketSplitter.PACKAGE_CACHE) { + PacketSplitter.PACKAGE_CACHE.computeIfAbsent(communicationId, (id) -> new ConcurrentHashMap<>()); + PacketSplitter.PACKAGE_CACHE.get(communicationId).put(packetIndex, payload); } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/network/SecurityManagerUpdateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/SecurityManagerUpdateMessage.java index 774a9e898..ae89bb50b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/SecurityManagerUpdateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/SecurityManagerUpdateMessage.java @@ -2,11 +2,11 @@ package com.refinedmods.refinedstorage.network; import com.refinedmods.refinedstorage.api.network.security.Permission; import com.refinedmods.refinedstorage.tile.SecurityManagerTile; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.network.PacketBuffer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.core.BlockPos; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; @@ -21,7 +21,7 @@ public class SecurityManagerUpdateMessage { this.state = state; } - public static SecurityManagerUpdateMessage decode(PacketBuffer buf) { + public static SecurityManagerUpdateMessage decode(FriendlyByteBuf buf) { BlockPos pos = buf.readBlockPos(); int id = buf.readInt(); @@ -39,18 +39,18 @@ public class SecurityManagerUpdateMessage { return new SecurityManagerUpdateMessage(pos, permission, state); } - public static void encode(SecurityManagerUpdateMessage message, PacketBuffer buf) { + public static void encode(SecurityManagerUpdateMessage message, FriendlyByteBuf buf) { buf.writeBlockPos(message.pos); buf.writeInt(message.permission.getId()); buf.writeBoolean(message.state); } public static void handle(SecurityManagerUpdateMessage message, Supplier ctx) { - PlayerEntity player = ctx.get().getSender(); + Player player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { - TileEntity tile = player.getCommandSenderWorld().getBlockEntity(message.pos); + BlockEntity tile = player.getCommandSenderWorld().getBlockEntity(message.pos); if (tile instanceof SecurityManagerTile) { ((SecurityManagerTile) tile).getNode().updatePermission(message.permission, message.state); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/SetFilterSlotMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/SetFilterSlotMessage.java index b54099614..7ec8d3011 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/SetFilterSlotMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/SetFilterSlotMessage.java @@ -5,13 +5,13 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.GridNetworkNode; import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.container.slot.filter.FilterSlot; import com.refinedmods.refinedstorage.container.slot.legacy.LegacyFilterSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.network.NetworkEvent; import java.util.HashSet; import java.util.Set; @@ -26,22 +26,22 @@ public class SetFilterSlotMessage { this.stack = stack; } - public static SetFilterSlotMessage decode(PacketBuffer buf) { + public static SetFilterSlotMessage decode(FriendlyByteBuf buf) { return new SetFilterSlotMessage(buf.readInt(), buf.readItem()); } - public static void encode(SetFilterSlotMessage message, PacketBuffer buf) { + public static void encode(SetFilterSlotMessage message, FriendlyByteBuf buf) { buf.writeInt(message.containerSlot); buf.writeItem(message.stack); } public static void handle(SetFilterSlotMessage message, Supplier ctx) { if (!message.stack.isEmpty() && message.stack.getCount() <= message.stack.getMaxStackSize()) { - PlayerEntity player = ctx.get().getSender(); + Player player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { - Container container = player.containerMenu; + AbstractContainerMenu container = player.containerMenu; if (container != null && message.containerSlot >= 0 && message.containerSlot < container.slots.size()) { handle(message, container); @@ -53,7 +53,7 @@ public class SetFilterSlotMessage { ctx.get().setPacketHandled(true); } - private static void handle(SetFilterSlotMessage message, Container container) { + private static void handle(SetFilterSlotMessage message, AbstractContainerMenu container) { Slot slot = container.getSlot(message.containerSlot); if (slot instanceof FilterSlot || slot instanceof LegacyFilterSlot) { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/SetFluidFilterSlotMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/SetFluidFilterSlotMessage.java index 36886fb84..041d130fe 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/SetFluidFilterSlotMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/SetFluidFilterSlotMessage.java @@ -4,13 +4,13 @@ import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.apiimpl.network.node.GridNetworkNode; import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.Slot; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.Slot; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent; import java.util.HashSet; import java.util.Set; @@ -25,22 +25,22 @@ public class SetFluidFilterSlotMessage { this.stack = stack; } - public static SetFluidFilterSlotMessage decode(PacketBuffer buf) { + public static SetFluidFilterSlotMessage decode(FriendlyByteBuf buf) { return new SetFluidFilterSlotMessage(buf.readInt(), FluidStack.readFromPacket(buf)); } - public static void encode(SetFluidFilterSlotMessage message, PacketBuffer buf) { + public static void encode(SetFluidFilterSlotMessage message, FriendlyByteBuf buf) { buf.writeInt(message.containerSlot); message.stack.writeToPacket(buf); } public static void handle(SetFluidFilterSlotMessage message, Supplier ctx) { if (!message.stack.isEmpty()) { - PlayerEntity player = ctx.get().getSender(); + Player player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { - Container container = player.containerMenu; + AbstractContainerMenu container = player.containerMenu; if (container != null && message.containerSlot >= 0 && message.containerSlot < container.slots.size()) { handle(message, container); @@ -52,7 +52,7 @@ public class SetFluidFilterSlotMessage { ctx.get().setPacketHandled(true); } - private static void handle(SetFluidFilterSlotMessage message, Container container) { + private static void handle(SetFluidFilterSlotMessage message, AbstractContainerMenu container) { Slot slot = container.getSlot(message.containerSlot); if (slot instanceof FluidFilterSlot) { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/SplitPacketMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/SplitPacketMessage.java index 78a80eca7..0015b66a7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/SplitPacketMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/SplitPacketMessage.java @@ -1,40 +1,38 @@ package com.refinedmods.refinedstorage.network; import com.refinedmods.refinedstorage.RS; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; public class SplitPacketMessage { + /** + * The payload. + */ + private final byte[] payload; /** * Internal communication id. Used to indicate to what wrapped message this belongs to. */ private int communicationId; - /** * The index of the split message in the wrapped message. */ private int packetIndex; - /** - * The payload. - */ - private final byte[] payload; - public SplitPacketMessage(final int communicationId, final int packetIndex, final byte[] payload) { this.communicationId = communicationId; this.packetIndex = packetIndex; this.payload = payload; } - public static void encode(SplitPacketMessage message, PacketBuffer buf) { + public static void encode(SplitPacketMessage message, FriendlyByteBuf buf) { buf.writeVarInt(message.communicationId); buf.writeVarInt(message.packetIndex); buf.writeByteArray(message.payload); } - public static SplitPacketMessage decode(final PacketBuffer buf) { + public static SplitPacketMessage decode(final FriendlyByteBuf buf) { return new SplitPacketMessage(buf.readVarInt(), buf.readVarInt(), buf.readByteArray()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/network/craftingmonitor/CraftingMonitorCancelMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/craftingmonitor/CraftingMonitorCancelMessage.java index 1c4aef84c..28a8ccaf1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/craftingmonitor/CraftingMonitorCancelMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/craftingmonitor/CraftingMonitorCancelMessage.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.network.craftingmonitor; import com.refinedmods.refinedstorage.container.CraftingMonitorContainer; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerPlayer; +import net.minecraftforge.network.NetworkEvent; import javax.annotation.Nullable; import java.util.UUID; @@ -17,11 +17,11 @@ public class CraftingMonitorCancelMessage { this.taskId = taskId; } - public static CraftingMonitorCancelMessage decode(PacketBuffer buf) { + public static CraftingMonitorCancelMessage decode(FriendlyByteBuf buf) { return new CraftingMonitorCancelMessage(buf.readBoolean() ? buf.readUUID() : null); } - public static void encode(CraftingMonitorCancelMessage message, PacketBuffer buf) { + public static void encode(CraftingMonitorCancelMessage message, FriendlyByteBuf buf) { buf.writeBoolean(message.taskId != null); if (message.taskId != null) { @@ -30,7 +30,7 @@ public class CraftingMonitorCancelMessage { } public static void handle(CraftingMonitorCancelMessage message, Supplier ctx) { - ServerPlayerEntity player = ctx.get().getSender(); + ServerPlayer player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/craftingmonitor/CraftingMonitorUpdateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/craftingmonitor/CraftingMonitorUpdateMessage.java index 1adc1b6c4..a9cc0b842 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/craftingmonitor/CraftingMonitorUpdateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/craftingmonitor/CraftingMonitorUpdateMessage.java @@ -9,8 +9,8 @@ import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.network.ClientProxy; import com.refinedmods.refinedstorage.screen.CraftingMonitorScreen; import com.refinedmods.refinedstorage.tile.craftingmonitor.ICraftingMonitor; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraftforge.network.NetworkEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -35,11 +35,7 @@ public class CraftingMonitorUpdateMessage { this.tasks = tasks; } - public List getTasks() { - return tasks; - } - - public static CraftingMonitorUpdateMessage decode(PacketBuffer buf) { + public static CraftingMonitorUpdateMessage decode(FriendlyByteBuf buf) { int size = buf.readInt(); List tasks = new ArrayList<>(); @@ -63,7 +59,7 @@ public class CraftingMonitorUpdateMessage { int elementCount = buf.readInt(); for (int j = 0; j < elementCount; ++j) { - Function factory = API.instance().getCraftingMonitorElementRegistry().get(buf.readResourceLocation()); + Function factory = API.instance().getCraftingMonitorElementRegistry().get(buf.readResourceLocation()); if (factory != null) { elements.add(factory.apply(buf)); @@ -76,7 +72,7 @@ public class CraftingMonitorUpdateMessage { return new CraftingMonitorUpdateMessage(tasks); } - public static void encode(CraftingMonitorUpdateMessage message, PacketBuffer buf) { + public static void encode(CraftingMonitorUpdateMessage message, FriendlyByteBuf buf) { buf.writeInt(message.craftingMonitor.getTasks().size()); for (ICraftingTask task : message.craftingMonitor.getTasks()) { @@ -102,4 +98,8 @@ public class CraftingMonitorUpdateMessage { ctx.get().enqueueWork(() -> ClientProxy.onReceivedCraftingMonitorUpdateMessage(message)); ctx.get().setPacketHandled(true); } + + public List getTasks() { + return tasks; + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/network/craftingmonitor/WirelessCraftingMonitorSettingsUpdateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/craftingmonitor/WirelessCraftingMonitorSettingsUpdateMessage.java index 1dfb69446..c5138c064 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/craftingmonitor/WirelessCraftingMonitorSettingsUpdateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/craftingmonitor/WirelessCraftingMonitorSettingsUpdateMessage.java @@ -2,9 +2,9 @@ package com.refinedmods.refinedstorage.network.craftingmonitor; import com.refinedmods.refinedstorage.container.CraftingMonitorContainer; import com.refinedmods.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerPlayer; +import net.minecraftforge.network.NetworkEvent; import java.util.Optional; import java.util.UUID; @@ -19,7 +19,7 @@ public class WirelessCraftingMonitorSettingsUpdateMessage { this.tabPage = tabPage; } - public static WirelessCraftingMonitorSettingsUpdateMessage decode(PacketBuffer buf) { + public static WirelessCraftingMonitorSettingsUpdateMessage decode(FriendlyByteBuf buf) { Optional tabSelected = Optional.empty(); if (buf.readBoolean()) { @@ -31,7 +31,7 @@ public class WirelessCraftingMonitorSettingsUpdateMessage { return new WirelessCraftingMonitorSettingsUpdateMessage(tabSelected, tabPage); } - public static void encode(WirelessCraftingMonitorSettingsUpdateMessage message, PacketBuffer buf) { + public static void encode(WirelessCraftingMonitorSettingsUpdateMessage message, FriendlyByteBuf buf) { buf.writeBoolean(message.tabSelected.isPresent()); message.tabSelected.ifPresent(buf::writeUUID); @@ -40,7 +40,7 @@ public class WirelessCraftingMonitorSettingsUpdateMessage { } public static void handle(WirelessCraftingMonitorSettingsUpdateMessage message, Supplier ctx) { - ServerPlayerEntity player = ctx.get().getSender(); + ServerPlayer player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/disk/StorageDiskSizeRequestMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/disk/StorageDiskSizeRequestMessage.java index 6cfdaf6cc..f4e92010e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/disk/StorageDiskSizeRequestMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/disk/StorageDiskSizeRequestMessage.java @@ -3,8 +3,8 @@ package com.refinedmods.refinedstorage.network.disk; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.storage.disk.IStorageDisk; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraftforge.network.NetworkEvent; import java.util.UUID; import java.util.function.Supplier; @@ -16,11 +16,11 @@ public class StorageDiskSizeRequestMessage { this.id = id; } - public static StorageDiskSizeRequestMessage decode(PacketBuffer buf) { + public static StorageDiskSizeRequestMessage decode(FriendlyByteBuf buf) { return new StorageDiskSizeRequestMessage(buf.readUUID()); } - public static void encode(StorageDiskSizeRequestMessage message, PacketBuffer buf) { + public static void encode(StorageDiskSizeRequestMessage message, FriendlyByteBuf buf) { buf.writeUUID(message.id); } diff --git a/src/main/java/com/refinedmods/refinedstorage/network/disk/StorageDiskSizeResponseMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/disk/StorageDiskSizeResponseMessage.java index dae9faf17..600ae3547 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/disk/StorageDiskSizeResponseMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/disk/StorageDiskSizeResponseMessage.java @@ -3,8 +3,8 @@ package com.refinedmods.refinedstorage.network.disk; import com.refinedmods.refinedstorage.api.storage.disk.StorageDiskSyncData; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.storage.disk.StorageDiskSync; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraftforge.network.NetworkEvent; import java.util.UUID; import java.util.function.Supplier; @@ -20,13 +20,13 @@ public class StorageDiskSizeResponseMessage { this.capacity = capacity; } - public static void encode(StorageDiskSizeResponseMessage message, PacketBuffer buf) { + public static void encode(StorageDiskSizeResponseMessage message, FriendlyByteBuf buf) { buf.writeUUID(message.id); buf.writeInt(message.stored); buf.writeInt(message.capacity); } - public static StorageDiskSizeResponseMessage decode(PacketBuffer buf) { + public static StorageDiskSizeResponseMessage decode(FriendlyByteBuf buf) { return new StorageDiskSizeResponseMessage(buf.readUUID(), buf.readInt(), buf.readInt()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridClearMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridClearMessage.java index 2abc79e44..5bacea0d4 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridClearMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridClearMessage.java @@ -1,19 +1,19 @@ package com.refinedmods.refinedstorage.network.grid; import com.refinedmods.refinedstorage.container.GridContainer; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.container.Container; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; public class GridClearMessage { public static void handle(Supplier ctx) { - PlayerEntity player = ctx.get().getSender(); + Player player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { - Container container = player.containerMenu; + AbstractContainerMenu container = player.containerMenu; if (container instanceof GridContainer) { ((GridContainer) container).getGrid().onClear(player); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingPreviewRequestMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingPreviewRequestMessage.java index 6080f337b..6193637c1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingPreviewRequestMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingPreviewRequestMessage.java @@ -2,10 +2,10 @@ package com.refinedmods.refinedstorage.network.grid; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.container.GridContainer; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.Container; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraftforge.network.NetworkEvent; import java.util.UUID; import java.util.function.Supplier; @@ -23,7 +23,7 @@ public class GridCraftingPreviewRequestMessage { this.fluids = fluids; } - public static GridCraftingPreviewRequestMessage decode(PacketBuffer buf) { + public static GridCraftingPreviewRequestMessage decode(FriendlyByteBuf buf) { return new GridCraftingPreviewRequestMessage( buf.readUUID(), buf.readInt(), @@ -32,7 +32,7 @@ public class GridCraftingPreviewRequestMessage { ); } - public static void encode(GridCraftingPreviewRequestMessage message, PacketBuffer buf) { + public static void encode(GridCraftingPreviewRequestMessage message, FriendlyByteBuf buf) { buf.writeUUID(message.id); buf.writeInt(message.quantity); buf.writeBoolean(message.noPreview); @@ -40,11 +40,11 @@ public class GridCraftingPreviewRequestMessage { } public static void handle(GridCraftingPreviewRequestMessage message, Supplier ctx) { - ServerPlayerEntity player = ctx.get().getSender(); + ServerPlayer player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { - Container container = player.containerMenu; + AbstractContainerMenu container = player.containerMenu; if (container instanceof GridContainer) { IGrid grid = ((GridContainer) container).getGrid(); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingPreviewResponseMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingPreviewResponseMessage.java index 99bf166c6..4a3118a7a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingPreviewResponseMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingPreviewResponseMessage.java @@ -3,9 +3,9 @@ package com.refinedmods.refinedstorage.network.grid; import com.refinedmods.refinedstorage.api.autocrafting.preview.ICraftingPreviewElement; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.network.ClientProxy; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraftforge.network.NetworkEvent; import java.util.LinkedList; import java.util.List; @@ -25,23 +25,7 @@ public class GridCraftingPreviewResponseMessage { this.fluids = fluids; } - public List getElements() { - return elements; - } - - public UUID getId() { - return id; - } - - public int getQuantity() { - return quantity; - } - - public boolean isFluids() { - return fluids; - } - - public static GridCraftingPreviewResponseMessage decode(PacketBuffer buf) { + public static GridCraftingPreviewResponseMessage decode(FriendlyByteBuf buf) { UUID id = buf.readUUID(); int quantity = buf.readInt(); boolean fluids = buf.readBoolean(); @@ -58,7 +42,7 @@ public class GridCraftingPreviewResponseMessage { return new GridCraftingPreviewResponseMessage(elements, id, quantity, fluids); } - public static void encode(GridCraftingPreviewResponseMessage message, PacketBuffer buf) { + public static void encode(GridCraftingPreviewResponseMessage message, FriendlyByteBuf buf) { buf.writeUUID(message.id); buf.writeInt(message.quantity); buf.writeBoolean(message.fluids); @@ -74,4 +58,20 @@ public class GridCraftingPreviewResponseMessage { ctx.get().enqueueWork(() -> ClientProxy.onReceivedCraftingPreviewResponseMessage(message)); ctx.get().setPacketHandled(true); } + + public List getElements() { + return elements; + } + + public UUID getId() { + return id; + } + + public int getQuantity() { + return quantity; + } + + public boolean isFluids() { + return fluids; + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingStartRequestMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingStartRequestMessage.java index 0c1a80869..9eea075d8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingStartRequestMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingStartRequestMessage.java @@ -2,10 +2,10 @@ package com.refinedmods.refinedstorage.network.grid; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.container.GridContainer; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.Container; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraftforge.network.NetworkEvent; import java.util.UUID; import java.util.function.Supplier; @@ -21,7 +21,7 @@ public class GridCraftingStartRequestMessage { this.fluids = fluids; } - public static GridCraftingStartRequestMessage decode(PacketBuffer buf) { + public static GridCraftingStartRequestMessage decode(FriendlyByteBuf buf) { return new GridCraftingStartRequestMessage( buf.readUUID(), buf.readInt(), @@ -29,18 +29,18 @@ public class GridCraftingStartRequestMessage { ); } - public static void encode(GridCraftingStartRequestMessage message, PacketBuffer buf) { + public static void encode(GridCraftingStartRequestMessage message, FriendlyByteBuf buf) { buf.writeUUID(message.id); buf.writeInt(message.quantity); buf.writeBoolean(message.fluids); } public static void handle(GridCraftingStartRequestMessage message, Supplier ctx) { - ServerPlayerEntity player = ctx.get().getSender(); + ServerPlayer player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { - Container container = player.containerMenu; + AbstractContainerMenu container = player.containerMenu; if (container instanceof GridContainer) { IGrid grid = ((GridContainer) container).getGrid(); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingStartResponseMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingStartResponseMessage.java index 62025821a..5995189cb 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingStartResponseMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridCraftingStartResponseMessage.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.network.grid; import com.refinedmods.refinedstorage.network.ClientProxy; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidDeltaMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidDeltaMessage.java index ebc7884fd..51dda0b30 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidDeltaMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidDeltaMessage.java @@ -8,9 +8,9 @@ import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.screen.grid.GridScreen; import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.network.PacketBuffer; +import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent; import org.apache.commons.lang3.tuple.Pair; import javax.annotation.Nullable; @@ -34,7 +34,7 @@ public class GridFluidDeltaMessage { this.clientDeltas = clientDeltas; } - public static GridFluidDeltaMessage decode(PacketBuffer buf) { + public static GridFluidDeltaMessage decode(FriendlyByteBuf buf) { int size = buf.readInt(); List> clientDeltas = new LinkedList<>(); @@ -48,7 +48,7 @@ public class GridFluidDeltaMessage { return new GridFluidDeltaMessage(clientDeltas); } - public static void encode(GridFluidDeltaMessage message, PacketBuffer buf) { + public static void encode(GridFluidDeltaMessage message, FriendlyByteBuf buf) { buf.writeInt(message.deltas.size()); for (StackListResult delta : message.deltas) { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidInsertHeldMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidInsertHeldMessage.java index 22e936bf2..2c559d10b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidInsertHeldMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidInsertHeldMessage.java @@ -2,19 +2,19 @@ package com.refinedmods.refinedstorage.network.grid; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.container.GridContainer; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.Container; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; public class GridFluidInsertHeldMessage { public static void handle(Supplier ctx) { - ServerPlayerEntity player = ctx.get().getSender(); + ServerPlayer player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { - Container container = player.containerMenu; + AbstractContainerMenu container = player.containerMenu; if (container instanceof GridContainer) { IGrid grid = ((GridContainer) container).getGrid(); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidPullMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidPullMessage.java index 373afd2f5..d4bae1777 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidPullMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidPullMessage.java @@ -2,10 +2,10 @@ package com.refinedmods.refinedstorage.network.grid; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.container.GridContainer; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.Container; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraftforge.network.NetworkEvent; import java.util.UUID; import java.util.function.Supplier; @@ -19,21 +19,21 @@ public class GridFluidPullMessage { this.shift = shift; } - public static GridFluidPullMessage decode(PacketBuffer buf) { + public static GridFluidPullMessage decode(FriendlyByteBuf buf) { return new GridFluidPullMessage(buf.readUUID(), buf.readBoolean()); } - public static void encode(GridFluidPullMessage message, PacketBuffer buf) { + public static void encode(GridFluidPullMessage message, FriendlyByteBuf buf) { buf.writeUUID(message.id); buf.writeBoolean(message.shift); } public static void handle(GridFluidPullMessage message, Supplier ctx) { - ServerPlayerEntity player = ctx.get().getSender(); + ServerPlayer player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { - Container container = player.containerMenu; + AbstractContainerMenu container = player.containerMenu; if (container instanceof GridContainer) { IGrid grid = ((GridContainer) container).getGrid(); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidUpdateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidUpdateMessage.java index a0d0e27ae..cf4198a8b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidUpdateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridFluidUpdateMessage.java @@ -8,18 +8,17 @@ import com.refinedmods.refinedstorage.screen.grid.GridScreen; import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; import com.refinedmods.refinedstorage.screen.grid.view.GridViewImpl; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.network.PacketBuffer; +import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent; import java.util.ArrayList; import java.util.List; import java.util.function.Supplier; public class GridFluidUpdateMessage { - private INetwork network; - private final boolean canCraft; + private INetwork network; private List stacks = new ArrayList<>(); public GridFluidUpdateMessage(boolean canCraft, List stacks) { @@ -32,7 +31,7 @@ public class GridFluidUpdateMessage { this.canCraft = canCraft; } - public static GridFluidUpdateMessage decode(PacketBuffer buf) { + public static GridFluidUpdateMessage decode(FriendlyByteBuf buf) { boolean canCraft = buf.readBoolean(); int size = buf.readInt(); @@ -46,7 +45,7 @@ public class GridFluidUpdateMessage { return new GridFluidUpdateMessage(canCraft, stacks); } - public static void encode(GridFluidUpdateMessage message, PacketBuffer buf) { + public static void encode(GridFluidUpdateMessage message, FriendlyByteBuf buf) { buf.writeBoolean(message.canCraft); int size = message.network.getFluidStorageCache().getList().getStacks().size() + message.network.getFluidStorageCache().getCraftablesList().getStacks().size(); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemDeltaMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemDeltaMessage.java index aec3358b6..6a6fb84da 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemDeltaMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemDeltaMessage.java @@ -8,9 +8,9 @@ import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.screen.grid.GridScreen; import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.network.NetworkEvent; import org.apache.commons.lang3.tuple.Pair; import javax.annotation.Nullable; @@ -34,7 +34,7 @@ public class GridItemDeltaMessage { this.clientDeltas = clientDeltas; } - public static GridItemDeltaMessage decode(PacketBuffer buf) { + public static GridItemDeltaMessage decode(FriendlyByteBuf buf) { int size = buf.readInt(); List> clientDeltas = new LinkedList<>(); @@ -48,7 +48,7 @@ public class GridItemDeltaMessage { return new GridItemDeltaMessage(clientDeltas); } - public static void encode(GridItemDeltaMessage message, PacketBuffer buf) { + public static void encode(GridItemDeltaMessage message, FriendlyByteBuf buf) { buf.writeInt(message.deltas.size()); for (StackListResult delta : message.deltas) { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemGridScrollMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemGridScrollMessage.java index 8cd47cfe6..f22637bdb 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemGridScrollMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemGridScrollMessage.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.network.grid; import com.refinedmods.refinedstorage.container.GridContainer; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerPlayer; +import net.minecraftforge.network.NetworkEvent; import javax.annotation.Nullable; import java.util.UUID; @@ -20,11 +20,11 @@ public class GridItemGridScrollMessage { this.up = up; } - public static GridItemGridScrollMessage decode(PacketBuffer buf) { + public static GridItemGridScrollMessage decode(FriendlyByteBuf buf) { return new GridItemGridScrollMessage(buf.readBoolean() ? buf.readUUID() : null, buf.readBoolean(), buf.readBoolean()); } - public static void encode(GridItemGridScrollMessage message, PacketBuffer buf) { + public static void encode(GridItemGridScrollMessage message, FriendlyByteBuf buf) { boolean hasId = message.id != null; buf.writeBoolean(hasId); if (hasId) { @@ -37,7 +37,7 @@ public class GridItemGridScrollMessage { public static void handle(GridItemGridScrollMessage message, Supplier ctx) { ctx.get().enqueueWork(() -> { - ServerPlayerEntity player = ctx.get().getSender(); + ServerPlayer player = ctx.get().getSender(); if (player != null && player.containerMenu instanceof GridContainer && ((GridContainer) player.containerMenu).getGrid().getItemHandler() != null) { ((GridContainer) player.containerMenu).getGrid().getItemHandler().onGridScroll(player, message.id, message.shift, message.up); } diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemInsertHeldMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemInsertHeldMessage.java index 4469cda89..5be301b53 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemInsertHeldMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemInsertHeldMessage.java @@ -2,10 +2,10 @@ package com.refinedmods.refinedstorage.network.grid; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.container.GridContainer; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.Container; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; @@ -16,20 +16,20 @@ public class GridItemInsertHeldMessage { this.single = single; } - public static GridItemInsertHeldMessage decode(PacketBuffer buf) { + public static GridItemInsertHeldMessage decode(FriendlyByteBuf buf) { return new GridItemInsertHeldMessage(buf.readBoolean()); } - public static void encode(GridItemInsertHeldMessage message, PacketBuffer buf) { + public static void encode(GridItemInsertHeldMessage message, FriendlyByteBuf buf) { buf.writeBoolean(message.single); } public static void handle(GridItemInsertHeldMessage message, Supplier ctx) { - ServerPlayerEntity player = ctx.get().getSender(); + ServerPlayer player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { - Container container = player.containerMenu; + AbstractContainerMenu container = player.containerMenu; if (container instanceof GridContainer) { IGrid grid = ((GridContainer) container).getGrid(); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemInventoryScrollMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemInventoryScrollMessage.java index 9e07c1946..07e55bc5a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemInventoryScrollMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemInventoryScrollMessage.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.network.grid; import com.refinedmods.refinedstorage.container.GridContainer; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerPlayer; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; @@ -18,11 +18,11 @@ public class GridItemInventoryScrollMessage { this.up = up; } - public static GridItemInventoryScrollMessage decode(PacketBuffer buf) { + public static GridItemInventoryScrollMessage decode(FriendlyByteBuf buf) { return new GridItemInventoryScrollMessage(buf.readInt(), buf.readBoolean(), buf.readBoolean()); } - public static void encode(GridItemInventoryScrollMessage message, PacketBuffer buf) { + public static void encode(GridItemInventoryScrollMessage message, FriendlyByteBuf buf) { buf.writeInt(message.slot); buf.writeBoolean(message.shift); buf.writeBoolean(message.up); @@ -30,7 +30,7 @@ public class GridItemInventoryScrollMessage { public static void handle(GridItemInventoryScrollMessage message, Supplier ctx) { ctx.get().enqueueWork(() -> { - ServerPlayerEntity player = ctx.get().getSender(); + ServerPlayer player = ctx.get().getSender(); if (player != null && player.containerMenu instanceof GridContainer && ((GridContainer) player.containerMenu).getGrid().getItemHandler() != null) { ((GridContainer) player.containerMenu).getGrid().getItemHandler().onInventoryScroll(player, message.slot, message.shift, message.up); } diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemPullMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemPullMessage.java index 300926300..50a169055 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemPullMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemPullMessage.java @@ -2,10 +2,10 @@ package com.refinedmods.refinedstorage.network.grid; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.container.GridContainer; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.Container; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraftforge.network.NetworkEvent; import java.util.UUID; import java.util.function.Supplier; @@ -19,21 +19,21 @@ public class GridItemPullMessage { this.flags = flags; } - public static GridItemPullMessage decode(PacketBuffer buf) { + public static GridItemPullMessage decode(FriendlyByteBuf buf) { return new GridItemPullMessage(buf.readUUID(), buf.readInt()); } - public static void encode(GridItemPullMessage message, PacketBuffer buf) { + public static void encode(GridItemPullMessage message, FriendlyByteBuf buf) { buf.writeUUID(message.id); buf.writeInt(message.flags); } public static void handle(GridItemPullMessage message, Supplier ctx) { - ServerPlayerEntity player = ctx.get().getSender(); + ServerPlayer player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { - Container container = player.containerMenu; + AbstractContainerMenu container = player.containerMenu; if (container instanceof GridContainer) { IGrid grid = ((GridContainer) container).getGrid(); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemUpdateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemUpdateMessage.java index b0e8e8ebd..c5b263804 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemUpdateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridItemUpdateMessage.java @@ -8,18 +8,17 @@ import com.refinedmods.refinedstorage.screen.grid.GridScreen; import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; import com.refinedmods.refinedstorage.screen.grid.view.GridViewImpl; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.network.NetworkEvent; import java.util.ArrayList; import java.util.List; import java.util.function.Supplier; public class GridItemUpdateMessage { - private INetwork network; - private final boolean canCraft; + private INetwork network; private List stacks = new ArrayList<>(); public GridItemUpdateMessage(boolean canCraft, List stacks) { @@ -32,7 +31,7 @@ public class GridItemUpdateMessage { this.canCraft = canCraft; } - public static GridItemUpdateMessage decode(PacketBuffer buf) { + public static GridItemUpdateMessage decode(FriendlyByteBuf buf) { boolean canCraft = buf.readBoolean(); int size = buf.readInt(); @@ -46,7 +45,7 @@ public class GridItemUpdateMessage { return new GridItemUpdateMessage(canCraft, stacks); } - public static void encode(GridItemUpdateMessage message, PacketBuffer buf) { + public static void encode(GridItemUpdateMessage message, FriendlyByteBuf buf) { buf.writeBoolean(message.canCraft); int size = message.network.getItemStorageCache().getList().getStacks().size() + message.network.getItemStorageCache().getCraftablesList().getStacks().size(); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridPatternCreateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridPatternCreateMessage.java index 50db365e5..4ccbe3e64 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridPatternCreateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridPatternCreateMessage.java @@ -2,11 +2,11 @@ package com.refinedmods.refinedstorage.network.grid; import com.refinedmods.refinedstorage.api.network.grid.GridType; import com.refinedmods.refinedstorage.tile.grid.GridTile; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.network.PacketBuffer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.core.BlockPos; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; @@ -17,20 +17,20 @@ public class GridPatternCreateMessage { this.pos = pos; } - public static GridPatternCreateMessage decode(PacketBuffer buf) { + public static GridPatternCreateMessage decode(FriendlyByteBuf buf) { return new GridPatternCreateMessage(buf.readBlockPos()); } - public static void encode(GridPatternCreateMessage message, PacketBuffer buf) { + public static void encode(GridPatternCreateMessage message, FriendlyByteBuf buf) { buf.writeBlockPos(message.pos); } public static void handle(GridPatternCreateMessage message, Supplier ctx) { - PlayerEntity player = ctx.get().getSender(); + Player player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { - TileEntity tile = player.getCommandSenderWorld().getBlockEntity(message.pos); + BlockEntity tile = player.getCommandSenderWorld().getBlockEntity(message.pos); if (tile instanceof GridTile && ((GridTile) tile).getNode().getGridType() == GridType.PATTERN) { ((GridTile) tile).getNode().onCreatePattern(); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridProcessingTransferMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridProcessingTransferMessage.java index b6873b845..abee14870 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridProcessingTransferMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridProcessingTransferMessage.java @@ -7,11 +7,11 @@ import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent; import java.util.ArrayList; import java.util.Collection; @@ -31,7 +31,7 @@ public class GridProcessingTransferMessage { this.fluidOutputs = fluidOutputs; } - public static GridProcessingTransferMessage decode(PacketBuffer buf) { + public static GridProcessingTransferMessage decode(FriendlyByteBuf buf) { int size = buf.readInt(); List inputs = new ArrayList<>(size); @@ -67,7 +67,7 @@ public class GridProcessingTransferMessage { return new GridProcessingTransferMessage(inputs, outputs, fluidInputs, fluidOutputs); } - public static void encode(GridProcessingTransferMessage message, PacketBuffer buf) { + public static void encode(GridProcessingTransferMessage message, FriendlyByteBuf buf) { buf.writeInt(message.inputs.size()); for (ItemStack stack : message.inputs) { @@ -94,7 +94,7 @@ public class GridProcessingTransferMessage { } public static void handle(GridProcessingTransferMessage message, Supplier ctx) { - PlayerEntity player = ctx.get().getSender(); + Player player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridTransferMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridTransferMessage.java index 3ad88c052..52e1da78e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/GridTransferMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/GridTransferMessage.java @@ -5,11 +5,11 @@ import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.util.StackUtils; import mezz.jei.api.gui.ingredient.IGuiIngredient; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.container.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.network.NetworkEvent; import java.util.ArrayList; import java.util.List; @@ -17,11 +17,10 @@ import java.util.Map; import java.util.function.Supplier; public class GridTransferMessage { + private final ItemStack[][] recipe = new ItemStack[9][]; private Map> inputs; private List slots; - private final ItemStack[][] recipe = new ItemStack[9][]; - public GridTransferMessage() { } @@ -30,7 +29,7 @@ public class GridTransferMessage { this.slots = slots; } - public static GridTransferMessage decode(PacketBuffer buf) { + public static GridTransferMessage decode(FriendlyByteBuf buf) { GridTransferMessage msg = new GridTransferMessage(); int slots = buf.readInt(); @@ -48,7 +47,7 @@ public class GridTransferMessage { return msg; } - public static void encode(GridTransferMessage message, PacketBuffer buf) { + public static void encode(GridTransferMessage message, FriendlyByteBuf buf) { buf.writeInt(message.slots.size()); for (Slot slot : message.slots) { @@ -73,7 +72,7 @@ public class GridTransferMessage { } public static void handle(GridTransferMessage message, Supplier ctx) { - PlayerEntity player = ctx.get().getSender(); + Player player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridFluidDeltaMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridFluidDeltaMessage.java index 7694592f6..102d70178 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridFluidDeltaMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridFluidDeltaMessage.java @@ -6,9 +6,9 @@ import com.refinedmods.refinedstorage.screen.grid.GridScreen; import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; import com.refinedmods.refinedstorage.tile.grid.portable.IPortableGrid; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.network.PacketBuffer; +import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent; import org.apache.commons.lang3.tuple.Pair; import java.util.LinkedList; @@ -30,7 +30,7 @@ public class PortableGridFluidDeltaMessage { this.clientDeltas = clientDeltas; } - public static PortableGridFluidDeltaMessage decode(PacketBuffer buf) { + public static PortableGridFluidDeltaMessage decode(FriendlyByteBuf buf) { int size = buf.readInt(); List> clientDeltas = new LinkedList<>(); @@ -44,7 +44,7 @@ public class PortableGridFluidDeltaMessage { return new PortableGridFluidDeltaMessage(clientDeltas); } - public static void encode(PortableGridFluidDeltaMessage message, PacketBuffer buf) { + public static void encode(PortableGridFluidDeltaMessage message, FriendlyByteBuf buf) { buf.writeInt(message.deltas.size()); for (StackListResult delta : message.deltas) { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridFluidUpdateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridFluidUpdateMessage.java index 4fa6331ef..bb1ff13ab 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridFluidUpdateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridFluidUpdateMessage.java @@ -7,9 +7,9 @@ import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; import com.refinedmods.refinedstorage.screen.grid.view.GridViewImpl; import com.refinedmods.refinedstorage.tile.grid.portable.IPortableGrid; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.network.PacketBuffer; +import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent; import java.util.ArrayList; import java.util.List; @@ -28,7 +28,7 @@ public class PortableGridFluidUpdateMessage { this.portableGrid = portableGrid; } - public static PortableGridFluidUpdateMessage decode(PacketBuffer buf) { + public static PortableGridFluidUpdateMessage decode(FriendlyByteBuf buf) { int size = buf.readInt(); List stacks = new ArrayList<>(); @@ -40,7 +40,7 @@ public class PortableGridFluidUpdateMessage { return new PortableGridFluidUpdateMessage(stacks); } - public static void encode(PortableGridFluidUpdateMessage message, PacketBuffer buf) { + public static void encode(PortableGridFluidUpdateMessage message, FriendlyByteBuf buf) { int size = message.portableGrid.getFluidCache().getList().getStacks().size(); buf.writeInt(size); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridItemDeltaMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridItemDeltaMessage.java index fe099dc99..fe33010ae 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridItemDeltaMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridItemDeltaMessage.java @@ -6,9 +6,9 @@ import com.refinedmods.refinedstorage.screen.grid.GridScreen; import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; import com.refinedmods.refinedstorage.tile.grid.portable.IPortableGrid; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.network.NetworkEvent; import org.apache.commons.lang3.tuple.Pair; import javax.annotation.Nullable; @@ -32,7 +32,7 @@ public class PortableGridItemDeltaMessage { this.clientDeltas = clientDeltas; } - public static PortableGridItemDeltaMessage decode(PacketBuffer buf) { + public static PortableGridItemDeltaMessage decode(FriendlyByteBuf buf) { int size = buf.readInt(); List> clientDeltas = new LinkedList<>(); @@ -46,7 +46,7 @@ public class PortableGridItemDeltaMessage { return new PortableGridItemDeltaMessage(clientDeltas); } - public static void encode(PortableGridItemDeltaMessage message, PacketBuffer buf) { + public static void encode(PortableGridItemDeltaMessage message, FriendlyByteBuf buf) { buf.writeInt(message.deltas.size()); for (StackListResult delta : message.deltas) { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridItemUpdateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridItemUpdateMessage.java index b8e079cfd..9bec37d4d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridItemUpdateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridItemUpdateMessage.java @@ -7,9 +7,9 @@ import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; import com.refinedmods.refinedstorage.screen.grid.view.GridViewImpl; import com.refinedmods.refinedstorage.tile.grid.portable.IPortableGrid; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.network.NetworkEvent; import java.util.ArrayList; import java.util.List; @@ -28,7 +28,7 @@ public class PortableGridItemUpdateMessage { this.portableGrid = portableGrid; } - public static PortableGridItemUpdateMessage decode(PacketBuffer buf) { + public static PortableGridItemUpdateMessage decode(FriendlyByteBuf buf) { int size = buf.readInt(); List stacks = new ArrayList<>(); @@ -40,7 +40,7 @@ public class PortableGridItemUpdateMessage { return new PortableGridItemUpdateMessage(stacks); } - public static void encode(PortableGridItemUpdateMessage message, PacketBuffer buf) { + public static void encode(PortableGridItemUpdateMessage message, FriendlyByteBuf buf) { int size = message.portableGrid.getItemCache().getList().getStacks().size(); buf.writeInt(size); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridSettingsUpdateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridSettingsUpdateMessage.java index 74956a63a..52d8a4c3e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridSettingsUpdateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/PortableGridSettingsUpdateMessage.java @@ -4,11 +4,11 @@ import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.apiimpl.network.node.GridNetworkNode; import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.tile.grid.portable.PortableGrid; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; @@ -31,7 +31,7 @@ public class PortableGridSettingsUpdateMessage { this.tabPage = tabPage; } - public static PortableGridSettingsUpdateMessage decode(PacketBuffer buf) { + public static PortableGridSettingsUpdateMessage decode(FriendlyByteBuf buf) { return new PortableGridSettingsUpdateMessage( buf.readInt(), buf.readInt(), @@ -43,7 +43,7 @@ public class PortableGridSettingsUpdateMessage { ); } - public static void encode(PortableGridSettingsUpdateMessage message, PacketBuffer buf) { + public static void encode(PortableGridSettingsUpdateMessage message, FriendlyByteBuf buf) { buf.writeInt(message.viewType); buf.writeInt(message.sortingDirection); buf.writeInt(message.sortingType); @@ -54,7 +54,7 @@ public class PortableGridSettingsUpdateMessage { } public static void handle(PortableGridSettingsUpdateMessage message, Supplier ctx) { - PlayerEntity player = ctx.get().getSender(); + Player player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { @@ -65,7 +65,7 @@ public class PortableGridSettingsUpdateMessage { ItemStack stack = ((PortableGrid) grid).getStack(); if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } if (IGrid.isValidViewType(message.viewType)) { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/WirelessFluidGridSettingsUpdateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/WirelessFluidGridSettingsUpdateMessage.java index f3067af6c..8a679b7ea 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/WirelessFluidGridSettingsUpdateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/WirelessFluidGridSettingsUpdateMessage.java @@ -4,10 +4,10 @@ import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.apiimpl.network.node.GridNetworkNode; import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.tile.grid.WirelessFluidGrid; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; @@ -28,7 +28,7 @@ public class WirelessFluidGridSettingsUpdateMessage { this.tabPage = tabPage; } - public static WirelessFluidGridSettingsUpdateMessage decode(PacketBuffer buf) { + public static WirelessFluidGridSettingsUpdateMessage decode(FriendlyByteBuf buf) { return new WirelessFluidGridSettingsUpdateMessage( buf.readInt(), buf.readInt(), @@ -39,7 +39,7 @@ public class WirelessFluidGridSettingsUpdateMessage { ); } - public static void encode(WirelessFluidGridSettingsUpdateMessage message, PacketBuffer buf) { + public static void encode(WirelessFluidGridSettingsUpdateMessage message, FriendlyByteBuf buf) { buf.writeInt(message.sortingDirection); buf.writeInt(message.sortingType); buf.writeInt(message.searchBoxMode); @@ -49,7 +49,7 @@ public class WirelessFluidGridSettingsUpdateMessage { } public static void handle(WirelessFluidGridSettingsUpdateMessage message, Supplier ctx) { - PlayerEntity player = ctx.get().getSender(); + Player player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/grid/WirelessGridSettingsUpdateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/grid/WirelessGridSettingsUpdateMessage.java index f8ce0d27d..e3e01744d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/grid/WirelessGridSettingsUpdateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/grid/WirelessGridSettingsUpdateMessage.java @@ -4,11 +4,11 @@ import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.apiimpl.network.node.GridNetworkNode; import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.tile.grid.WirelessGrid; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; @@ -31,7 +31,7 @@ public class WirelessGridSettingsUpdateMessage { this.tabPage = tabPage; } - public static WirelessGridSettingsUpdateMessage decode(PacketBuffer buf) { + public static WirelessGridSettingsUpdateMessage decode(FriendlyByteBuf buf) { return new WirelessGridSettingsUpdateMessage( buf.readInt(), buf.readInt(), @@ -43,7 +43,7 @@ public class WirelessGridSettingsUpdateMessage { ); } - public static void encode(WirelessGridSettingsUpdateMessage message, PacketBuffer buf) { + public static void encode(WirelessGridSettingsUpdateMessage message, FriendlyByteBuf buf) { buf.writeInt(message.viewType); buf.writeInt(message.sortingDirection); buf.writeInt(message.sortingType); @@ -54,7 +54,7 @@ public class WirelessGridSettingsUpdateMessage { } public static void handle(WirelessGridSettingsUpdateMessage message, Supplier ctx) { - PlayerEntity player = ctx.get().getSender(); + Player player = ctx.get().getSender(); if (player != null) { ctx.get().enqueueWork(() -> { @@ -65,7 +65,7 @@ public class WirelessGridSettingsUpdateMessage { ItemStack stack = ((WirelessGrid) grid).getStack(); if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); } if (IGrid.isValidViewType(message.viewType)) { diff --git a/src/main/java/com/refinedmods/refinedstorage/network/tiledata/TileDataParameterMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/tiledata/TileDataParameterMessage.java index 44498988a..64dd942e6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/tiledata/TileDataParameterMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/tiledata/TileDataParameterMessage.java @@ -2,24 +2,24 @@ package com.refinedmods.refinedstorage.network.tiledata; import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.network.PacketBuffer; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; public class TileDataParameterMessage { - private final TileEntity tile; + private final BlockEntity tile; private final TileDataParameter parameter; private final boolean initial; - public TileDataParameterMessage(TileEntity tile, TileDataParameter parameter, boolean initial) { + public TileDataParameterMessage(BlockEntity tile, TileDataParameter parameter, boolean initial) { this.tile = tile; this.parameter = parameter; this.initial = initial; } - public static TileDataParameterMessage decode(PacketBuffer buf) { + public static TileDataParameterMessage decode(FriendlyByteBuf buf) { int id = buf.readInt(); boolean initial = buf.readBoolean(); @@ -36,7 +36,7 @@ public class TileDataParameterMessage { return new TileDataParameterMessage(null, null, initial); } - public static void encode(TileDataParameterMessage message, PacketBuffer buf) { + public static void encode(TileDataParameterMessage message, FriendlyByteBuf buf) { buf.writeInt(message.parameter.getId()); buf.writeBoolean(message.initial); diff --git a/src/main/java/com/refinedmods/refinedstorage/network/tiledata/TileDataParameterUpdateMessage.java b/src/main/java/com/refinedmods/refinedstorage/network/tiledata/TileDataParameterUpdateMessage.java index 5bd9c6818..6d609e851 100644 --- a/src/main/java/com/refinedmods/refinedstorage/network/tiledata/TileDataParameterUpdateMessage.java +++ b/src/main/java/com/refinedmods/refinedstorage/network/tiledata/TileDataParameterUpdateMessage.java @@ -3,9 +3,9 @@ package com.refinedmods.refinedstorage.network.tiledata; import com.refinedmods.refinedstorage.container.BaseContainer; import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.inventory.container.Container; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraftforge.network.NetworkEvent; import java.util.function.BiConsumer; import java.util.function.Supplier; @@ -19,7 +19,7 @@ public class TileDataParameterUpdateMessage { this.value = value; } - public static TileDataParameterUpdateMessage decode(PacketBuffer buf) { + public static TileDataParameterUpdateMessage decode(FriendlyByteBuf buf) { int id = buf.readInt(); TileDataParameter parameter = TileDataManager.getParameter(id); @@ -36,7 +36,7 @@ public class TileDataParameterUpdateMessage { return new TileDataParameterUpdateMessage(parameter, value); } - public static void encode(TileDataParameterUpdateMessage message, PacketBuffer buf) { + public static void encode(TileDataParameterUpdateMessage message, FriendlyByteBuf buf) { buf.writeInt(message.parameter.getId()); message.parameter.getSerializer().write(buf, message.value); @@ -44,7 +44,7 @@ public class TileDataParameterUpdateMessage { public static void handle(TileDataParameterUpdateMessage message, Supplier ctx) { ctx.get().enqueueWork(() -> { - Container c = ctx.get().getSender().containerMenu; + AbstractContainerMenu c = ctx.get().getSender().containerMenu; if (c instanceof BaseContainer) { BiConsumer consumer = message.parameter.getValueConsumer(); diff --git a/src/main/java/com/refinedmods/refinedstorage/recipe/CoverRecipe.java b/src/main/java/com/refinedmods/refinedstorage/recipe/CoverRecipe.java index a158fcd4a..cd9ae132e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/recipe/CoverRecipe.java +++ b/src/main/java/com/refinedmods/refinedstorage/recipe/CoverRecipe.java @@ -3,25 +3,22 @@ package com.refinedmods.refinedstorage.recipe; import com.google.common.collect.Lists; import com.refinedmods.refinedstorage.RSItems; -import com.refinedmods.refinedstorage.apiimpl.network.node.cover.Cover; import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager; import com.refinedmods.refinedstorage.item.CoverItem; -import com.refinedmods.refinedstorage.item.WrenchItem; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipeSerializer; -import net.minecraft.item.crafting.SpecialRecipe; -import net.minecraft.item.crafting.SpecialRecipeSerializer; -import net.minecraft.tags.ItemTags; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.item.crafting.SimpleRecipeSerializer; +import net.minecraft.world.level.Level; import net.minecraftforge.common.Tags; import java.util.List; -public class CoverRecipe extends SpecialRecipe { +public class CoverRecipe extends CustomRecipe { - public static IRecipeSerializer SERIALIZER = new SpecialRecipeSerializer<>(CoverRecipe::new); + public static RecipeSerializer SERIALIZER = new SimpleRecipeSerializer<>(CoverRecipe::new); public CoverRecipe(ResourceLocation idIn) { super(idIn); @@ -44,14 +41,14 @@ public class CoverRecipe extends SpecialRecipe { return ItemStack.EMPTY; } - public static ItemStack getResult(ItemStack first, ItemStack second){ - if (first.getItem().is(Tags.Items.NUGGETS_IRON)){ + public static ItemStack getResult(ItemStack first, ItemStack second) { + if (first.is(Tags.Items.NUGGETS_IRON)) { ItemStack stack = new ItemStack(RSItems.COVER.get()); CoverItem.setItem(stack, second); stack.setCount(6); return stack; } - if (second.getItem().is(Tags.Items.NUGGETS_IRON)){ + if (second.is(Tags.Items.NUGGETS_IRON)) { ItemStack stack = new ItemStack(RSItems.COVER.get()); CoverItem.setItem(stack, first); stack.setCount(6); @@ -61,16 +58,16 @@ public class CoverRecipe extends SpecialRecipe { } @Override - public boolean matches(CraftingInventory inv, World worldIn) { + public boolean matches(CraftingContainer inv, Level worldIn) { List list = Lists.newArrayList(); int ingots = 0; for (int i = 0; i < inv.getContainerSize(); ++i) { ItemStack itemstack = inv.getItem(i); if (!itemstack.isEmpty()) { list.add(itemstack); - if (itemstack.getItem().is(Tags.Items.NUGGETS_IRON)){ + if (itemstack.is(Tags.Items.NUGGETS_IRON)) { ++ingots; - } else if (!stackMatches(itemstack)){ + } else if (!stackMatches(itemstack)) { return false; } } @@ -79,21 +76,21 @@ public class CoverRecipe extends SpecialRecipe { } @Override - public ItemStack assemble(CraftingInventory inv) { + public ItemStack assemble(CraftingContainer inv) { List list = Lists.newArrayList(); int ingots = 0; for (int i = 0; i < inv.getContainerSize(); ++i) { ItemStack itemstack = inv.getItem(i); if (!itemstack.isEmpty()) { list.add(itemstack); - if (itemstack.getItem().is(Tags.Items.NUGGETS_IRON)){ + if (itemstack.is(Tags.Items.NUGGETS_IRON)) { ++ingots; - } else if (!stackMatches(itemstack)){ + } else if (!stackMatches(itemstack)) { return ItemStack.EMPTY; } } } - if (ingots > 1){ + if (ingots > 1) { return ItemStack.EMPTY; } return getResult(list); @@ -105,7 +102,7 @@ public class CoverRecipe extends SpecialRecipe { } @Override - public IRecipeSerializer getSerializer() { + public RecipeSerializer getSerializer() { return SERIALIZER; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/recipe/HollowCoverRecipe.java b/src/main/java/com/refinedmods/refinedstorage/recipe/HollowCoverRecipe.java index c7157abe9..7b2d52b8f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/recipe/HollowCoverRecipe.java +++ b/src/main/java/com/refinedmods/refinedstorage/recipe/HollowCoverRecipe.java @@ -3,22 +3,20 @@ package com.refinedmods.refinedstorage.recipe; import com.google.common.collect.Lists; import com.refinedmods.refinedstorage.RSItems; -import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager; import com.refinedmods.refinedstorage.item.CoverItem; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipeSerializer; -import net.minecraft.item.crafting.SpecialRecipe; -import net.minecraft.item.crafting.SpecialRecipeSerializer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import net.minecraftforge.common.Tags; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.item.crafting.SimpleRecipeSerializer; +import net.minecraft.world.level.Level; import java.util.List; -public class HollowCoverRecipe extends SpecialRecipe { +public class HollowCoverRecipe extends CustomRecipe { - public static IRecipeSerializer SERIALIZER = new SpecialRecipeSerializer<>(HollowCoverRecipe::new); + public static RecipeSerializer SERIALIZER = new SimpleRecipeSerializer<>(HollowCoverRecipe::new); public HollowCoverRecipe(ResourceLocation idIn) { super(idIn); @@ -40,7 +38,7 @@ public class HollowCoverRecipe extends SpecialRecipe { return ItemStack.EMPTY; } - public static ItemStack getResult(ItemStack first){ + public static ItemStack getResult(ItemStack first) { ItemStack stack = CoverItem.getItem(first); ItemStack result = new ItemStack(RSItems.HOLLOW_COVER.get()); CoverItem.setItem(result, stack); @@ -48,13 +46,13 @@ public class HollowCoverRecipe extends SpecialRecipe { } @Override - public boolean matches(CraftingInventory inv, World worldIn) { + public boolean matches(CraftingContainer inv, Level worldIn) { List list = Lists.newArrayList(); for (int i = 0; i < inv.getContainerSize(); ++i) { ItemStack itemstack = inv.getItem(i); if (!itemstack.isEmpty()) { list.add(itemstack); - if (!stackMatches(itemstack)){ + if (!stackMatches(itemstack)) { return false; } } @@ -63,13 +61,13 @@ public class HollowCoverRecipe extends SpecialRecipe { } @Override - public ItemStack assemble(CraftingInventory inv) { + public ItemStack assemble(CraftingContainer inv) { List list = Lists.newArrayList(); for (int i = 0; i < inv.getContainerSize(); ++i) { ItemStack itemstack = inv.getItem(i); if (!itemstack.isEmpty()) { list.add(itemstack); - if (!stackMatches(itemstack)){ + if (!stackMatches(itemstack)) { return ItemStack.EMPTY; } } @@ -83,7 +81,7 @@ public class HollowCoverRecipe extends SpecialRecipe { } @Override - public IRecipeSerializer getSerializer() { + public RecipeSerializer getSerializer() { return SERIALIZER; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/recipe/UpgradeWithEnchantedBookRecipe.java b/src/main/java/com/refinedmods/refinedstorage/recipe/UpgradeWithEnchantedBookRecipe.java index 20524198d..d5019aff2 100644 --- a/src/main/java/com/refinedmods/refinedstorage/recipe/UpgradeWithEnchantedBookRecipe.java +++ b/src/main/java/com/refinedmods/refinedstorage/recipe/UpgradeWithEnchantedBookRecipe.java @@ -2,29 +2,29 @@ package com.refinedmods.refinedstorage.recipe; import com.refinedmods.refinedstorage.RSItems; import com.refinedmods.refinedstorage.item.UpgradeItem; -import net.minecraft.block.Blocks; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentData; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.item.EnchantedBookItem; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.Ingredient; -import net.minecraft.item.crafting.ShapedRecipe; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; +import net.minecraft.core.NonNullList; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.item.EnchantedBookItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.crafting.ShapedRecipe; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.EnchantmentInstance; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; import net.minecraftforge.registries.ForgeRegistries; public class UpgradeWithEnchantedBookRecipe extends ShapedRecipe { - private final EnchantmentData enchant; + private final EnchantmentInstance enchant; private final ItemStack result; public UpgradeWithEnchantedBookRecipe(ResourceLocation recipeId, Enchantment enchantment, int enchantmentLevel, ItemStack result) { super(recipeId, "", 3, 3, NonNullList.of(Ingredient.EMPTY, Ingredient.of(new ItemStack(RSItems.QUARTZ_ENRICHED_IRON.get())), - Ingredient.of(EnchantedBookItem.createForEnchantment(new EnchantmentData(enchantment, enchantmentLevel))), + Ingredient.of(EnchantedBookItem.createForEnchantment(new EnchantmentInstance(enchantment, enchantmentLevel))), Ingredient.of(new ItemStack(RSItems.QUARTZ_ENRICHED_IRON.get())), Ingredient.of(new ItemStack(Blocks.BOOKSHELF)), Ingredient.of(new ItemStack(RSItems.UPGRADE_ITEMS.get(UpgradeItem.Type.NORMAL).get())), @@ -34,11 +34,11 @@ public class UpgradeWithEnchantedBookRecipe extends ShapedRecipe { Ingredient.of(new ItemStack(RSItems.QUARTZ_ENRICHED_IRON.get())) ), result); - this.enchant = new EnchantmentData(enchantment, enchantmentLevel); + this.enchant = new EnchantmentInstance(enchantment, enchantmentLevel); this.result = result; } - public EnchantmentData getEnchant() { + public EnchantmentInstance getEnchant() { return enchant; } @@ -47,12 +47,12 @@ public class UpgradeWithEnchantedBookRecipe extends ShapedRecipe { } @Override - public boolean matches(CraftingInventory inv, World world) { + public boolean matches(CraftingContainer inv, Level world) { if (super.matches(inv, world)) { - ListNBT enchantments = EnchantedBookItem.getEnchantments(inv.getItem(1)); + ListTag enchantments = EnchantedBookItem.getEnchantments(inv.getItem(1)); for (int i = 0; i < enchantments.size(); ++i) { - CompoundNBT enchantmentNbt = enchantments.getCompound(i); + CompoundTag enchantmentNbt = enchantments.getCompound(i); // @Volatile: NBT tags from EnchantedBookItem if (ForgeRegistries.ENCHANTMENTS.getValue(new ResourceLocation(enchantmentNbt.getString("id"))) == enchant.enchantment && diff --git a/src/main/java/com/refinedmods/refinedstorage/recipe/UpgradeWithEnchantedBookRecipeSerializer.java b/src/main/java/com/refinedmods/refinedstorage/recipe/UpgradeWithEnchantedBookRecipeSerializer.java index f226a6aee..69c37641b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/recipe/UpgradeWithEnchantedBookRecipeSerializer.java +++ b/src/main/java/com/refinedmods/refinedstorage/recipe/UpgradeWithEnchantedBookRecipeSerializer.java @@ -1,17 +1,17 @@ package com.refinedmods.refinedstorage.recipe; import com.google.gson.JsonObject; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipeSerializer; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.item.enchantment.Enchantment; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.ForgeRegistryEntry; import javax.annotation.Nullable; -public class UpgradeWithEnchantedBookRecipeSerializer extends ForgeRegistryEntry> implements IRecipeSerializer { +public class UpgradeWithEnchantedBookRecipeSerializer extends ForgeRegistryEntry> implements RecipeSerializer { @Override public UpgradeWithEnchantedBookRecipe fromJson(ResourceLocation recipeId, JsonObject json) { JsonObject enchantmentInfo = json.getAsJsonObject("enchantment"); @@ -29,7 +29,7 @@ public class UpgradeWithEnchantedBookRecipeSerializer extends ForgeRegistryEntry @Nullable @Override - public UpgradeWithEnchantedBookRecipe fromNetwork(ResourceLocation recipeId, PacketBuffer buffer) { + public UpgradeWithEnchantedBookRecipe fromNetwork(ResourceLocation recipeId, FriendlyByteBuf buffer) { ItemStack result = buffer.readItem(); Enchantment enchantment = ForgeRegistries.ENCHANTMENTS.getValue(buffer.readResourceLocation()); int level = buffer.readInt(); @@ -38,7 +38,7 @@ public class UpgradeWithEnchantedBookRecipeSerializer extends ForgeRegistryEntry } @Override - public void toNetwork(PacketBuffer buffer, UpgradeWithEnchantedBookRecipe recipe) { + public void toNetwork(FriendlyByteBuf buffer, UpgradeWithEnchantedBookRecipe recipe) { buffer.writeItem(recipe.getResult()); buffer.writeResourceLocation(recipe.getEnchant().enchantment.getRegistryName()); buffer.writeInt(recipe.getEnchant().level); diff --git a/src/main/java/com/refinedmods/refinedstorage/render/BakedModelOverrideRegistry.java b/src/main/java/com/refinedmods/refinedstorage/render/BakedModelOverrideRegistry.java index 6e5860d6c..bd368861d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/BakedModelOverrideRegistry.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/BakedModelOverrideRegistry.java @@ -1,17 +1,13 @@ package com.refinedmods.refinedstorage.render; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.util.ResourceLocation; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.resources.ResourceLocation; import javax.annotation.Nullable; import java.util.HashMap; import java.util.Map; public class BakedModelOverrideRegistry { - public interface BakedModelOverrideFactory { - IBakedModel create(IBakedModel base, Map registry); - } - private final Map registry = new HashMap<>(); public void add(ResourceLocation id, BakedModelOverrideFactory factory) { @@ -22,4 +18,8 @@ public class BakedModelOverrideRegistry { public BakedModelOverrideFactory get(ResourceLocation id) { return registry.get(id); } + + public interface BakedModelOverrideFactory { + BakedModel create(BakedModel base, Map registry); + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/ConstantsCable.java b/src/main/java/com/refinedmods/refinedstorage/render/ConstantsCable.java index 1660fcae0..2100e8fa2 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/ConstantsCable.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/ConstantsCable.java @@ -7,14 +7,13 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverType; import com.refinedmods.refinedstorage.render.collision.CollisionGroup; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; import com.refinedmods.refinedstorage.util.CollisionUtils; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.shapes.VoxelShapes; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.IWorldReader; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; import javax.annotation.Nonnull; @@ -36,7 +35,7 @@ public class ConstantsCable { public static final CollisionGroup HOLDER_DOWN = new CollisionGroup().addItem(getHolderBounds(Direction.DOWN)); @Nonnull - public static AxisAlignedBB getCoverBounds(Direction side) { + public static AABB getCoverBounds(Direction side) { switch (side) { case DOWN: return CollisionUtils.getBounds(0, 0, 0, 16, 2, 16); @@ -56,7 +55,7 @@ public class ConstantsCable { } @Nonnull - public static AxisAlignedBB getHolderBounds(Direction side) { + public static AABB getHolderBounds(Direction side) { switch (side) { case DOWN: return CollisionUtils.getBounds(7, 2, 7, 9, 6, 9); @@ -75,17 +74,17 @@ public class ConstantsCable { } } - public static VoxelShape addCoverVoxelShapes(VoxelShape shape, IBlockReader world, BlockPos pos){ + public static VoxelShape addCoverVoxelShapes(VoxelShape shape, BlockGetter world, BlockPos pos) { if (world != null) { - TileEntity entity = world.getBlockEntity(pos); + BlockEntity entity = world.getBlockEntity(pos); if (entity instanceof NetworkNodeTile && ((NetworkNodeTile) entity).getNode() instanceof ICoverable) { CoverManager coverManager = ((ICoverable) ((NetworkNodeTile) entity).getNode()).getCoverManager(); for (Direction value : Direction.values()) { Cover cover = coverManager.getCover(value); if (cover != null) { - shape = VoxelShapes.or(shape, VoxelShapes.create(ConstantsCable.getCoverBounds(value))); + shape = Shapes.or(shape, Shapes.create(ConstantsCable.getCoverBounds(value))); if (cover.getType() == CoverType.NORMAL) { - shape = VoxelShapes.or(shape, VoxelShapes.create(ConstantsCable.getHolderBounds(value))); + shape = Shapes.or(shape, Shapes.create(ConstantsCable.getHolderBounds(value))); } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/FluidRenderer.java b/src/main/java/com/refinedmods/refinedstorage/render/FluidRenderer.java index 88aa67a93..1c9275637 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/FluidRenderer.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/FluidRenderer.java @@ -1,16 +1,14 @@ package com.refinedmods.refinedstorage.render; -import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.*; +import com.mojang.math.Matrix4f; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.fluid.Fluid; -import net.minecraft.inventory.container.PlayerContainer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.vector.Matrix4f; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.inventory.InventoryMenu; +import net.minecraft.world.level.material.Fluid; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; @@ -37,19 +35,54 @@ public class FluidRenderer { this.minHeight = minHeight; } - public void render(MatrixStack matrixStack, final int xPosition, final int yPosition, @Nullable FluidStack fluidStack) { + private static TextureAtlasSprite getStillFluidSprite(FluidStack fluidStack) { + Minecraft minecraft = Minecraft.getInstance(); + Fluid fluid = fluidStack.getFluid(); + FluidAttributes attributes = fluid.getAttributes(); + ResourceLocation fluidStill = attributes.getStillTexture(fluidStack); + return minecraft.getTextureAtlas(InventoryMenu.BLOCK_ATLAS).apply(fluidStill); + } + + private static void setGLColorFromInt(int color) { + float red = (color >> 16 & 0xFF) / 255.0F; + float green = (color >> 8 & 0xFF) / 255.0F; + float blue = (color & 0xFF) / 255.0F; + float alpha = ((color >> 24) & 0xFF) / 255F; + + RenderSystem.setShaderColor(red, green, blue, alpha); + } + + private static void drawTextureWithMasking(Matrix4f matrix, float xCoord, float yCoord, TextureAtlasSprite textureSprite, int maskTop, int maskRight, float zLevel) { + float uMin = textureSprite.getU0(); + float uMax = textureSprite.getU1(); + float vMin = textureSprite.getV0(); + float vMax = textureSprite.getV1(); + uMax = uMax - (maskRight / 16F * (uMax - uMin)); + vMax = vMax - (maskTop / 16F * (vMax - vMin)); + + RenderSystem.setShader(GameRenderer::getPositionTexShader); + + Tesselator tessellator = Tesselator.getInstance(); + BufferBuilder bufferBuilder = tessellator.getBuilder(); + bufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + bufferBuilder.vertex(matrix, xCoord, yCoord + 16, zLevel).uv(uMin, vMax).endVertex(); + bufferBuilder.vertex(matrix, xCoord + 16 - maskRight, yCoord + 16, zLevel).uv(uMax, vMax).endVertex(); + bufferBuilder.vertex(matrix, xCoord + 16 - maskRight, yCoord + maskTop, zLevel).uv(uMax, vMin).endVertex(); + bufferBuilder.vertex(matrix, xCoord, yCoord + maskTop, zLevel).uv(uMin, vMin).endVertex(); + tessellator.end(); + } + + public void render(PoseStack matrixStack, final int xPosition, final int yPosition, @Nullable FluidStack fluidStack) { RenderSystem.enableBlend(); - RenderSystem.enableAlphaTest(); drawFluid(matrixStack, xPosition, yPosition, fluidStack); - RenderSystem.color4f(1, 1, 1, 1); + RenderSystem.setShaderColor(1, 1, 1, 1); - RenderSystem.disableAlphaTest(); RenderSystem.disableBlend(); } - private void drawFluid(MatrixStack matrixStack, final int xPosition, final int yPosition, @Nullable FluidStack fluidStack) { + private void drawFluid(PoseStack matrixStack, final int xPosition, final int yPosition, @Nullable FluidStack fluidStack) { if (fluidStack == null) { return; } @@ -75,9 +108,8 @@ public class FluidRenderer { drawTiledSprite(matrixStack, xPosition, yPosition, width, height, fluidColor, scaledAmount, fluidStillSprite); } - private void drawTiledSprite(MatrixStack matrixStack, final int xPosition, final int yPosition, final int tiledWidth, final int tiledHeight, int color, int scaledAmount, TextureAtlasSprite sprite) { - Minecraft minecraft = Minecraft.getInstance(); - minecraft.getTextureManager().bind(PlayerContainer.BLOCK_ATLAS); + private void drawTiledSprite(PoseStack matrixStack, final int xPosition, final int yPosition, final int tiledWidth, final int tiledHeight, int color, int scaledAmount, TextureAtlasSprite sprite) { + RenderSystem.setShaderTexture(0, InventoryMenu.BLOCK_ATLAS); Matrix4f matrix = matrixStack.last().pose(); setGLColorFromInt(color); @@ -103,39 +135,4 @@ public class FluidRenderer { } } } - - private static TextureAtlasSprite getStillFluidSprite(FluidStack fluidStack) { - Minecraft minecraft = Minecraft.getInstance(); - Fluid fluid = fluidStack.getFluid(); - FluidAttributes attributes = fluid.getAttributes(); - ResourceLocation fluidStill = attributes.getStillTexture(fluidStack); - return minecraft.getTextureAtlas(PlayerContainer.BLOCK_ATLAS).apply(fluidStill); - } - - private static void setGLColorFromInt(int color) { - float red = (color >> 16 & 0xFF) / 255.0F; - float green = (color >> 8 & 0xFF) / 255.0F; - float blue = (color & 0xFF) / 255.0F; - float alpha = ((color >> 24) & 0xFF) / 255F; - - RenderSystem.color4f(red, green, blue, alpha); - } - - private static void drawTextureWithMasking(Matrix4f matrix, float xCoord, float yCoord, TextureAtlasSprite textureSprite, int maskTop, int maskRight, float zLevel) { - float uMin = textureSprite.getU0(); - float uMax = textureSprite.getU1(); - float vMin = textureSprite.getV0(); - float vMax = textureSprite.getV1(); - uMax = uMax - (maskRight / 16F * (uMax - uMin)); - vMax = vMax - (maskTop / 16F * (vMax - vMin)); - - Tessellator tessellator = Tessellator.getInstance(); - BufferBuilder bufferBuilder = tessellator.getBuilder(); - bufferBuilder.begin(7, DefaultVertexFormats.POSITION_TEX); - bufferBuilder.vertex(matrix, xCoord, yCoord + 16, zLevel).uv(uMin, vMax).endVertex(); - bufferBuilder.vertex(matrix, xCoord + 16 - maskRight, yCoord + 16, zLevel).uv(uMax, vMax).endVertex(); - bufferBuilder.vertex(matrix, xCoord + 16 - maskRight, yCoord + maskTop, zLevel).uv(uMax, vMin).endVertex(); - bufferBuilder.vertex(matrix, xCoord, yCoord + maskTop, zLevel).uv(uMin, vMin).endVertex(); - tessellator.end(); - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/RenderSettings.java b/src/main/java/com/refinedmods/refinedstorage/render/RenderSettings.java index ca0b6bdae..e9102bef7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/RenderSettings.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/RenderSettings.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.render; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; public class RenderSettings { public static final RenderSettings INSTANCE = new RenderSettings(); @@ -20,7 +20,7 @@ public class RenderSettings { } if (secondaryColor == -1) { - this.secondaryColor = TextFormatting.WHITE.getColor(); + this.secondaryColor = ChatFormatting.WHITE.getColor(); } else { this.secondaryColor = secondaryColor; } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/Styles.java b/src/main/java/com/refinedmods/refinedstorage/render/Styles.java index f0b5b3f58..a69261ffb 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/Styles.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/Styles.java @@ -1,16 +1,16 @@ package com.refinedmods.refinedstorage.render; -import net.minecraft.util.text.Color; -import net.minecraft.util.text.Style; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Style; +import net.minecraft.network.chat.TextColor; public final class Styles { - public static final Style WHITE = Style.EMPTY.withColor(Color.fromLegacyFormat(TextFormatting.WHITE)); - public static final Style GRAY = Style.EMPTY.withColor(Color.fromLegacyFormat(TextFormatting.GRAY)); - public static final Style YELLOW = Style.EMPTY.withColor(Color.fromLegacyFormat(TextFormatting.YELLOW)); - public static final Style RED = Style.EMPTY.withColor(Color.fromLegacyFormat(TextFormatting.RED)); - public static final Style BLUE = Style.EMPTY.withColor(Color.fromLegacyFormat(TextFormatting.BLUE)); - public static final Style AQUA = Style.EMPTY.withColor(Color.fromLegacyFormat(TextFormatting.AQUA)); + public static final Style WHITE = Style.EMPTY.withColor(TextColor.fromLegacyFormat(ChatFormatting.WHITE)); + public static final Style GRAY = Style.EMPTY.withColor(TextColor.fromLegacyFormat(ChatFormatting.GRAY)); + public static final Style YELLOW = Style.EMPTY.withColor(TextColor.fromLegacyFormat(ChatFormatting.YELLOW)); + public static final Style RED = Style.EMPTY.withColor(TextColor.fromLegacyFormat(ChatFormatting.RED)); + public static final Style BLUE = Style.EMPTY.withColor(TextColor.fromLegacyFormat(ChatFormatting.BLUE)); + public static final Style AQUA = Style.EMPTY.withColor(TextColor.fromLegacyFormat(ChatFormatting.AQUA)); private Styles() { } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/collision/CollisionGroup.java b/src/main/java/com/refinedmods/refinedstorage/render/collision/CollisionGroup.java index 06ed72c43..ccec4ac81 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/collision/CollisionGroup.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/collision/CollisionGroup.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.render.collision; -import net.minecraft.util.Direction; -import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.core.Direction; +import net.minecraft.world.phys.AABB; import javax.annotation.Nullable; import java.util.ArrayList; @@ -9,18 +9,18 @@ import java.util.List; public class CollisionGroup { - private List items = new ArrayList<>(); + private List items = new ArrayList<>(); private boolean canAccessGui; @Nullable private Direction direction; - public CollisionGroup addItem(AxisAlignedBB item) { + public CollisionGroup addItem(AABB item) { items.add(item); return this; } - public List getItems() { + public List getItems() { return items; } @@ -34,15 +34,15 @@ public class CollisionGroup { return this; } + @Nullable + public Direction getDirection() { + return direction; + } + public CollisionGroup setDirection(Direction direction) { this.direction = direction; return this; } - @Nullable - public Direction getDirection() { - return direction; - } - } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/color/PatternItemColor.java b/src/main/java/com/refinedmods/refinedstorage/render/color/PatternItemColor.java index 3914020a3..6840ffa55 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/color/PatternItemColor.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/color/PatternItemColor.java @@ -4,10 +4,10 @@ import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPattern; import com.refinedmods.refinedstorage.item.PatternItem; import com.refinedmods.refinedstorage.render.model.PatternBakedModel; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.color.IItemColor; -import net.minecraft.item.ItemStack; +import net.minecraft.client.color.item.ItemColor; +import net.minecraft.world.item.ItemStack; -public class PatternItemColor implements IItemColor { +public class PatternItemColor implements ItemColor { @Override public int getColor(ItemStack stack, int tintIndex) { ICraftingPattern pattern = PatternItem.fromCache(Minecraft.getInstance().level, stack); diff --git a/src/main/java/com/refinedmods/refinedstorage/render/model/BakedModelCableCover.java b/src/main/java/com/refinedmods/refinedstorage/render/model/BakedModelCableCover.java index 7928ef2ef..648546373 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/model/BakedModelCableCover.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/model/BakedModelCableCover.java @@ -1,5 +1,6 @@ package com.refinedmods.refinedstorage.render.model; +import com.mojang.math.Vector3f; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.RSBlocks; import com.refinedmods.refinedstorage.apiimpl.network.node.cover.Cover; @@ -7,18 +8,15 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager; import com.refinedmods.refinedstorage.block.BaseBlock; import com.refinedmods.refinedstorage.render.ConstantsCable; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.Atlases; -import net.minecraft.client.renderer.model.BakedQuad; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.client.renderer.texture.AtlasTexture; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.vector.Vector3f; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.Direction; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; import net.minecraftforge.client.model.data.IModelData; import javax.annotation.Nullable; @@ -27,36 +25,21 @@ import java.util.HashMap; import java.util.List; import java.util.Random; -public class BakedModelCableCover extends DelegateBakedModel{ +public class BakedModelCableCover extends DelegateBakedModel { private static TextureAtlasSprite BORDER_SPRITE; - public BakedModelCableCover(IBakedModel base) { + public BakedModelCableCover(BakedModel base) { super(base); } - @Override - public List getQuads(@Nullable BlockState state, @Nullable Direction side, Random rand, IModelData data) { - List quads = new ArrayList<>(base.getQuads(state, side, rand, data)); - if (data != null && data.hasProperty(CoverManager.PROPERTY)) { - CoverManager manager = data.getData(CoverManager.PROPERTY); - addCover(quads, manager.getCover(Direction.NORTH), Direction.NORTH, side, rand, manager, state, true); - addCover(quads, manager.getCover(Direction.SOUTH), Direction.SOUTH, side, rand, manager, state, true); - addCover(quads, manager.getCover(Direction.EAST), Direction.EAST, side, rand, manager, state, true); - addCover(quads, manager.getCover(Direction.WEST), Direction.WEST, side, rand, manager, state, true); - addCover(quads, manager.getCover(Direction.DOWN), Direction.DOWN, side, rand, manager, state, true); - addCover(quads, manager.getCover(Direction.UP), Direction.UP, side, rand, manager, state, true); - } - return quads; - } - private static int getHollowCoverSize(@Nullable BlockState state, Direction coverSide) { if (state == null) { return 6; } BaseBlock block = (BaseBlock) state.getBlock(); - if (block == RSBlocks.CABLE.get()){ + if (block == RSBlocks.CABLE.get()) { return 6; } @@ -73,7 +56,7 @@ public class BakedModelCableCover extends DelegateBakedModel{ return 6; } - protected static void addCover(List quads, @Nullable Cover cover, Direction coverSide, Direction side, Random rand, @Nullable CoverManager manager, BlockState state, boolean handle) { + protected static void addCover(List quads, @Nullable Cover cover, Direction coverSide, Direction side, Random rand, @Nullable CoverManager manager, BlockState state, boolean handle) { if (cover == null) { return; } @@ -104,7 +87,7 @@ public class BakedModelCableCover extends DelegateBakedModel{ } private static void addNormalCover(List quads, BlockState state, Direction coverSide, boolean hasUp, boolean hasDown, boolean hasEast, boolean hasWest, boolean handle, Random random) { - AxisAlignedBB bounds = ConstantsCable.getCoverBounds(coverSide); + AABB bounds = ConstantsCable.getCoverBounds(coverSide); Vector3f from = new Vector3f((float) bounds.minX * 16, (float) bounds.minY * 16, (float) bounds.minZ * 16); Vector3f to = new Vector3f((float) bounds.maxX * 16, (float) bounds.maxY * 16, (float) bounds.maxZ * 16); @@ -142,7 +125,7 @@ public class BakedModelCableCover extends DelegateBakedModel{ if (handle) { if (BORDER_SPRITE == null) { - BORDER_SPRITE = Minecraft.getInstance().getTextureAtlas(AtlasTexture.LOCATION_BLOCKS).apply(new ResourceLocation(RS.ID , "block/cable_part_border")); + BORDER_SPRITE = Minecraft.getInstance().getTextureAtlas(TextureAtlas.LOCATION_BLOCKS).apply(new ResourceLocation(RS.ID, "block/cable_part_border")); } bounds = ConstantsCable.getHolderBounds(coverSide); @@ -155,7 +138,7 @@ public class BakedModelCableCover extends DelegateBakedModel{ } private static void addHollowCover(List quads, BlockState state, Direction coverSide, boolean hasUp, boolean hasDown, boolean hasEast, boolean hasWest, int size, Random random) { - AxisAlignedBB bounds = ConstantsCable.getCoverBounds(coverSide); + AABB bounds = ConstantsCable.getCoverBounds(coverSide); Vector3f from = new Vector3f((float) bounds.minX * 16, (float) bounds.minY * 16, (float) bounds.minZ * 16); Vector3f to = new Vector3f((float) bounds.maxX * 16, (float) bounds.maxY * 16, (float) bounds.maxZ * 16); @@ -199,10 +182,10 @@ public class BakedModelCableCover extends DelegateBakedModel{ } HashMap spriteCache = new HashMap<>(); //Changed from 1.12: to improve sprite getting for each side quads.addAll(new CubeBuilder() - .from(from.x(), from.y(), from.z()) - .to(to.x(), to.y(), to.z()) - .addFaces(face -> new CubeBuilder.Face(face, spriteCache.computeIfAbsent(face, direction -> RenderUtils.getSprite(Minecraft.getInstance().getBlockRenderer().getBlockModel(state), state, direction, random)))) - .bake() + .from(from.x(), from.y(), from.z()) + .to(to.x(), to.y(), to.z()) + .addFaces(face -> new CubeBuilder.Face(face, spriteCache.computeIfAbsent(face, direction -> RenderUtils.getSprite(Minecraft.getInstance().getBlockRenderer().getBlockModel(state), state, direction, random)))) + .bake() ); // Left @@ -234,10 +217,10 @@ public class BakedModelCableCover extends DelegateBakedModel{ } quads.addAll(new CubeBuilder() - .from(from.x(), from.y(), from.z()) - .to(to.x(), to.y(), to.z()) - .addFaces(face -> new CubeBuilder.Face(face, spriteCache.computeIfAbsent(face, direction -> RenderUtils.getSprite(Minecraft.getInstance().getBlockRenderer().getBlockModel(state), state, direction, random)))) - .bake() + .from(from.x(), from.y(), from.z()) + .to(to.x(), to.y(), to.z()) + .addFaces(face -> new CubeBuilder.Face(face, spriteCache.computeIfAbsent(face, direction -> RenderUtils.getSprite(Minecraft.getInstance().getBlockRenderer().getBlockModel(state), state, direction, random)))) + .bake() ); // Bottom @@ -294,10 +277,10 @@ public class BakedModelCableCover extends DelegateBakedModel{ } quads.addAll(new CubeBuilder() - .from(from.x(), from.y(), from.z()) - .to(to.x(), to.y(), to.z()) - .addFaces(face -> new CubeBuilder.Face(face, spriteCache.computeIfAbsent(face, direction -> RenderUtils.getSprite(Minecraft.getInstance().getBlockRenderer().getBlockModel(state), state, direction, random)))) - .bake() + .from(from.x(), from.y(), from.z()) + .to(to.x(), to.y(), to.z()) + .addFaces(face -> new CubeBuilder.Face(face, spriteCache.computeIfAbsent(face, direction -> RenderUtils.getSprite(Minecraft.getInstance().getBlockRenderer().getBlockModel(state), state, direction, random)))) + .bake() ); // Up @@ -354,11 +337,26 @@ public class BakedModelCableCover extends DelegateBakedModel{ } quads.addAll(new CubeBuilder() - .from(from.x(), from.y(), from.z()) - .to(to.x(), to.y(), to.z()) - .addFaces(face -> new CubeBuilder.Face(face, spriteCache.computeIfAbsent(face, direction -> RenderUtils.getSprite(Minecraft.getInstance().getBlockRenderer().getBlockModel(state), state, direction, random)))) - .bake() + .from(from.x(), from.y(), from.z()) + .to(to.x(), to.y(), to.z()) + .addFaces(face -> new CubeBuilder.Face(face, spriteCache.computeIfAbsent(face, direction -> RenderUtils.getSprite(Minecraft.getInstance().getBlockRenderer().getBlockModel(state), state, direction, random)))) + .bake() ); } + + @Override + public List getQuads(@Nullable BlockState state, @Nullable Direction side, Random rand, IModelData data) { + List quads = new ArrayList<>(base.getQuads(state, side, rand, data)); + if (data != null && data.hasProperty(CoverManager.PROPERTY)) { + CoverManager manager = data.getData(CoverManager.PROPERTY); + addCover(quads, manager.getCover(Direction.NORTH), Direction.NORTH, side, rand, manager, state, true); + addCover(quads, manager.getCover(Direction.SOUTH), Direction.SOUTH, side, rand, manager, state, true); + addCover(quads, manager.getCover(Direction.EAST), Direction.EAST, side, rand, manager, state, true); + addCover(quads, manager.getCover(Direction.WEST), Direction.WEST, side, rand, manager, state, true); + addCover(quads, manager.getCover(Direction.DOWN), Direction.DOWN, side, rand, manager, state, true); + addCover(quads, manager.getCover(Direction.UP), Direction.UP, side, rand, manager, state, true); + } + return quads; + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/model/BakedModelCover.java b/src/main/java/com/refinedmods/refinedstorage/render/model/BakedModelCover.java index 64049c85b..6818916c4 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/model/BakedModelCover.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/model/BakedModelCover.java @@ -3,27 +3,110 @@ package com.refinedmods.refinedstorage.render.model; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Transformation; import com.refinedmods.refinedstorage.apiimpl.network.node.cover.Cover; import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverType; import com.refinedmods.refinedstorage.item.CoverItem; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.model.BakedQuad; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.client.renderer.model.ItemCameraTransforms; -import net.minecraft.client.renderer.model.ItemOverrideList; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.block.model.ItemOverrides; +import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Direction; -import net.minecraft.util.math.vector.TransformationMatrix; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.state.BlockState; import javax.annotation.Nullable; import java.util.*; -public class BakedModelCover extends BakedModelCableCover{ +public class BakedModelCover extends BakedModelCableCover { + + private static final LoadingCache> CACHE = CacheBuilder.newBuilder().build(new CacheLoader>() { + @Override + public List load(CacheKey key) { + List quads = new ArrayList<>(); + + addCover(quads, new Cover(key.stack, key.type), Direction.NORTH, key.side, new Random(), null, null, true); + + return quads; + } + }); + private ItemStack stack; + private CoverType type; + public BakedModelCover(ItemStack stack, CoverType type) { + super(null); + + this.stack = stack; + this.type = type; + } + + @Override + public List getQuads(@Nullable BlockState state, @Nullable Direction side, Random rand) { + if (stack.isEmpty()) { + return Collections.emptyList(); + } + + CacheKey key = new CacheKey(state, CoverItem.getItem(stack), side, type); + + return CACHE.getUnchecked(key); + } + + @Override + public ItemOverrides getOverrides() { + return new ItemOverrides() { + @Override + public BakedModel resolve(BakedModel originalModel, ItemStack stack, @Nullable ClientLevel world, @Nullable LivingEntity entity, int p) { + return new BakedModelCover(stack, type); + } + }; + } + + @Override + public BakedModel handlePerspective(ItemTransforms.TransformType cameraTransformType, PoseStack matrixStack) { + Transformation transform = RenderUtils.getDefaultBlockTransforms().get(cameraTransformType); + if (transform != null) transform.push(matrixStack); + return this; + } + + @Override + public boolean useAmbientOcclusion() { + return true; + } + + @Override + public boolean isGui3d() { + return true; + } + + @Override + public boolean isCustomRenderer() { + return false; + } + + @Override + public TextureAtlasSprite getParticleIcon() { + return null; + } + + @Override + public boolean useAmbientOcclusion(BlockState state) { + return true; + } + + @Override + @SuppressWarnings("deprecation") + public ItemTransforms getTransforms() { + return ItemTransforms.NO_TRANSFORMS; + } + + @Override + public boolean usesBlockLight() { + return true; + } private class CacheKey { private BlockState state; @@ -63,89 +146,4 @@ public class BakedModelCover extends BakedModelCableCover{ return result; } } - - private static final LoadingCache> CACHE = CacheBuilder.newBuilder().build(new CacheLoader>() { - @Override - public List load(CacheKey key) { - List quads = new ArrayList<>(); - - addCover(quads, new Cover(key.stack, key.type), Direction.NORTH, key.side, new Random(), null, null, true); - - return quads; - } - }); - - private ItemStack stack; - private CoverType type; - - public BakedModelCover(ItemStack stack, CoverType type) { - super(null); - - this.stack = stack; - this.type = type; - } - - @Override - public List getQuads(@Nullable BlockState state, @Nullable Direction side, Random rand) { - if (stack.isEmpty()) { - return Collections.emptyList(); - } - - CacheKey key = new CacheKey(state, CoverItem.getItem(stack), side, type); - - return CACHE.getUnchecked(key); - } - - @Override - public ItemOverrideList getOverrides() { - return new ItemOverrideList() { - @Override - public IBakedModel resolve(IBakedModel originalModel, ItemStack stack, @Nullable ClientWorld world, @Nullable LivingEntity entity) { - return new BakedModelCover(stack, type); - } - }; - } - - @Override - public IBakedModel handlePerspective(ItemCameraTransforms.TransformType cameraTransformType, MatrixStack matrixStack) { - TransformationMatrix transform = RenderUtils.getDefaultBlockTransforms().get(cameraTransformType); - if (transform != null) transform.push(matrixStack); - return this; - } - - @Override - public boolean useAmbientOcclusion() { - return true; - } - - @Override - public boolean isGui3d() { - return true; - } - - @Override - public boolean isCustomRenderer() { - return false; - } - - @Override - public TextureAtlasSprite getParticleIcon() { - return null; - } - - @Override - public boolean isAmbientOcclusion(BlockState state) { - return true; - } - - @Override - @SuppressWarnings("deprecation") - public ItemCameraTransforms getTransforms() { - return ItemCameraTransforms.NO_TRANSFORMS; - } - - @Override - public boolean usesBlockLight() { - return true; - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/model/CubeBuilder.java b/src/main/java/com/refinedmods/refinedstorage/render/model/CubeBuilder.java index 2939d9029..94300e9c5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/model/CubeBuilder.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/model/CubeBuilder.java @@ -1,13 +1,13 @@ package com.refinedmods.refinedstorage.render.model; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.VertexFormat; +import com.mojang.blaze3d.vertex.VertexFormatElement; +import com.mojang.math.Vector3f; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.renderer.model.BakedQuad; +import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.client.renderer.vertex.VertexFormat; -import net.minecraft.client.renderer.vertex.VertexFormatElement; -import net.minecraft.util.Direction; -import net.minecraft.util.math.vector.Vector3f; +import net.minecraft.core.Direction; import net.minecraftforge.client.model.pipeline.BakedQuadBuilder; import java.util.ArrayList; @@ -18,47 +18,9 @@ import java.util.function.Function; public class CubeBuilder { - public enum UvRotation { - CLOCKWISE_0, - CLOCKWISE_90, - CLOCKWISE_180, - CLOCKWISE_270 - } - - private static class Uv { - private float xFrom; - private float xTo; - private float yFrom; - private float yTo; - } - - public static class Face { - private Direction face; - private TextureAtlasSprite sprite; - private int light; - private UvRotation uvRotation = UvRotation.CLOCKWISE_0; - - public Face(Direction face, TextureAtlasSprite sprite) { - this.face = face; - this.sprite = sprite; - } - - public Face(Direction face, TextureAtlasSprite sprite, UvRotation uvRotation) { - this(face, sprite); - - this.uvRotation = uvRotation; - } - - public Face(Direction face, TextureAtlasSprite sprite, UvRotation uvRotation, int light) { - this(face, sprite, uvRotation); - - this.light = light; - } - } - private Vector3f from; private Vector3f to; - private VertexFormat format = DefaultVertexFormats.BLOCK; //Changed from Item + private VertexFormat format = DefaultVertexFormat.BLOCK; //Changed from Item private Map faces = new HashMap<>(); private int color = 0xFFFFFFFF; @@ -349,5 +311,43 @@ public class CubeBuilder { } } } - + + public enum UvRotation { + CLOCKWISE_0, + CLOCKWISE_90, + CLOCKWISE_180, + CLOCKWISE_270 + } + + private static class Uv { + private float xFrom; + private float xTo; + private float yFrom; + private float yTo; + } + + public static class Face { + private Direction face; + private TextureAtlasSprite sprite; + private int light; + private UvRotation uvRotation = UvRotation.CLOCKWISE_0; + + public Face(Direction face, TextureAtlasSprite sprite) { + this.face = face; + this.sprite = sprite; + } + + public Face(Direction face, TextureAtlasSprite sprite, UvRotation uvRotation) { + this(face, sprite); + + this.uvRotation = uvRotation; + } + + public Face(Direction face, TextureAtlasSprite sprite, UvRotation uvRotation, int light) { + this(face, sprite, uvRotation); + + this.light = light; + } + } + } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/model/DelegateBakedModel.java b/src/main/java/com/refinedmods/refinedstorage/render/model/DelegateBakedModel.java index 0a963a810..35483721e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/model/DelegateBakedModel.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/model/DelegateBakedModel.java @@ -1,22 +1,22 @@ package com.refinedmods.refinedstorage.render.model; -import com.mojang.blaze3d.matrix.MatrixStack; -import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.model.BakedQuad; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.client.renderer.model.ItemCameraTransforms; -import net.minecraft.client.renderer.model.ItemOverrideList; +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.block.model.ItemOverrides; +import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.util.Direction; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.state.BlockState; import javax.annotation.Nullable; import java.util.List; import java.util.Random; -public class DelegateBakedModel implements IBakedModel { - protected final IBakedModel base; +public class DelegateBakedModel implements BakedModel { + protected final BakedModel base; - public DelegateBakedModel(IBakedModel base) { + public DelegateBakedModel(BakedModel base) { this.base = base; } @@ -53,19 +53,19 @@ public class DelegateBakedModel implements IBakedModel { } @Override - public ItemOverrideList getOverrides() { + public ItemOverrides getOverrides() { return base.getOverrides(); } @Override @SuppressWarnings("deprecation") - public ItemCameraTransforms getTransforms() { + public ItemTransforms getTransforms() { return base.getTransforms(); } @Override @SuppressWarnings("deprecation") - public IBakedModel handlePerspective(ItemCameraTransforms.TransformType cameraTransformType, MatrixStack matrixStack) { + public BakedModel handlePerspective(ItemTransforms.TransformType cameraTransformType, PoseStack matrixStack) { return base.handlePerspective(cameraTransformType, matrixStack); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/model/DiskDriveBakedModel.java b/src/main/java/com/refinedmods/refinedstorage/render/model/DiskDriveBakedModel.java index 062230271..2c352b2a4 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/model/DiskDriveBakedModel.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/model/DiskDriveBakedModel.java @@ -3,14 +3,14 @@ package com.refinedmods.refinedstorage.render.model; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; +import com.mojang.math.Vector3f; import com.refinedmods.refinedstorage.RSBlocks; import com.refinedmods.refinedstorage.apiimpl.network.node.DiskState; import com.refinedmods.refinedstorage.tile.DiskDriveTile; -import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.model.BakedQuad; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.util.Direction; -import net.minecraft.util.math.vector.Vector3f; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.data.IModelData; import javax.annotation.Nonnull; @@ -21,6 +21,99 @@ import java.util.List; import java.util.Random; public class DiskDriveBakedModel extends DelegateBakedModel { + private final BakedModel disk; + private final BakedModel diskNearCapacity; + private final BakedModel diskFull; + private final BakedModel diskDisconnected; + private final LoadingCache> cache = CacheBuilder.newBuilder().build(new CacheLoader>() { + @Override + @SuppressWarnings("deprecation") + public List load(CacheKey key) { + Direction facing = key.state.getValue(RSBlocks.DISK_DRIVE.get().getDirection().getProperty()); + + List quads = new ArrayList<>(QuadTransformer.getTransformedQuads(base, facing, null, key.state, key.random, key.side)); + + int x = 0; + int y = 0; + for (int i = 0; i < 8; ++i) { + if (key.diskState[i] != DiskState.NONE) { + BakedModel diskModel = getDiskModel(key.diskState[i]); + + quads.addAll(QuadTransformer.getTransformedQuads( + diskModel, + facing, + getDiskTranslation(facing, x, y), + key.state, + key.random, + key.side + )); + } + + x++; + if ((i + 1) % 2 == 0) { + y++; + x = 0; + } + } + + return quads; + } + + private BakedModel getDiskModel(DiskState diskState) { + switch (diskState) { + case DISCONNECTED: + return diskDisconnected; + case NEAR_CAPACITY: + return diskNearCapacity; + case FULL: + return diskFull; + default: + return disk; + } + } + + private Vector3f getDiskTranslation(Direction facing, int x, int y) { + Vector3f translation = new Vector3f(); + + if (facing == Direction.NORTH || facing == Direction.SOUTH) { + translation.add(((2F / 16F) + ((float) x * 7F) / 16F) * (facing == Direction.NORTH ? -1 : 1), 0, 0); // Add to X + } else if (facing == Direction.EAST || facing == Direction.WEST) { + translation.add(0, 0, ((2F / 16F) + ((float) x * 7F) / 16F) * (facing == Direction.EAST ? -1 : 1)); // Add to Z + } + + translation.add(0, -((2F / 16F) + ((float) y * 3F) / 16F), 0); // Remove from Y + + return translation; + } + }); + + public DiskDriveBakedModel(BakedModel base, + BakedModel disk, + BakedModel diskNearCapacity, + BakedModel diskFull, + BakedModel diskDisconnected) { + super(base); + + this.disk = disk; + this.diskNearCapacity = diskNearCapacity; + this.diskFull = diskFull; + this.diskDisconnected = diskDisconnected; + } + + @Nonnull + @Override + public List getQuads(@Nullable BlockState state, @Nullable Direction side, @Nonnull Random rand, @Nonnull IModelData data) { + DiskState[] diskState = data.getData(DiskDriveTile.DISK_STATE_PROPERTY); + + if (diskState == null) { + return base.getQuads(state, side, rand, data); + } + + CacheKey key = new CacheKey(state, side, diskState, rand); + + return cache.getUnchecked(key); + } + private static class CacheKey { private final BlockState state; private final Direction side; @@ -65,98 +158,4 @@ public class DiskDriveBakedModel extends DelegateBakedModel { return result; } } - - private final IBakedModel disk; - private final IBakedModel diskNearCapacity; - private final IBakedModel diskFull; - private final IBakedModel diskDisconnected; - - private final LoadingCache> cache = CacheBuilder.newBuilder().build(new CacheLoader>() { - @Override - @SuppressWarnings("deprecation") - public List load(CacheKey key) { - Direction facing = key.state.getValue(RSBlocks.DISK_DRIVE.get().getDirection().getProperty()); - - List quads = new ArrayList<>(QuadTransformer.getTransformedQuads(base, facing, null, key.state, key.random, key.side)); - - int x = 0; - int y = 0; - for (int i = 0; i < 8; ++i) { - if (key.diskState[i] != DiskState.NONE) { - IBakedModel diskModel = getDiskModel(key.diskState[i]); - - quads.addAll(QuadTransformer.getTransformedQuads( - diskModel, - facing, - getDiskTranslation(facing, x, y), - key.state, - key.random, - key.side - )); - } - - x++; - if ((i + 1) % 2 == 0) { - y++; - x = 0; - } - } - - return quads; - } - - private IBakedModel getDiskModel(DiskState diskState) { - switch (diskState) { - case DISCONNECTED: - return diskDisconnected; - case NEAR_CAPACITY: - return diskNearCapacity; - case FULL: - return diskFull; - default: - return disk; - } - } - - private Vector3f getDiskTranslation(Direction facing, int x, int y) { - Vector3f translation = new Vector3f(); - - if (facing == Direction.NORTH || facing == Direction.SOUTH) { - translation.add(((2F / 16F) + ((float) x * 7F) / 16F) * (facing == Direction.NORTH ? -1 : 1), 0, 0); // Add to X - } else if (facing == Direction.EAST || facing == Direction.WEST) { - translation.add(0, 0, ((2F / 16F) + ((float) x * 7F) / 16F) * (facing == Direction.EAST ? -1 : 1)); // Add to Z - } - - translation.add(0, -((2F / 16F) + ((float) y * 3F) / 16F), 0); // Remove from Y - - return translation; - } - }); - - public DiskDriveBakedModel(IBakedModel base, - IBakedModel disk, - IBakedModel diskNearCapacity, - IBakedModel diskFull, - IBakedModel diskDisconnected) { - super(base); - - this.disk = disk; - this.diskNearCapacity = diskNearCapacity; - this.diskFull = diskFull; - this.diskDisconnected = diskDisconnected; - } - - @Nonnull - @Override - public List getQuads(@Nullable BlockState state, @Nullable Direction side, @Nonnull Random rand, @Nonnull IModelData data) { - DiskState[] diskState = data.getData(DiskDriveTile.DISK_STATE_PROPERTY); - - if (diskState == null) { - return base.getQuads(state, side, rand, data); - } - - CacheKey key = new CacheKey(state, side, diskState, rand); - - return cache.getUnchecked(key); - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/model/DiskManipulatorBakedModel.java b/src/main/java/com/refinedmods/refinedstorage/render/model/DiskManipulatorBakedModel.java index 2b690f343..20b18cd1f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/model/DiskManipulatorBakedModel.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/model/DiskManipulatorBakedModel.java @@ -3,16 +3,16 @@ package com.refinedmods.refinedstorage.render.model; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; +import com.mojang.math.Vector3f; import com.refinedmods.refinedstorage.RSBlocks; import com.refinedmods.refinedstorage.apiimpl.network.node.DiskState; import com.refinedmods.refinedstorage.block.NetworkNodeBlock; import com.refinedmods.refinedstorage.tile.DiskManipulatorTile; import com.refinedmods.refinedstorage.util.ColorMap; -import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.model.BakedQuad; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.util.Direction; -import net.minecraft.util.math.vector.Vector3f; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.data.IModelData; import javax.annotation.Nonnull; @@ -23,6 +23,107 @@ import java.util.List; import java.util.Random; public class DiskManipulatorBakedModel extends DelegateBakedModel { + private final BakedModel baseConnected; + private final BakedModel baseDisconnected; + private final BakedModel disk; + private final BakedModel diskNearCapacity; + private final BakedModel diskFull; + private final BakedModel diskDisconnected; + private final LoadingCache> cache = CacheBuilder.newBuilder().build(new CacheLoader>() { + @Override + @SuppressWarnings("deprecation") + public List load(CacheKey key) { + Direction facing = key.state.getValue(RSBlocks.DISK_MANIPULATOR.get(ColorMap.DEFAULT_COLOR).get().getDirection().getProperty()); + boolean connected = key.state.getValue(NetworkNodeBlock.CONNECTED); + + List quads = new ArrayList<>(QuadTransformer.getTransformedQuads( + connected ? baseConnected : baseDisconnected, + facing, + null, + key.state, + key.random, + key.side + )); + + int x = 0; + int y = 0; + for (int i = 0; i < 6; ++i) { + if (key.diskState[i] != DiskState.NONE) { + BakedModel diskModel = getDiskModel(key.diskState[i]); + + quads.addAll(QuadTransformer.getTransformedQuads( + diskModel, + facing, + getDiskTranslation(facing, x, y), + key.state, + key.random, + key.side + )); + } + + y++; + if ((i + 1) % 3 == 0) { + x++; + y = 0; + } + } + + return quads; + } + + private BakedModel getDiskModel(DiskState diskState) { + switch (diskState) { + case DISCONNECTED: + return diskDisconnected; + case NEAR_CAPACITY: + return diskNearCapacity; + case FULL: + return diskFull; + default: + return disk; + } + } + + private Vector3f getDiskTranslation(Direction facing, int x, int y) { + Vector3f translation = new Vector3f(); + + if (facing == Direction.NORTH || facing == Direction.SOUTH) { + translation.add((2F / 16F + ((float) x * 7F) / 16F) * (facing == Direction.NORTH ? -1 : 1), 0, 0); // Add to X + } else if (facing == Direction.EAST || facing == Direction.WEST) { + translation.add(0, 0, (2F / 16F + ((float) x * 7F) / 16F) * (facing == Direction.EAST ? -1 : 1)); // Add to Z + } + + translation.add(0, -((6F / 16F) + (3F * y) / 16F), 0); // Remove from Y + + return translation; + } + }); + + public DiskManipulatorBakedModel(BakedModel baseConnected, BakedModel baseDisconnected, BakedModel disk, BakedModel diskNearCapacity, BakedModel diskFull, BakedModel diskDisconnected) { + super(baseConnected); + + this.baseConnected = baseConnected; + this.baseDisconnected = baseDisconnected; + this.disk = disk; + this.diskNearCapacity = diskNearCapacity; + this.diskFull = diskFull; + this.diskDisconnected = diskDisconnected; + } + + @Override + @Nonnull + public List getQuads(@Nullable BlockState state, @Nullable Direction side, @Nonnull Random rand, @Nonnull IModelData data) { + DiskState[] diskState = data.getData(DiskManipulatorTile.DISK_STATE_PROPERTY); + + if (diskState == null) { + return base.getQuads(state, side, rand, data); + } + + CacheKey key = new CacheKey(state, side, diskState, rand); + + return cache.getUnchecked(key); + } + private static class CacheKey { private final BlockState state; private final Direction side; @@ -67,106 +168,4 @@ public class DiskManipulatorBakedModel extends DelegateBakedModel { return result; } } - - private final IBakedModel baseConnected; - private final IBakedModel baseDisconnected; - private final IBakedModel disk; - private final IBakedModel diskNearCapacity; - private final IBakedModel diskFull; - private final IBakedModel diskDisconnected; - - private final LoadingCache> cache = CacheBuilder.newBuilder().build(new CacheLoader>() { - @Override - @SuppressWarnings("deprecation") - public List load(CacheKey key) { - Direction facing = key.state.getValue(RSBlocks.DISK_MANIPULATOR.get(ColorMap.DEFAULT_COLOR).get().getDirection().getProperty()); - boolean connected = key.state.getValue(NetworkNodeBlock.CONNECTED); - - List quads = new ArrayList<>(QuadTransformer.getTransformedQuads( - connected ? baseConnected : baseDisconnected, - facing, - null, - key.state, - key.random, - key.side - )); - - int x = 0; - int y = 0; - for (int i = 0; i < 6; ++i) { - if (key.diskState[i] != DiskState.NONE) { - IBakedModel diskModel = getDiskModel(key.diskState[i]); - - quads.addAll(QuadTransformer.getTransformedQuads( - diskModel, - facing, - getDiskTranslation(facing, x, y), - key.state, - key.random, - key.side - )); - } - - y++; - if ((i + 1) % 3 == 0) { - x++; - y = 0; - } - } - - return quads; - } - - private IBakedModel getDiskModel(DiskState diskState) { - switch (diskState) { - case DISCONNECTED: - return diskDisconnected; - case NEAR_CAPACITY: - return diskNearCapacity; - case FULL: - return diskFull; - default: - return disk; - } - } - - private Vector3f getDiskTranslation(Direction facing, int x, int y) { - Vector3f translation = new Vector3f(); - - if (facing == Direction.NORTH || facing == Direction.SOUTH) { - translation.add((2F / 16F + ((float) x * 7F) / 16F) * (facing == Direction.NORTH ? -1 : 1), 0, 0); // Add to X - } else if (facing == Direction.EAST || facing == Direction.WEST) { - translation.add(0, 0, (2F / 16F + ((float) x * 7F) / 16F) * (facing == Direction.EAST ? -1 : 1)); // Add to Z - } - - translation.add(0, -((6F / 16F) + (3F * y) / 16F), 0); // Remove from Y - - return translation; - } - }); - - public DiskManipulatorBakedModel(IBakedModel baseConnected, IBakedModel baseDisconnected, IBakedModel disk, IBakedModel diskNearCapacity, IBakedModel diskFull, IBakedModel diskDisconnected) { - super(baseConnected); - - this.baseConnected = baseConnected; - this.baseDisconnected = baseDisconnected; - this.disk = disk; - this.diskNearCapacity = diskNearCapacity; - this.diskFull = diskFull; - this.diskDisconnected = diskDisconnected; - } - - @Override - @Nonnull - public List getQuads(@Nullable BlockState state, @Nullable Direction side, @Nonnull Random rand, @Nonnull IModelData data) { - DiskState[] diskState = data.getData(DiskManipulatorTile.DISK_STATE_PROPERTY); - - if (diskState == null) { - return base.getQuads(state, side, rand, data); - } - - CacheKey key = new CacheKey(state, side, diskState, rand); - - return cache.getUnchecked(key); - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/model/FullbrightBakedModel.java b/src/main/java/com/refinedmods/refinedstorage/render/model/FullbrightBakedModel.java index d90abcdda..e540211b6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/model/FullbrightBakedModel.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/model/FullbrightBakedModel.java @@ -3,11 +3,11 @@ package com.refinedmods.refinedstorage.render.model; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; -import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.model.BakedQuad; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.Direction; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.data.EmptyModelData; import net.minecraftforge.client.model.data.IModelData; @@ -22,33 +22,17 @@ public class FullbrightBakedModel extends DelegateBakedModel { return transformQuads(key.base.getQuads(key.state, key.side, key.random, EmptyModelData.INSTANCE), key.textures); } }); - - public static void invalidateCache() { - CACHE.invalidateAll(); - } - private final Set textures; private final boolean doCaching; - - public FullbrightBakedModel(IBakedModel base, boolean doCaching, ResourceLocation... textures) { + public FullbrightBakedModel(BakedModel base, boolean doCaching, ResourceLocation... textures) { super(base); this.textures = new HashSet<>(Arrays.asList(textures)); this.doCaching = doCaching; } - @Override - @Nonnull - public List getQuads(@Nullable BlockState state, @Nullable Direction side, @Nonnull Random rand, @Nonnull IModelData data) { - if (state == null) { - return base.getQuads(state, side, rand, data); - } - - if (!doCaching) { - return transformQuads(base.getQuads(state, side, rand, data), textures); - } - - return CACHE.getUnchecked(new CacheKey(base, textures, rand, state, side)); + public static void invalidateCache() { + CACHE.invalidateAll(); } private static List transformQuads(List oldQuads, Set textures) { @@ -84,14 +68,28 @@ public class FullbrightBakedModel extends DelegateBakedModel { ); } + @Override + @Nonnull + public List getQuads(@Nullable BlockState state, @Nullable Direction side, @Nonnull Random rand, @Nonnull IModelData data) { + if (state == null) { + return base.getQuads(state, side, rand, data); + } + + if (!doCaching) { + return transformQuads(base.getQuads(state, side, rand, data), textures); + } + + return CACHE.getUnchecked(new CacheKey(base, textures, rand, state, side)); + } + private static class CacheKey { - private final IBakedModel base; + private final BakedModel base; private final Set textures; private final Random random; private final BlockState state; private final Direction side; - public CacheKey(IBakedModel base, Set textures, Random random, BlockState state, Direction side) { + public CacheKey(BakedModel base, Set textures, Random random, BlockState state, Direction side) { this.base = base; this.textures = textures; this.random = random; diff --git a/src/main/java/com/refinedmods/refinedstorage/render/model/PatternBakedModel.java b/src/main/java/com/refinedmods/refinedstorage/render/model/PatternBakedModel.java index 23345db69..713cd5d9d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/model/PatternBakedModel.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/model/PatternBakedModel.java @@ -6,46 +6,19 @@ import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPatternRenderHan import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.item.PatternItem; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.client.renderer.model.ItemOverride; -import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.ItemStack; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.renderer.block.model.ItemOverrides; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; import javax.annotation.Nullable; public class PatternBakedModel extends DelegateBakedModel { - public PatternBakedModel(IBakedModel base) { + public PatternBakedModel(BakedModel base) { super(base); } - @Override - public ItemOverrideList getOverrides() { - return new ItemOverrideList() { - @Nullable - @Override - public IBakedModel resolve(IBakedModel model, ItemStack stack, @Nullable ClientWorld world, @Nullable LivingEntity entity) { - if (entity != null) { - ICraftingPattern pattern = PatternItem.fromCache(entity.level, stack); - - if (canDisplayOutput(stack, pattern)) { - ItemStack outputToRender = pattern.getOutputs().get(0); - - return Minecraft.getInstance().getItemRenderer().getModel(outputToRender, world, entity); - } - } - - return super.resolve(model, stack, world, entity); - } - - @Override - public ImmutableList getOverrides() { - return base.getOverrides().getOverrides(); - } - }; - } - public static boolean canDisplayOutput(ItemStack patternStack, ICraftingPattern pattern) { if (pattern.isValid() && pattern.getOutputs().size() == 1) { for (ICraftingPatternRenderHandler renderHandler : API.instance().getPatternRenderHandlers()) { @@ -57,4 +30,30 @@ public class PatternBakedModel extends DelegateBakedModel { return false; } + + @Override + public ItemOverrides getOverrides() { + return new ItemOverrides() { + @Nullable + @Override + public BakedModel resolve(BakedModel model, ItemStack stack, @Nullable ClientLevel world, @Nullable LivingEntity entity, int p) { + if (entity != null) { + ICraftingPattern pattern = PatternItem.fromCache(entity.level, stack); + + if (canDisplayOutput(stack, pattern)) { + ItemStack outputToRender = pattern.getOutputs().get(0); + + return Minecraft.getInstance().getItemRenderer().getModel(outputToRender, world, entity, p); + } + } + + return super.resolve(model, stack, world, entity, p); + } + + @Override + public ImmutableList getOverrides() { + return base.getOverrides().getOverrides(); + } + }; + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/model/PortableGridBakedModel.java b/src/main/java/com/refinedmods/refinedstorage/render/model/PortableGridBakedModel.java index f3972b414..615975925 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/model/PortableGridBakedModel.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/model/PortableGridBakedModel.java @@ -8,14 +8,14 @@ import com.refinedmods.refinedstorage.block.PortableGridBlock; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.tile.grid.portable.PortableGrid; import com.refinedmods.refinedstorage.tile.grid.portable.PortableGridDiskState; -import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.model.BakedQuad; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Direction; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.block.model.ItemOverrides; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.state.BlockState; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -25,12 +25,12 @@ import java.util.Objects; import java.util.Random; public class PortableGridBakedModel extends DelegateBakedModel { - private final IBakedModel baseConnected; - private final IBakedModel baseDisconnected; - private final IBakedModel disk; - private final IBakedModel diskNearCapacity; - private final IBakedModel diskFull; - private final IBakedModel diskDisconnected; + private final BakedModel baseConnected; + private final BakedModel baseDisconnected; + private final BakedModel disk; + private final BakedModel diskNearCapacity; + private final BakedModel diskFull; + private final BakedModel diskDisconnected; private final CustomItemOverrideList itemOverrideList = new CustomItemOverrideList(); @@ -51,7 +51,7 @@ public class PortableGridBakedModel extends DelegateBakedModel { key.side )); - IBakedModel diskModel = getDiskModel(diskState); + BakedModel diskModel = getDiskModel(diskState); if (diskModel != null) { quads.addAll(QuadTransformer.getTransformedQuads(diskModel, direction, null, key.state, key.random, key.side)); } @@ -60,12 +60,12 @@ public class PortableGridBakedModel extends DelegateBakedModel { } }); - public PortableGridBakedModel(IBakedModel baseConnected, - IBakedModel baseDisconnected, - IBakedModel disk, - IBakedModel diskNearCapacity, - IBakedModel diskFull, - IBakedModel diskDisconnected) { + public PortableGridBakedModel(BakedModel baseConnected, + BakedModel baseDisconnected, + BakedModel disk, + BakedModel diskNearCapacity, + BakedModel diskFull, + BakedModel diskDisconnected) { super(baseConnected); this.baseConnected = baseConnected; @@ -77,7 +77,7 @@ public class PortableGridBakedModel extends DelegateBakedModel { } @Nullable - private IBakedModel getDiskModel(PortableGridDiskState state) { + private BakedModel getDiskModel(PortableGridDiskState state) { switch (state) { case NORMAL: return disk; @@ -95,7 +95,7 @@ public class PortableGridBakedModel extends DelegateBakedModel { } @Override - public ItemOverrideList getOverrides() { + public ItemOverrides getOverrides() { return itemOverrideList; } @@ -108,20 +108,6 @@ public class PortableGridBakedModel extends DelegateBakedModel { return super.getQuads(state, side, rand); } - private class CustomItemOverrideList extends ItemOverrideList { - @Nullable - @Override - public IBakedModel resolve(IBakedModel model, ItemStack stack, @Nullable ClientWorld world, @Nullable LivingEntity entity) { - PortableGrid portableGrid = new PortableGrid(null, stack, new PlayerSlot(-1)); - - if (portableGrid.isGridActive()) { - return new PortableGridItemBakedModel(baseConnected, getDiskModel(portableGrid.getDiskState())); - } else { - return new PortableGridItemBakedModel(baseDisconnected, getDiskModel(portableGrid.getDiskState())); - } - } - } - private static class CacheKey { private final BlockState state; private final Direction side; @@ -148,4 +134,18 @@ public class PortableGridBakedModel extends DelegateBakedModel { return Objects.hash(state, side, random); } } + + private class CustomItemOverrideList extends ItemOverrides { + @Nullable + @Override + public BakedModel resolve(BakedModel model, ItemStack stack, @Nullable ClientLevel world, @Nullable LivingEntity entity, int p) { + PortableGrid portableGrid = new PortableGrid(null, stack, new PlayerSlot(-1)); + + if (portableGrid.isGridActive()) { + return new PortableGridItemBakedModel(baseConnected, getDiskModel(portableGrid.getDiskState())); + } else { + return new PortableGridItemBakedModel(baseDisconnected, getDiskModel(portableGrid.getDiskState())); + } + } + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/model/PortableGridItemBakedModel.java b/src/main/java/com/refinedmods/refinedstorage/render/model/PortableGridItemBakedModel.java index 1dc64b7c4..a15930787 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/model/PortableGridItemBakedModel.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/model/PortableGridItemBakedModel.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.render.model; -import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.model.BakedQuad; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.client.renderer.model.ItemCameraTransforms; -import net.minecraft.client.renderer.model.ItemOverrideList; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.block.model.ItemOverrides; +import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.util.Direction; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.state.BlockState; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -14,24 +14,24 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; -public class PortableGridItemBakedModel implements IBakedModel { - private final IBakedModel base; +public class PortableGridItemBakedModel implements BakedModel { + private final BakedModel base; @Nullable - private final IBakedModel disk; + private final BakedModel disk; - public PortableGridItemBakedModel(IBakedModel base, @Nullable IBakedModel disk) { + public PortableGridItemBakedModel(BakedModel base, @Nullable BakedModel disk) { this.base = base; this.disk = disk; } @Override - public ItemOverrideList getOverrides() { - return ItemOverrideList.EMPTY; + public ItemOverrides getOverrides() { + return ItemOverrides.EMPTY; } @Override @SuppressWarnings("deprecation") - public ItemCameraTransforms getTransforms() { + public ItemTransforms getTransforms() { return base.getTransforms(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/model/QuadTransformer.java b/src/main/java/com/refinedmods/refinedstorage/render/model/QuadTransformer.java index 9a1ba9c95..e63a604f5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/model/QuadTransformer.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/model/QuadTransformer.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.render.model; import com.google.common.collect.ImmutableList; -import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.model.BakedQuad; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.util.Direction; -import net.minecraft.util.math.vector.TransformationMatrix; -import net.minecraft.util.math.vector.Vector3f; +import com.mojang.math.Transformation; +import com.mojang.math.Vector3f; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.data.EmptyModelData; import net.minecraftforge.client.model.pipeline.BakedQuadBuilder; import net.minecraftforge.client.model.pipeline.TRSRTransformer; @@ -20,10 +20,10 @@ public final class QuadTransformer { private QuadTransformer() { } - public static List getTransformedQuads(IBakedModel model, Direction facing, @Nullable Vector3f translation, BlockState state, Random rand, Direction side) { + public static List getTransformedQuads(BakedModel model, Direction facing, @Nullable Vector3f translation, BlockState state, Random rand, Direction side) { double r = Math.PI * (360 - facing.getOpposite().get2DDataValue() * 90) / 180d; - TransformationMatrix transformation = new TransformationMatrix(translation, TransformationHelper.quatFromXYZ(new Vector3f(0, (float) r, 0), false), null, null); + Transformation transformation = new Transformation(translation, TransformationHelper.quatFromXYZ(new Vector3f(0, (float) r, 0), false), null, null); ImmutableList.Builder quads = ImmutableList.builder(); diff --git a/src/main/java/com/refinedmods/refinedstorage/render/resourcepack/RSResourcePackSectionDeserializer.java b/src/main/java/com/refinedmods/refinedstorage/render/resourcepack/RSResourcePackSectionDeserializer.java index d1df12b4a..65854d1a5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/resourcepack/RSResourcePackSectionDeserializer.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/resourcepack/RSResourcePackSectionDeserializer.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.render.resourcepack; import com.google.gson.JsonObject; -import net.minecraft.resources.data.IMetadataSectionSerializer; +import net.minecraft.server.packs.metadata.MetadataSectionSerializer; -public class RSResourcePackSectionDeserializer implements IMetadataSectionSerializer { +public class RSResourcePackSectionDeserializer implements MetadataSectionSerializer { @Override public String getMetadataSectionName() { return "refinedstorage"; diff --git a/src/main/java/com/refinedmods/refinedstorage/render/resourcepack/ResourcePackListener.java b/src/main/java/com/refinedmods/refinedstorage/render/resourcepack/ResourcePackListener.java index fabce95e6..4cb8c0bb2 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/resourcepack/ResourcePackListener.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/resourcepack/ResourcePackListener.java @@ -2,22 +2,22 @@ package com.refinedmods.refinedstorage.render.resourcepack; import com.refinedmods.refinedstorage.render.RenderSettings; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.ReloadListener; -import net.minecraft.profiler.IProfiler; -import net.minecraft.resources.IResourceManager; -import net.minecraft.resources.ResourcePackInfo; +import net.minecraft.server.packs.repository.Pack; +import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.server.packs.resources.SimplePreparableReloadListener; +import net.minecraft.util.profiling.ProfilerFiller; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import javax.annotation.Nullable; import java.io.IOException; -public class ResourcePackListener extends ReloadListener { +public class ResourcePackListener extends SimplePreparableReloadListener { private final Logger logger = LogManager.getLogger(getClass()); @Override - protected RSResourcePackSection prepare(IResourceManager resourceManager, IProfiler profiler) { - for (ResourcePackInfo info : Minecraft.getInstance().getResourcePackRepository().getSelectedPacks()) { + protected RSResourcePackSection prepare(ResourceManager resourceManager, ProfilerFiller profiler) { + for (Pack info : Minecraft.getInstance().getResourcePackRepository().getSelectedPacks()) { try { RSResourcePackSection section = info.open().getMetadataSection(RSResourcePackSection.DESERIALIZER); @@ -33,7 +33,7 @@ public class ResourcePackListener extends ReloadListener } @Override - protected void apply(@Nullable RSResourcePackSection section, IResourceManager resourceManager, IProfiler profiler) { + protected void apply(@Nullable RSResourcePackSection section, ResourceManager resourceManager, ProfilerFiller profiler) { if (section != null) { RenderSettings.INSTANCE.setColors(section.getPrimaryColor(), section.getSecondaryColor()); } else { diff --git a/src/main/java/com/refinedmods/refinedstorage/render/tesr/PatternItemStackTileRenderer.java b/src/main/java/com/refinedmods/refinedstorage/render/tesr/PatternItemStackTileRenderer.java index ca2c71c34..a4cae4e4d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/tesr/PatternItemStackTileRenderer.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/tesr/PatternItemStackTileRenderer.java @@ -1,20 +1,27 @@ package com.refinedmods.refinedstorage.render.tesr; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPattern; import com.refinedmods.refinedstorage.item.PatternItem; -import net.minecraft.client.renderer.IRenderTypeBuffer; -import net.minecraft.client.renderer.model.ItemCameraTransforms; -import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer; -import net.minecraft.item.ItemStack; +import net.minecraft.client.model.geom.EntityModelSet; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.block.model.ItemTransforms; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.client.RenderProperties; + +public class PatternItemStackTileRenderer extends BlockEntityWithoutLevelRenderer { + public PatternItemStackTileRenderer(BlockEntityRenderDispatcher p_172550_, EntityModelSet p_172551_) { + super(p_172550_, p_172551_); + } -public class PatternItemStackTileRenderer extends ItemStackTileEntityRenderer { @Override - public void renderByItem(ItemStack stack, ItemCameraTransforms.TransformType transformType, MatrixStack matrixStack, IRenderTypeBuffer renderTypeBuffer, int combinedLight, int combinedOverlay) { + public void renderByItem(ItemStack stack, ItemTransforms.TransformType transformType, PoseStack matrixStack, MultiBufferSource renderTypeBuffer, int combinedLight, int combinedOverlay) { ICraftingPattern pattern = PatternItem.fromCache(null, stack); ItemStack outputStack = pattern.getOutputs().get(0); - outputStack.getItem().getItemStackTileEntityRenderer().renderByItem(outputStack, transformType, matrixStack, renderTypeBuffer, combinedLight, combinedOverlay); + RenderProperties.get(outputStack.getItem()).getItemStackRenderer().renderByItem(outputStack, transformType, matrixStack, renderTypeBuffer, combinedLight, combinedOverlay); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/render/tesr/StorageMonitorTileRenderer.java b/src/main/java/com/refinedmods/refinedstorage/render/tesr/StorageMonitorTileRenderer.java index 2398c8add..388624f07 100644 --- a/src/main/java/com/refinedmods/refinedstorage/render/tesr/StorageMonitorTileRenderer.java +++ b/src/main/java/com/refinedmods/refinedstorage/render/tesr/StorageMonitorTileRenderer.java @@ -1,43 +1,37 @@ package com.refinedmods.refinedstorage.render.tesr; +import com.mojang.blaze3d.platform.Lighting; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Matrix3f; +import com.mojang.math.Vector3f; import com.refinedmods.refinedstorage.RSBlocks; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.block.StorageMonitorBlock; import com.refinedmods.refinedstorage.tile.StorageMonitorTile; import com.refinedmods.refinedstorage.tile.config.IType; - -import com.mojang.blaze3d.matrix.MatrixStack; -import com.mojang.blaze3d.vertex.IVertexBuilder; -import net.minecraft.block.BlockState; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.IRenderTypeBuffer; -import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.LevelRenderer; +import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.WorldRenderer; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.client.renderer.model.ItemCameraTransforms; +import net.minecraft.client.renderer.block.model.ItemTransforms; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.tileentity.TileEntityRenderer; -import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; -import net.minecraft.fluid.Fluid; -import net.minecraft.inventory.container.PlayerContainer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.vector.Matrix3f; -import net.minecraft.util.math.vector.Vector3f; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.Direction; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.inventory.InventoryMenu; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Fluid; import net.minecraftforge.common.model.TransformationHelper; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; -public class StorageMonitorTileRenderer extends TileEntityRenderer { - public StorageMonitorTileRenderer(TileEntityRendererDispatcher dispatcher) { - super(dispatcher); - } - +public class StorageMonitorTileRenderer implements BlockEntityRenderer { @Override - public void render(StorageMonitorTile tile, float partialTicks, MatrixStack matrixStack, IRenderTypeBuffer renderTypeBuffer, int i, int i1) { + public void render(StorageMonitorTile tile, float partialTicks, PoseStack matrixStack, MultiBufferSource renderTypeBuffer, int i, int i1) { Direction direction = Direction.NORTH; BlockState state = tile.getLevel().getBlockState(tile.getBlockPos()); @@ -45,7 +39,7 @@ public class StorageMonitorTileRenderer extends TileEntityRenderer> 16 & 0xFF; final int colorGreen = fluidColor >> 8 & 0xFF; @@ -163,25 +157,25 @@ public class StorageMonitorTileRenderer extends TileEntityRenderer> 24 & 0xFF; buffer.vertex(matrixStack.last().pose(), -0.5F, -0.5F, 0F) - .color(colorRed, colorGreen, colorBlue, colorAlpha) - .uv(sprite.getU0(), sprite.getV0()) - .uv2(light) - .endVertex(); + .color(colorRed, colorGreen, colorBlue, colorAlpha) + .uv(sprite.getU0(), sprite.getV0()) + .uv2(light) + .endVertex(); buffer.vertex(matrixStack.last().pose(), 0.5F, -0.5F, 0F) - .color(colorRed, colorGreen, colorBlue, colorAlpha) - .uv(sprite.getU1(), sprite.getV0()) - .uv2(light) - .endVertex(); + .color(colorRed, colorGreen, colorBlue, colorAlpha) + .uv(sprite.getU1(), sprite.getV0()) + .uv2(light) + .endVertex(); buffer.vertex(matrixStack.last().pose(), 0.5F, -1.5F, 0F) - .color(colorRed, colorGreen, colorBlue, colorAlpha) - .uv(sprite.getU1(), sprite.getV1()) - .uv2(light) - .endVertex(); + .color(colorRed, colorGreen, colorBlue, colorAlpha) + .uv(sprite.getU1(), sprite.getV1()) + .uv2(light) + .endVertex(); buffer.vertex(matrixStack.last().pose(), -0.5F, -1.5F, 0F) - .color(colorRed, colorGreen, colorBlue, colorAlpha) - .uv(sprite.getU0(), sprite.getV1()) - .uv2(light) - .endVertex(); + .color(colorRed, colorGreen, colorBlue, colorAlpha) + .uv(sprite.getU0(), sprite.getV1()) + .uv2(light) + .endVertex(); matrixStack.popPose(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/AmountSpecifyingScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/AmountSpecifyingScreen.java index 85c60eb3b..351691b72 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/AmountSpecifyingScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/AmountSpecifyingScreen.java @@ -1,32 +1,32 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.render.RenderSettings; -import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; import org.apache.commons.lang3.tuple.Pair; import org.lwjgl.glfw.GLFW; -public abstract class AmountSpecifyingScreen extends BaseScreen { +public abstract class AmountSpecifyingScreen extends BaseScreen { private final BaseScreen parent; - protected TextFieldWidget amountField; + protected EditBox amountField; protected Button okButton; protected Button cancelButton; - protected AmountSpecifyingScreen(BaseScreen parent, T container, int width, int height, PlayerInventory playerInventory, ITextComponent title) { + protected AmountSpecifyingScreen(BaseScreen parent, T container, int width, int height, Inventory playerInventory, Component title) { super(container, width, height, playerInventory, title); this.parent = parent; } - protected abstract ITextComponent getOkButtonText(); + protected abstract Component getOkButtonText(); protected abstract String getTexture(); @@ -55,9 +55,9 @@ public abstract class AmountSpecifyingScreen extends BaseSc Pair pos = getOkCancelPos(); okButton = addButton(x + pos.getLeft(), y + pos.getRight(), getOkCancelButtonWidth(), 20, getOkButtonText(), true, true, btn -> onOkButtonPressed(hasShiftDown())); - cancelButton = addButton(x + pos.getLeft(), y + pos.getRight() + 24, getOkCancelButtonWidth(), 20, new TranslationTextComponent("gui.cancel"), true, true, btn -> close()); + cancelButton = addButton(x + pos.getLeft(), y + pos.getRight() + 24, getOkCancelButtonWidth(), 20, new TranslatableComponent("gui.cancel"), true, true, btn -> close()); - amountField = new TextFieldWidget(font, x + getAmountPos().getLeft(), y + getAmountPos().getRight(), 69 - 6, font.lineHeight, new StringTextComponent("")); + amountField = new EditBox(font, x + getAmountPos().getLeft(), y + getAmountPos().getRight(), 69 - 6, font.lineHeight, new TextComponent("")); amountField.setBordered(false); amountField.setVisible(true); amountField.setValue(String.valueOf(getDefaultAmount())); @@ -65,7 +65,7 @@ public abstract class AmountSpecifyingScreen extends BaseSc amountField.setCanLoseFocus(false); amountField.changeFocus(true); - addButton(amountField); + addRenderableWidget(amountField); setFocused(amountField); @@ -77,9 +77,9 @@ public abstract class AmountSpecifyingScreen extends BaseSc for (int i = 0; i < 3; ++i) { int increment = increments[i]; - ITextComponent text = new StringTextComponent("+" + increment); + Component text = new TextComponent("+" + increment); if (text.getString().equals("+1000")) { - text = new StringTextComponent("+1B"); + text = new TextComponent("+1B"); } addButton(x + xx, y + 20, width, 20, text, true, true, btn -> onIncrementButtonClicked(increment)); @@ -92,9 +92,9 @@ public abstract class AmountSpecifyingScreen extends BaseSc for (int i = 0; i < 3; ++i) { int increment = increments[i]; - ITextComponent text = new StringTextComponent("-" + increment); + Component text = new TextComponent("-" + increment); if (text.getString().equals("-1000")) { - text = new StringTextComponent("-1B"); + text = new TextComponent("-1B"); } addButton(x + xx, y + imageHeight - 20 - 7, width, 20, text, true, true, btn -> onIncrementButtonClicked(-increment)); @@ -154,7 +154,7 @@ public abstract class AmountSpecifyingScreen extends BaseSc } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, getTexture()); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); @@ -163,7 +163,7 @@ public abstract class AmountSpecifyingScreen extends BaseSc } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/BaseScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/BaseScreen.java index 35b5b9726..3bc95891a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/BaseScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/BaseScreen.java @@ -1,36 +1,34 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.platform.InputConstants; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.container.slot.filter.FilterSlot; import com.refinedmods.refinedstorage.container.slot.filter.FluidFilterSlot; -import com.refinedmods.refinedstorage.integration.craftingtweaks.CraftingTweaksIntegration; import com.refinedmods.refinedstorage.render.FluidRenderer; import com.refinedmods.refinedstorage.render.RenderSettings; import com.refinedmods.refinedstorage.screen.grid.AlternativesScreen; import com.refinedmods.refinedstorage.screen.widget.CheckboxWidget; import com.refinedmods.refinedstorage.screen.widget.sidebutton.SideButton; import com.refinedmods.refinedstorage.util.RenderUtils; +import net.minecraft.client.KeyMapping; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screen.inventory.ContainerScreen; -import net.minecraft.client.gui.widget.Widget; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.client.gui.widget.button.CheckboxButton; -import net.minecraft.client.settings.KeyBinding; -import net.minecraft.client.util.InputMappings; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.container.ClickType; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.Checkbox; +import net.minecraft.client.gui.components.Widget; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ClickType; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.client.gui.GuiUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.lwjgl.opengl.GL11; @@ -41,7 +39,7 @@ import java.util.*; import java.util.function.Consumer; import java.util.stream.Collectors; -public abstract class BaseScreen extends ContainerScreen { +public abstract class BaseScreen extends AbstractContainerScreen { public static final int Z_LEVEL_ITEMS = 100; public static final int Z_LEVEL_TOOLTIPS = 500; public static final int Z_LEVEL_QTY = 300; @@ -49,24 +47,41 @@ public abstract class BaseScreen extends ContainerScreen private static final Map TEXTURE_CACHE = new HashMap<>(); private static final Map> ACTIONS = new HashMap<>(); - private static final ITextComponent ALTERNATIVES_TEXT = new TranslationTextComponent("gui.refinedstorage.alternatives"); + private static final Component ALTERNATIVES_TEXT = new TranslatableComponent("gui.refinedstorage.alternatives"); private final List sideButtons = new ArrayList<>(); private final Logger logger = LogManager.getLogger(getClass()); + protected final Inventory inventory; + private int sideButtonY; - protected BaseScreen(T container, int xSize, int ySize, PlayerInventory inventory, ITextComponent title) { + protected BaseScreen(T container, int xSize, int ySize, Inventory inventory, Component title) { super(container, inventory, title); this.imageWidth = xSize; this.imageHeight = ySize; + this.inventory = inventory; + } + + public static boolean isKeyDown(KeyMapping keybinding) { + return !keybinding.isUnbound() && InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), keybinding.getKey().getValue()) && + keybinding.getKeyConflictContext().isActive() && + keybinding.getKeyModifier().isActive(keybinding.getKeyConflictContext()); + } + + public static void executeLater(Class clazz, Consumer callback) { + ACTIONS.computeIfAbsent(clazz, key -> new ArrayDeque<>()).add(callback); + } + + public static void executeLater(Consumer callback) { + executeLater(AbstractContainerScreen.class, callback); } private void runActions() { runActions(getClass()); - runActions(ContainerScreen.class); + runActions(AbstractContainerScreen.class); } private void runActions(Class clazz) { @@ -88,13 +103,8 @@ public abstract class BaseScreen extends ContainerScreen super.init(); - if (CraftingTweaksIntegration.isLoaded()) { - buttons.removeIf(b -> !CraftingTweaksIntegration.isCraftingTweaksClass(b.getClass())); - children.removeIf(c -> !CraftingTweaksIntegration.isCraftingTweaksClass(c.getClass())); - } else { - buttons.clear(); - children.clear(); - } + // TODO: what about craft tweaker buttons? + this.clearWidgets(); sideButtonY = 6; sideButtons.clear(); @@ -112,16 +122,14 @@ public abstract class BaseScreen extends ContainerScreen } @Override - public void tick() { - super.tick(); - + protected void containerTick() { + super.containerTick(); runActions(); - tick(leftPos, topPos); } @Override - public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { + public void render(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks) { renderBackground(matrixStack); super.render(matrixStack, mouseX, mouseY, partialTicks); @@ -130,8 +138,8 @@ public abstract class BaseScreen extends ContainerScreen } @Override - protected void renderBg(MatrixStack matrixStack, float renderPartialTicks, int mouseX, int mouseY) { - RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); + protected void renderBg(PoseStack matrixStack, float renderPartialTicks, int mouseX, int mouseY) { + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); renderBackground(matrixStack, leftPos, topPos, mouseX, mouseY); @@ -155,16 +163,16 @@ public abstract class BaseScreen extends ContainerScreen } @Override - protected void renderLabels(MatrixStack matrixStack, int mouseX, int mouseY) { - RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); + protected void renderLabels(PoseStack matrixStack, int mouseX, int mouseY) { + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); mouseX -= leftPos; mouseY -= topPos; renderForeground(matrixStack, mouseX, mouseY); - for (Widget button : this.buttons) { - if (button instanceof SideButton && button.isHovered()) { + for (Widget button : this.renderables) { + if (button instanceof SideButton && ((SideButton) button).isHoveredOrFocused()) { renderTooltip(matrixStack, mouseX, mouseY, ((SideButton) button).getTooltip()); } } @@ -184,7 +192,7 @@ public abstract class BaseScreen extends ContainerScreen @Override protected void slotClicked(Slot slot, int slotId, int mouseButton, ClickType type) { - boolean valid = type != ClickType.QUICK_MOVE && minecraft.player.inventory.getCarried().isEmpty(); + boolean valid = type != ClickType.QUICK_MOVE && minecraft.player.containerMenu.getCarried().isEmpty(); if (valid && slot instanceof FilterSlot && slot.isActive() && ((FilterSlot) slot).isSizeAllowed()) { if (!slot.getItem().isEmpty()) { @@ -249,21 +257,21 @@ public abstract class BaseScreen extends ContainerScreen } } - public CheckboxWidget addCheckBox(int x, int y, ITextComponent text, boolean checked, Consumer onPress) { + public CheckboxWidget addCheckBox(int x, int y, Component text, boolean checked, Consumer onPress) { CheckboxWidget checkBox = new CheckboxWidget(x, y, text, checked, onPress); - this.addButton(checkBox); + this.addRenderableWidget(checkBox); return checkBox; } - public Button addButton(int x, int y, int w, int h, ITextComponent text, boolean enabled, boolean visible, Button.IPressable onPress) { + public Button addButton(int x, int y, int w, int h, Component text, boolean enabled, boolean visible, Button.OnPress onPress) { Button button = new Button(x, y, w, h, text, onPress); button.active = enabled; button.visible = visible; - this.addButton(button); + this.addRenderableWidget(button); return button; } @@ -275,7 +283,7 @@ public abstract class BaseScreen extends ContainerScreen sideButtonY += button.getHeight() + 2; sideButtons.add(button); - this.addButton(button); + this.addRenderableWidget(button); } public List getSideButtons() { @@ -283,14 +291,14 @@ public abstract class BaseScreen extends ContainerScreen } public void bindTexture(String namespace, String filenameInTexturesFolder) { - minecraft.getTextureManager().bind(TEXTURE_CACHE.computeIfAbsent(namespace + ":" + filenameInTexturesFolder, newId -> new ResourceLocation(namespace, "textures/" + filenameInTexturesFolder))); + RenderSystem.setShaderTexture(0, TEXTURE_CACHE.computeIfAbsent(namespace + ":" + filenameInTexturesFolder, newId -> new ResourceLocation(namespace, "textures/" + filenameInTexturesFolder))); } - public void renderItem(MatrixStack matrixStack, int x, int y, ItemStack stack) { + public void renderItem(PoseStack matrixStack, int x, int y, ItemStack stack) { renderItem(matrixStack, x, y, stack, false, null, 0); } - public void renderItem(MatrixStack matrixStack, int x, int y, ItemStack stack, boolean overlay, @Nullable String text, int textColor) { + public void renderItem(PoseStack matrixStack, int x, int y, ItemStack stack, boolean overlay, @Nullable String text, int textColor) { try { setBlitOffset(Z_LEVEL_ITEMS); itemRenderer.blitOffset = Z_LEVEL_ITEMS; @@ -312,7 +320,7 @@ public abstract class BaseScreen extends ContainerScreen } } - public void renderQuantity(MatrixStack matrixStack, int x, int y, String qty, int color) { + public void renderQuantity(PoseStack matrixStack, int x, int y, String qty, int color) { boolean large = minecraft.isEnforceUnicode() || RS.CLIENT_CONFIG.getGrid().getLargeFont(); matrixStack.pushPose(); @@ -327,49 +335,35 @@ public abstract class BaseScreen extends ContainerScreen matrixStack.popPose(); } - public void renderString(MatrixStack matrixStack, int x, int y, String message) { + public void renderString(PoseStack matrixStack, int x, int y, String message) { renderString(matrixStack, x, y, message, RenderSettings.INSTANCE.getPrimaryColor()); } - public void renderString(MatrixStack matrixStack, int x, int y, String message, int color) { + public void renderString(PoseStack matrixStack, int x, int y, String message, int color) { font.draw(matrixStack, message, x, y, color); } - public void renderTooltip(MatrixStack matrixStack, int x, int y, String lines) { + public void renderTooltip(PoseStack matrixStack, int x, int y, String lines) { renderTooltip(matrixStack, ItemStack.EMPTY, x, y, lines); } - public void renderTooltip(MatrixStack matrixStack, @Nonnull ItemStack stack, int x, int y, String lines) { - renderTooltip(matrixStack, stack, x, y, Arrays.stream(lines.split("\n")).map(StringTextComponent::new).collect(Collectors.toList())); + public void renderTooltip(PoseStack matrixStack, @Nonnull ItemStack stack, int x, int y, String lines) { + renderTooltip(matrixStack, stack, x, y, Arrays.stream(lines.split("\n")).map(TextComponent::new).collect(Collectors.toList())); } - public void renderTooltip(MatrixStack matrixStack, @Nonnull ItemStack stack, int x, int y, List lines) { - GuiUtils.drawHoveringText(stack, matrixStack, lines, x, y, width, height, -1, font); + public void renderTooltip(PoseStack matrixStack, @Nonnull ItemStack stack, int x, int y, List lines) { + renderComponentTooltip(matrixStack, lines, x, y, stack); } protected void onPreInit() { // NO OP } - public static boolean isKeyDown(KeyBinding keybinding) { - return !keybinding.isUnbound() && InputMappings.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), keybinding.getKey().getValue()) && - keybinding.getKeyConflictContext().isActive() && - keybinding.getKeyModifier().isActive(keybinding.getKeyConflictContext()); - } - public abstract void onPostInit(int x, int y); public abstract void tick(int x, int y); - public abstract void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY); + public abstract void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY); - public abstract void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY); - - public static void executeLater(Class clazz, Consumer callback) { - ACTIONS.computeIfAbsent(clazz, key -> new ArrayDeque<>()).add(callback); - } - - public static void executeLater(Consumer callback) { - executeLater(ContainerScreen.class, callback); - } + public abstract void renderForeground(PoseStack matrixStack, int mouseX, int mouseY); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/ConstructorScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/ConstructorScreen.java index 65c2c7cf5..2319bd9e6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/ConstructorScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/ConstructorScreen.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.ConstructorContainer; import com.refinedmods.refinedstorage.screen.widget.sidebutton.ConstructorDropSideButton; @@ -9,12 +9,12 @@ import com.refinedmods.refinedstorage.screen.widget.sidebutton.RedstoneModeSideB import com.refinedmods.refinedstorage.screen.widget.sidebutton.TypeSideButton; import com.refinedmods.refinedstorage.tile.ConstructorTile; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class ConstructorScreen extends BaseScreen { - public ConstructorScreen(ConstructorContainer container, PlayerInventory inventory, ITextComponent title) { + public ConstructorScreen(ConstructorContainer container, Inventory inventory, Component title) { super(container, 211, 137, inventory, title); } @@ -34,14 +34,14 @@ public class ConstructorScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/constructor.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, 43, I18n.get("container.inventory")); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/ControllerScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/ControllerScreen.java index 614a12c08..1bd97a2b4 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/ControllerScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/ControllerScreen.java @@ -1,6 +1,7 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.platform.Lighting; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.apiimpl.network.Network; import com.refinedmods.refinedstorage.container.ControllerContainer; @@ -9,10 +10,9 @@ import com.refinedmods.refinedstorage.screen.widget.sidebutton.RedstoneModeSideB import com.refinedmods.refinedstorage.tile.ClientNode; import com.refinedmods.refinedstorage.tile.ControllerTile; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; import java.util.List; @@ -26,7 +26,7 @@ public class ControllerScreen extends BaseScreen { private final ScrollbarWidget scrollbar; - public ControllerScreen(ControllerContainer container, PlayerInventory inventory, ITextComponent title) { + public ControllerScreen(ControllerContainer container, Inventory inventory, Component title) { super(container, 176, 181, inventory, title); this.scrollbar = new ScrollbarWidget(this, 157, 20, 12, 59); @@ -44,7 +44,7 @@ public class ControllerScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/controller.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); @@ -79,7 +79,7 @@ public class ControllerScreen extends BaseScreen { } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, 87, I18n.get("container.inventory")); @@ -88,7 +88,7 @@ public class ControllerScreen extends BaseScreen { int slot = scrollbar.getOffset() * 2; - RenderHelper.setupFor3DItems(); + Lighting.setupFor3DItems(); List nodes = ControllerTile.NODES.getValue(); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/CrafterManagerScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/CrafterManagerScreen.java index 96fbafa2a..937903ab0 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/CrafterManagerScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/CrafterManagerScreen.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.apiimpl.network.node.CrafterManagerNetworkNode; @@ -16,10 +16,10 @@ import com.refinedmods.refinedstorage.tile.CrafterManagerTile; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.container.Slot; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.Slot; import yalter.mousetweaks.api.MouseTweaksDisableWheelTweak; import java.util.Map; @@ -31,7 +31,7 @@ public class CrafterManagerScreen extends BaseScreen im private ScrollbarWidget scrollbar; private SearchWidget searchField; - public CrafterManagerScreen(CrafterManagerContainer container, PlayerInventory inventory, ITextComponent title) { + public CrafterManagerScreen(CrafterManagerContainer container, Inventory inventory, Component title) { super(container, 193, 0, inventory, title); this.crafterManager = ((CrafterManagerTile) container.getTile()).getNode(); @@ -69,7 +69,7 @@ public class CrafterManagerScreen extends BaseScreen im searchField.y = sy; } - addButton(searchField); + addRenderableWidget(searchField); } @Override @@ -79,7 +79,7 @@ public class CrafterManagerScreen extends BaseScreen im } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/crafter_manager.png"); blit(matrixStack, x, y, 0, 0, imageWidth, getTopHeight()); @@ -121,7 +121,7 @@ public class CrafterManagerScreen extends BaseScreen im } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, getYPlayerInventory() - 12, I18n.get("container.inventory")); @@ -130,8 +130,7 @@ public class CrafterManagerScreen extends BaseScreen im int y = heading.getValue(); if (y >= getTopHeight() - 1 && y < getTopHeight() + getVisibleRows() * 18 - 1) { - RenderSystem.disableLighting(); - RenderSystem.color3f(1, 1, 1); + RenderSystem.setShaderColor(1, 1, 1, 1); bindTexture(RS.ID, "gui/crafter_manager.png"); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/CrafterScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/CrafterScreen.java index 076370cfb..c9f9d9929 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/CrafterScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/CrafterScreen.java @@ -1,15 +1,15 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.CrafterContainer; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class CrafterScreen extends BaseScreen { - public CrafterScreen(CrafterContainer container, PlayerInventory inventory, ITextComponent title) { + public CrafterScreen(CrafterContainer container, Inventory inventory, Component title) { super(container, 211, 137, inventory, title); } @@ -24,14 +24,14 @@ public class CrafterScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/crafter.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, RenderUtils.shorten(title.getString(), 26)); renderString(matrixStack, 7, 43, I18n.get("container.inventory")); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/CraftingMonitorScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/CraftingMonitorScreen.java index 849e3d774..993900050 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/CraftingMonitorScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/CraftingMonitorScreen.java @@ -1,8 +1,9 @@ package com.refinedmods.refinedstorage.screen; import com.google.common.collect.Lists; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.platform.Lighting; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; import com.refinedmods.refinedstorage.api.autocrafting.task.ICraftingRequestInfo; @@ -20,14 +21,13 @@ import com.refinedmods.refinedstorage.screen.widget.TabListWidget; import com.refinedmods.refinedstorage.screen.widget.sidebutton.RedstoneModeSideButton; import com.refinedmods.refinedstorage.tile.craftingmonitor.ICraftingMonitor; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; @@ -37,83 +37,18 @@ import java.util.Optional; import java.util.UUID; public class CraftingMonitorScreen extends BaseScreen { - public static class Task implements IGridTab { - private final UUID id; - private final ICraftingRequestInfo requested; - private final int qty; - private final long executionStarted; - private final int completionPercentage; - private final List elements; - - public Task(UUID id, ICraftingRequestInfo requested, int qty, long executionStarted, int completionPercentage, List elements) { - this.id = id; - this.requested = requested; - this.qty = qty; - this.executionStarted = executionStarted; - this.completionPercentage = completionPercentage; - this.elements = elements; - } - - @Override - public void drawTooltip(MatrixStack matrixStack, int x, int y, int screenWidth, int screenHeight, FontRenderer fontRenderer) { - List textLines = Lists.newArrayList(requested.getItem() != null ? requested.getItem().getHoverName() : requested.getFluid().getDisplayName()); - List smallTextLines = Lists.newArrayList(); - - int totalSecs = (int) (System.currentTimeMillis() - executionStarted) / 1000; - int hours = totalSecs / 3600; - int minutes = (totalSecs % 3600) / 60; - int seconds = totalSecs % 60; - - smallTextLines.add(I18n.get("gui.refinedstorage.crafting_monitor.tooltip.requested", requested.getFluid() != null ? API.instance().getQuantityFormatter().formatInBucketForm(qty) : API.instance().getQuantityFormatter().format(qty))); - - if (hours > 0) { - smallTextLines.add(String.format("%02d:%02d:%02d", hours, minutes, seconds)); - } else { - smallTextLines.add(String.format("%02d:%02d", minutes, seconds)); - } - - smallTextLines.add(String.format("%d%%", completionPercentage)); - - RenderUtils.drawTooltipWithSmallText(matrixStack, textLines, smallTextLines, true, ItemStack.EMPTY, x, y, screenWidth, screenHeight, fontRenderer); - } - - @Override - public List getFilters() { - throw new UnsupportedOperationException(); - } - - @Override - public void drawIcon(MatrixStack matrixStack, int x, int y, IElementDrawer itemDrawer, IElementDrawer fluidDrawer) { - if (requested.getItem() != null) { - RenderHelper.setupFor3DItems(); - - itemDrawer.draw(matrixStack, x, y, requested.getItem()); - } else { - fluidDrawer.draw(matrixStack, x, y, requested.getFluid()); - - RenderSystem.enableAlphaTest(); - } - } - } - private static final int ROWS = 5; - private static final int ITEM_WIDTH = 73; private static final int ITEM_HEIGHT = 29; - + private final ScrollbarWidget scrollbar; + private final ICraftingMonitor craftingMonitor; + private final TabListWidget tabs; + private final IElementDrawers drawers = new CraftingMonitorElementDrawers(this, ITEM_WIDTH, ITEM_HEIGHT); private Button cancelButton; private Button cancelAllButton; - - private final ScrollbarWidget scrollbar; - - private final ICraftingMonitor craftingMonitor; - private List tasks = Collections.emptyList(); - private final TabListWidget tabs; - private final IElementDrawers drawers = new CraftingMonitorElementDrawers(this, ITEM_WIDTH, ITEM_HEIGHT); - - public CraftingMonitorScreen(CraftingMonitorContainer container, PlayerInventory inventory, ITextComponent title) { + public CraftingMonitorScreen(CraftingMonitorContainer container, Inventory inventory, Component title) { super(container, 254, 201, inventory, title); this.craftingMonitor = container.getCraftingMonitor(); @@ -170,8 +105,8 @@ public class CraftingMonitorScreen extends BaseScreen addSideButton(new RedstoneModeSideButton(this, craftingMonitor.getRedstoneModeParameter())); } - ITextComponent cancel = new TranslationTextComponent("gui.cancel"); - ITextComponent cancelAll = new TranslationTextComponent("misc.refinedstorage.cancel_all"); + Component cancel = new TranslatableComponent("gui.cancel"); + Component cancelAll = new TranslatableComponent("misc.refinedstorage.cancel_all"); int cancelButtonWidth = 14 + font.width(cancel.getString()); int cancelAllButtonWidth = 14 + font.width(cancelAll.getString()); @@ -243,7 +178,7 @@ public class CraftingMonitorScreen extends BaseScreen } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { if (craftingMonitor.isActiveOnClient()) { tabs.drawBackground(matrixStack, x, y - tabs.getHeight()); } @@ -258,17 +193,17 @@ public class CraftingMonitorScreen extends BaseScreen } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); int item = scrollbar != null ? scrollbar.getOffset() * 3 : 0; - RenderHelper.setupFor3DItems(); + Lighting.setupFor3DItems(); int x = 7; int y = 20; - List tooltip = null; + List tooltip = null; for (int i = 0; i < 3 * 5; ++i) { if (item < getElements().size()) { @@ -327,4 +262,61 @@ public class CraftingMonitorScreen extends BaseScreen public boolean mouseScrolled(double x, double y, double delta) { return this.scrollbar.mouseScrolled(x, y, delta) || super.mouseScrolled(x, y, delta); } + + public static class Task implements IGridTab { + private final UUID id; + private final ICraftingRequestInfo requested; + private final int qty; + private final long executionStarted; + private final int completionPercentage; + private final List elements; + + public Task(UUID id, ICraftingRequestInfo requested, int qty, long executionStarted, int completionPercentage, List elements) { + this.id = id; + this.requested = requested; + this.qty = qty; + this.executionStarted = executionStarted; + this.completionPercentage = completionPercentage; + this.elements = elements; + } + + @Override + public void drawTooltip(PoseStack matrixStack, int x, int y, int screenWidth, int screenHeight, Font fontRenderer) { + List textLines = Lists.newArrayList(requested.getItem() != null ? requested.getItem().getHoverName() : requested.getFluid().getDisplayName()); + List smallTextLines = Lists.newArrayList(); + + int totalSecs = (int) (System.currentTimeMillis() - executionStarted) / 1000; + int hours = totalSecs / 3600; + int minutes = (totalSecs % 3600) / 60; + int seconds = totalSecs % 60; + + smallTextLines.add(I18n.get("gui.refinedstorage.crafting_monitor.tooltip.requested", requested.getFluid() != null ? API.instance().getQuantityFormatter().formatInBucketForm(qty) : API.instance().getQuantityFormatter().format(qty))); + + if (hours > 0) { + smallTextLines.add(String.format("%02d:%02d:%02d", hours, minutes, seconds)); + } else { + smallTextLines.add(String.format("%02d:%02d", minutes, seconds)); + } + + smallTextLines.add(String.format("%d%%", completionPercentage)); + + RenderUtils.drawTooltipWithSmallText(matrixStack, textLines, smallTextLines, true, ItemStack.EMPTY, x, y, screenWidth, screenHeight, fontRenderer); + } + + @Override + public List getFilters() { + throw new UnsupportedOperationException(); + } + + @Override + public void drawIcon(PoseStack matrixStack, int x, int y, IElementDrawer itemDrawer, IElementDrawer fluidDrawer) { + if (requested.getItem() != null) { + Lighting.setupFor3DItems(); + + itemDrawer.draw(matrixStack, x, y, requested.getItem()); + } else { + fluidDrawer.draw(matrixStack, x, y, requested.getFluid()); + } + } + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/DestructorScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/DestructorScreen.java index 95a749bfc..1affa107b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/DestructorScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/DestructorScreen.java @@ -1,17 +1,17 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.DestructorContainer; import com.refinedmods.refinedstorage.screen.widget.sidebutton.*; import com.refinedmods.refinedstorage.tile.DestructorTile; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class DestructorScreen extends BaseScreen { - public DestructorScreen(DestructorContainer container, PlayerInventory playerInventory, ITextComponent title) { + public DestructorScreen(DestructorContainer container, Inventory playerInventory, Component title) { super(container, 211, 137, playerInventory, title); } @@ -34,14 +34,14 @@ public class DestructorScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/destructor.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, 43, I18n.get("container.inventory")); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/DetectorScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/DetectorScreen.java index 5776774e6..d121b730a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/DetectorScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/DetectorScreen.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.DetectorContainer; import com.refinedmods.refinedstorage.render.RenderSettings; @@ -9,17 +9,17 @@ import com.refinedmods.refinedstorage.screen.widget.sidebutton.ExactModeSideButt import com.refinedmods.refinedstorage.screen.widget.sidebutton.TypeSideButton; import com.refinedmods.refinedstorage.tile.DetectorTile; import com.refinedmods.refinedstorage.tile.data.TileDataManager; -import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.world.entity.player.Inventory; import org.lwjgl.glfw.GLFW; public class DetectorScreen extends BaseScreen { - private TextFieldWidget amountField; + private EditBox amountField; - public DetectorScreen(DetectorContainer container, PlayerInventory inventory, ITextComponent title) { + public DetectorScreen(DetectorContainer container, Inventory inventory, Component title) { super(container, 176, 137, inventory, title); } @@ -31,7 +31,7 @@ public class DetectorScreen extends BaseScreen { addSideButton(new ExactModeSideButton(this, DetectorTile.COMPARE)); - amountField = new TextFieldWidget(font, x + 41 + 1, y + 23 + 1, 50, font.lineHeight, new StringTextComponent("")); + amountField = new EditBox(font, x + 41 + 1, y + 23 + 1, 50, font.lineHeight, new TextComponent("")); amountField.setValue(String.valueOf(DetectorTile.AMOUNT.getValue())); amountField.setBordered(false); amountField.setVisible(true); @@ -48,7 +48,7 @@ public class DetectorScreen extends BaseScreen { } }); - addButton(amountField); + addRenderableWidget(amountField); } public void updateAmountField(int amount) { @@ -61,14 +61,14 @@ public class DetectorScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/detector.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, 43, I18n.get("container.inventory")); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/DiskDriveScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/DiskDriveScreen.java index 1b538fcb6..1e015c709 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/DiskDriveScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/DiskDriveScreen.java @@ -1,15 +1,15 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.container.DiskDriveContainer; import com.refinedmods.refinedstorage.tile.DiskDriveTile; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class DiskDriveScreen extends StorageScreen { - public DiskDriveScreen(DiskDriveContainer container, PlayerInventory inventory, ITextComponent title) { + public DiskDriveScreen(DiskDriveContainer container, Inventory inventory, Component title) { super( container, inventory, @@ -29,7 +29,7 @@ public class DiskDriveScreen extends StorageScreen { } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 79, 42, I18n.get("gui.refinedstorage.disk_drive.disks")); super.renderForeground(matrixStack, mouseX, mouseY); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/DiskManipulatorScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/DiskManipulatorScreen.java index f76578858..bb35109fb 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/DiskManipulatorScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/DiskManipulatorScreen.java @@ -1,17 +1,17 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.DiskManipulatorContainer; import com.refinedmods.refinedstorage.screen.widget.sidebutton.*; import com.refinedmods.refinedstorage.tile.DiskManipulatorTile; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class DiskManipulatorScreen extends BaseScreen { - public DiskManipulatorScreen(DiskManipulatorContainer container, PlayerInventory playerInventory, ITextComponent title) { + public DiskManipulatorScreen(DiskManipulatorContainer container, Inventory playerInventory, Component title) { super(container, 211, 211, playerInventory, title); } @@ -30,14 +30,14 @@ public class DiskManipulatorScreen extends BaseScreen } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/disk_manipulator.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, 117, I18n.get("container.inventory")); renderString(matrixStack, 43, 45, I18n.get("gui.refinedstorage.disk_manipulator.in")); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/ExporterScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/ExporterScreen.java index ca7e14d82..6102f7356 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/ExporterScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/ExporterScreen.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.ExporterContainer; import com.refinedmods.refinedstorage.item.UpgradeItem; @@ -9,14 +9,14 @@ import com.refinedmods.refinedstorage.screen.widget.sidebutton.RedstoneModeSideB import com.refinedmods.refinedstorage.screen.widget.sidebutton.TypeSideButton; import com.refinedmods.refinedstorage.tile.ExporterTile; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class ExporterScreen extends BaseScreen { private boolean hasRegulatorMode; - public ExporterScreen(ExporterContainer container, PlayerInventory playerInventory, ITextComponent title) { + public ExporterScreen(ExporterContainer container, Inventory playerInventory, Component title) { super(container, 211, 137, playerInventory, title); this.hasRegulatorMode = hasRegulatorMode(); @@ -46,14 +46,14 @@ public class ExporterScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/exporter.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, 43, I18n.get("container.inventory")); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/ExternalStorageScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/ExternalStorageScreen.java index cc5cb87c0..4527abe16 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/ExternalStorageScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/ExternalStorageScreen.java @@ -3,11 +3,11 @@ package com.refinedmods.refinedstorage.screen; import com.refinedmods.refinedstorage.container.ExternalStorageContainer; import com.refinedmods.refinedstorage.tile.ExternalStorageTile; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class ExternalStorageScreen extends StorageScreen { - public ExternalStorageScreen(ExternalStorageContainer container, PlayerInventory inventory, ITextComponent title) { + public ExternalStorageScreen(ExternalStorageContainer container, Inventory inventory, Component title) { super( container, inventory, diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/FilterScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/FilterScreen.java index 88f4d955c..ad9d5a1ac 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/FilterScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/FilterScreen.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.api.util.IFilter; @@ -10,30 +10,29 @@ import com.refinedmods.refinedstorage.network.FilterUpdateMessage; import com.refinedmods.refinedstorage.render.RenderSettings; import com.refinedmods.refinedstorage.screen.widget.CheckboxWidget; import com.refinedmods.refinedstorage.screen.widget.sidebutton.FilterTypeSideButton; -import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.ItemStack; import org.lwjgl.glfw.GLFW; public class FilterScreen extends BaseScreen { private final ItemStack stack; - + private final String name; private int compare; private int mode; private boolean modFilter; - private final String name; private int type; private CheckboxWidget modFilterCheckBox; private Button modeButton; - private TextFieldWidget nameField; + private EditBox nameField; - public FilterScreen(FilterContainer container, PlayerInventory inventory, ITextComponent title) { + public FilterScreen(FilterContainer container, Inventory inventory, Component title) { super(container, 176, 231, inventory, title); this.stack = container.getFilterItem(); @@ -47,19 +46,19 @@ public class FilterScreen extends BaseScreen { @Override public void onPostInit(int x, int y) { - addCheckBox(x + 7, y + 77, new TranslationTextComponent("gui.refinedstorage.filter.compare_nbt"), (compare & IComparer.COMPARE_NBT) == IComparer.COMPARE_NBT, btn -> { + addCheckBox(x + 7, y + 77, new TranslatableComponent("gui.refinedstorage.filter.compare_nbt"), (compare & IComparer.COMPARE_NBT) == IComparer.COMPARE_NBT, btn -> { compare ^= IComparer.COMPARE_NBT; sendUpdate(); }); - modFilterCheckBox = addCheckBox(0, y + 71 + 25, new TranslationTextComponent("gui.refinedstorage.filter.mod_filter"), modFilter, btn -> { + modFilterCheckBox = addCheckBox(0, y + 71 + 25, new TranslatableComponent("gui.refinedstorage.filter.mod_filter"), modFilter, btn -> { modFilter = !modFilter; sendUpdate(); }); - modeButton = addButton(x + 7, y + 71 + 21, 0, 20, new StringTextComponent(""), true, true, btn -> { + modeButton = addButton(x + 7, y + 71 + 21, 0, 20, new TextComponent(""), true, true, btn -> { mode = mode == IFilter.MODE_WHITELIST ? IFilter.MODE_BLACKLIST : IFilter.MODE_WHITELIST; updateModeButton(mode); @@ -69,7 +68,7 @@ public class FilterScreen extends BaseScreen { updateModeButton(mode); - nameField = new TextFieldWidget(font, x + 34, y + 121, 137 - 6, font.lineHeight, new StringTextComponent("")); + nameField = new EditBox(font, x + 34, y + 121, 137 - 6, font.lineHeight, new TextComponent("")); nameField.setValue(name); nameField.setBordered(false); nameField.setVisible(true); @@ -78,15 +77,15 @@ public class FilterScreen extends BaseScreen { nameField.setTextColor(RenderSettings.INSTANCE.getSecondaryColor()); nameField.setResponder(content -> sendUpdate()); - addButton(nameField); + addRenderableWidget(nameField); addSideButton(new FilterTypeSideButton(this)); } private void updateModeButton(int mode) { - ITextComponent text = mode == IFilter.MODE_WHITELIST - ? new TranslationTextComponent("sidebutton.refinedstorage.mode.whitelist") - : new TranslationTextComponent("sidebutton.refinedstorage.mode.blacklist"); + Component text = mode == IFilter.MODE_WHITELIST + ? new TranslatableComponent("sidebutton.refinedstorage.mode.whitelist") + : new TranslatableComponent("sidebutton.refinedstorage.mode.blacklist"); modeButton.setWidth(font.width(text.getString()) + 12); modeButton.setMessage(text); @@ -114,14 +113,14 @@ public class FilterScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/filter.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, 137, I18n.get("container.inventory")); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/FluidAmountScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/FluidAmountScreen.java index 367ff0fe7..1dbf23475 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/FluidAmountScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/FluidAmountScreen.java @@ -4,10 +4,10 @@ import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.FluidAmountContainer; import com.refinedmods.refinedstorage.network.SetFluidFilterSlotMessage; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.fluids.FluidStack; import org.apache.commons.lang3.tuple.Pair; @@ -21,8 +21,8 @@ public class FluidAmountScreen extends AmountSpecifyingScreen alternativesScreenFactory; - public FluidAmountScreen(BaseScreen parent, PlayerEntity player, int containerSlot, FluidStack stack, int maxAmount, @Nullable UnaryOperator alternativesScreenFactory) { - super(parent, new FluidAmountContainer(player, stack), alternativesScreenFactory != null ? 194 : 172, 99, player.inventory, new TranslationTextComponent("gui.refinedstorage.fluid_amount")); + public FluidAmountScreen(BaseScreen parent, Player player, int containerSlot, FluidStack stack, int maxAmount, @Nullable UnaryOperator alternativesScreenFactory) { + super(parent, new FluidAmountContainer(player, stack), alternativesScreenFactory != null ? 194 : 172, 99, player.getInventory(), new TranslatableComponent("gui.refinedstorage.fluid_amount")); this.containerSlot = containerSlot; this.stack = stack; @@ -40,7 +40,7 @@ public class FluidAmountScreen extends AmountSpecifyingScreen minecraft.setScreen(alternativesScreenFactory.apply(this))); + addButton(x + 114, cancelButton.y + 24, getOkCancelButtonWidth(), 20, new TranslatableComponent("gui.refinedstorage.alternatives"), true, true, btn -> minecraft.setScreen(alternativesScreenFactory.apply(this))); } } @@ -69,8 +69,8 @@ public class FluidAmountScreen extends AmountSpecifyingScreen { private static final FluidRenderer TANK_RENDERER = new FluidRenderer(FluidInterfaceNetworkNode.TANK_CAPACITY, 12, 47, 1); - public FluidInterfaceScreen(FluidInterfaceContainer container, PlayerInventory inventory, ITextComponent title) { + public FluidInterfaceScreen(FluidInterfaceContainer container, Inventory inventory, Component title) { super(container, 211, 204, inventory, title); } @@ -33,7 +33,7 @@ public class FluidInterfaceScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/fluid_interface.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); @@ -48,18 +48,18 @@ public class FluidInterfaceScreen extends BaseScreen { } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 43 + 4, 20, I18n.get("gui.refinedstorage.fluid_interface.in")); renderString(matrixStack, 115 + 1, 20, I18n.get("gui.refinedstorage.fluid_interface.out")); renderString(matrixStack, 7, 111, I18n.get("container.inventory")); if (RenderUtils.inBounds(46, 56, 12, 47, mouseX, mouseY) && !FluidInterfaceTile.TANK_IN.getValue().isEmpty()) { - renderTooltip(matrixStack, mouseX, mouseY, FluidInterfaceTile.TANK_IN.getValue().getDisplayName().getString() + "\n" + TextFormatting.GRAY + API.instance().getQuantityFormatter().formatInBucketForm(FluidInterfaceTile.TANK_IN.getValue().getAmount()) + TextFormatting.RESET); + renderTooltip(matrixStack, mouseX, mouseY, FluidInterfaceTile.TANK_IN.getValue().getDisplayName().getString() + "\n" + ChatFormatting.GRAY + API.instance().getQuantityFormatter().formatInBucketForm(FluidInterfaceTile.TANK_IN.getValue().getAmount()) + ChatFormatting.RESET); } if (RenderUtils.inBounds(118, 56, 12, 47, mouseX, mouseY) && !FluidInterfaceTile.TANK_OUT.getValue().isEmpty()) { - renderTooltip(matrixStack, mouseX, mouseY, FluidInterfaceTile.TANK_OUT.getValue().getDisplayName().getString() + "\n" + TextFormatting.GRAY + API.instance().getQuantityFormatter().formatInBucketForm(FluidInterfaceTile.TANK_OUT.getValue().getAmount()) + TextFormatting.RESET); + renderTooltip(matrixStack, mouseX, mouseY, FluidInterfaceTile.TANK_OUT.getValue().getDisplayName().getString() + "\n" + ChatFormatting.GRAY + API.instance().getQuantityFormatter().formatInBucketForm(FluidInterfaceTile.TANK_OUT.getValue().getAmount()) + ChatFormatting.RESET); } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/FluidStorageBlockScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/FluidStorageBlockScreen.java index 6d248dae0..729153306 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/FluidStorageBlockScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/FluidStorageBlockScreen.java @@ -3,11 +3,11 @@ package com.refinedmods.refinedstorage.screen; import com.refinedmods.refinedstorage.container.FluidStorageContainer; import com.refinedmods.refinedstorage.tile.FluidStorageTile; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class FluidStorageBlockScreen extends StorageScreen { - public FluidStorageBlockScreen(FluidStorageContainer container, PlayerInventory inventory, ITextComponent title) { + public FluidStorageBlockScreen(FluidStorageContainer container, Inventory inventory, Component title) { super( container, inventory, diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/ImporterScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/ImporterScreen.java index 2c62f0ada..cf6551057 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/ImporterScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/ImporterScreen.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.ImporterContainer; import com.refinedmods.refinedstorage.screen.widget.sidebutton.ExactModeSideButton; @@ -9,12 +9,12 @@ import com.refinedmods.refinedstorage.screen.widget.sidebutton.TypeSideButton; import com.refinedmods.refinedstorage.screen.widget.sidebutton.WhitelistBlacklistSideButton; import com.refinedmods.refinedstorage.tile.ImporterTile; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class ImporterScreen extends BaseScreen { - public ImporterScreen(ImporterContainer container, PlayerInventory inventory, ITextComponent title) { + public ImporterScreen(ImporterContainer container, Inventory inventory, Component title) { super(container, 211, 137, inventory, title); } @@ -35,14 +35,14 @@ public class ImporterScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/importer.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, 43, I18n.get("container.inventory")); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/InterfaceScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/InterfaceScreen.java index 4ebdc4f4d..5d81d5ad9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/InterfaceScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/InterfaceScreen.java @@ -1,18 +1,18 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.InterfaceContainer; import com.refinedmods.refinedstorage.screen.widget.sidebutton.ExactModeSideButton; import com.refinedmods.refinedstorage.screen.widget.sidebutton.RedstoneModeSideButton; import com.refinedmods.refinedstorage.tile.InterfaceTile; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class InterfaceScreen extends BaseScreen { - public InterfaceScreen(InterfaceContainer container, PlayerInventory inventory, ITextComponent title) { + public InterfaceScreen(InterfaceContainer container, Inventory inventory, Component title) { super(container, 211, 217, inventory, title); } @@ -29,14 +29,14 @@ public class InterfaceScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/interface.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, I18n.get("gui.refinedstorage.interface.import")); renderString(matrixStack, 7, 42, I18n.get("gui.refinedstorage.interface.export")); renderString(matrixStack, 7, 122, I18n.get("container.inventory")); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/ItemAmountScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/ItemAmountScreen.java index 56f7ddbff..9bce8297c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/ItemAmountScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/ItemAmountScreen.java @@ -3,11 +3,11 @@ package com.refinedmods.refinedstorage.screen; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.AmountContainer; import com.refinedmods.refinedstorage.network.SetFilterSlotMessage; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.ItemHandlerHelper; import org.apache.commons.lang3.tuple.Pair; @@ -21,8 +21,8 @@ public class ItemAmountScreen extends AmountSpecifyingScreen { @Nullable private final UnaryOperator alternativesScreenFactory; - public ItemAmountScreen(BaseScreen parent, PlayerEntity player, int containerSlot, ItemStack stack, int maxAmount, @Nullable UnaryOperator alternativesScreenFactory) { - super(parent, new AmountContainer(player, stack), alternativesScreenFactory != null ? 194 : 172, 99, player.inventory, new TranslationTextComponent("gui.refinedstorage.item_amount")); + public ItemAmountScreen(BaseScreen parent, Player player, int containerSlot, ItemStack stack, int maxAmount, @Nullable UnaryOperator alternativesScreenFactory) { + super(parent, new AmountContainer(player, stack), alternativesScreenFactory != null ? 194 : 172, 99, player.getInventory(), new TranslatableComponent("gui.refinedstorage.item_amount")); this.containerSlot = containerSlot; this.stack = stack; @@ -40,7 +40,7 @@ public class ItemAmountScreen extends AmountSpecifyingScreen { super.onPostInit(x, y); if (alternativesScreenFactory != null) { - addButton(x + 114, cancelButton.y + 24, getOkCancelButtonWidth(), 20, new TranslationTextComponent("gui.refinedstorage.alternatives"), true, true, btn -> minecraft.setScreen(alternativesScreenFactory.apply(this))); + addButton(x + 114, cancelButton.y + 24, getOkCancelButtonWidth(), 20, new TranslatableComponent("gui.refinedstorage.alternatives"), true, true, btn -> minecraft.setScreen(alternativesScreenFactory.apply(this))); } } @@ -69,8 +69,8 @@ public class ItemAmountScreen extends AmountSpecifyingScreen { } @Override - protected ITextComponent getOkButtonText() { - return new TranslationTextComponent("misc.refinedstorage.set"); + protected Component getOkButtonText() { + return new TranslatableComponent("misc.refinedstorage.set"); } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/KeyInputListener.java b/src/main/java/com/refinedmods/refinedstorage/screen/KeyInputListener.java index 02b40c2dd..889bbe2f6 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/KeyInputListener.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/KeyInputListener.java @@ -6,12 +6,12 @@ import com.refinedmods.refinedstorage.RSKeyBindings; import com.refinedmods.refinedstorage.integration.curios.CuriosIntegration; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.network.OpenNetworkItemMessage; +import net.minecraft.Util; import net.minecraft.client.Minecraft; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Util; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.Container; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.client.event.InputEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import org.apache.commons.lang3.tuple.ImmutableTriple; @@ -23,25 +23,10 @@ import java.util.Optional; import java.util.Set; public class KeyInputListener { - @SubscribeEvent - public void onKeyInput(InputEvent.KeyInputEvent e) { - if (Minecraft.getInstance().player != null) { - if (RSKeyBindings.OPEN_WIRELESS_GRID.isDown()) { - findAndOpen(RSItems.WIRELESS_GRID.get(), RSItems.CREATIVE_WIRELESS_GRID.get()); - } else if (RSKeyBindings.OPEN_WIRELESS_FLUID_GRID.isDown()) { - findAndOpen(RSItems.WIRELESS_FLUID_GRID.get(), RSItems.CREATIVE_WIRELESS_FLUID_GRID.get()); - } else if (RSKeyBindings.OPEN_PORTABLE_GRID.isDown()) { - findAndOpen(RSItems.PORTABLE_GRID.get(), RSItems.CREATIVE_PORTABLE_GRID.get()); - } else if (RSKeyBindings.OPEN_WIRELESS_CRAFTING_MONITOR.isDown()) { - findAndOpen(RSItems.WIRELESS_CRAFTING_MONITOR.get(), RSItems.CREATIVE_WIRELESS_CRAFTING_MONITOR.get()); - } - } - } - //These are static to be accessible from RSAddons public static void findAndOpen(Item... items) { Set validItems = new HashSet<>(Arrays.asList(items)); - IInventory inv = Minecraft.getInstance().player.inventory; + Container inv = Minecraft.getInstance().player.getInventory(); int slotFound = -1; for (int i = 0; i < inv.getContainerSize(); ++i) { @@ -49,7 +34,7 @@ public class KeyInputListener { if (validItems.contains(slot.getItem())) { if (slotFound != -1) { - sendError(new TranslationTextComponent("misc.refinedstorage.network_item.shortcut_duplicate", new TranslationTextComponent(items[0].getDescriptionId()))); + sendError(new TranslatableComponent("misc.refinedstorage.network_item.shortcut_duplicate", new TranslatableComponent(items[0].getDescriptionId()))); return; } @@ -67,15 +52,30 @@ public class KeyInputListener { } if (slotFound == -1) { - sendError(new TranslationTextComponent("misc.refinedstorage.network_item.shortcut_not_found", new TranslationTextComponent(items[0].getDescriptionId()))); + sendError(new TranslatableComponent("misc.refinedstorage.network_item.shortcut_not_found", new TranslatableComponent(items[0].getDescriptionId()))); } else { RS.NETWORK_HANDLER.sendToServer(new OpenNetworkItemMessage(new PlayerSlot(slotFound))); } } - public static void sendError(TranslationTextComponent error) { + public static void sendError(TranslatableComponent error) { Minecraft.getInstance().player.sendMessage(error, Util.NIL_UUID); } + @SubscribeEvent + public void onKeyInput(InputEvent.KeyInputEvent e) { + if (Minecraft.getInstance().player != null) { + if (RSKeyBindings.OPEN_WIRELESS_GRID.isDown()) { + findAndOpen(RSItems.WIRELESS_GRID.get(), RSItems.CREATIVE_WIRELESS_GRID.get()); + } else if (RSKeyBindings.OPEN_WIRELESS_FLUID_GRID.isDown()) { + findAndOpen(RSItems.WIRELESS_FLUID_GRID.get(), RSItems.CREATIVE_WIRELESS_FLUID_GRID.get()); + } else if (RSKeyBindings.OPEN_PORTABLE_GRID.isDown()) { + findAndOpen(RSItems.PORTABLE_GRID.get(), RSItems.CREATIVE_PORTABLE_GRID.get()); + } else if (RSKeyBindings.OPEN_WIRELESS_CRAFTING_MONITOR.isDown()) { + findAndOpen(RSItems.WIRELESS_CRAFTING_MONITOR.get(), RSItems.CREATIVE_WIRELESS_CRAFTING_MONITOR.get()); + } + } + } + } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/NetworkTransmitterScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/NetworkTransmitterScreen.java index ed5307e8d..9bc249186 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/NetworkTransmitterScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/NetworkTransmitterScreen.java @@ -1,20 +1,20 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.NetworkTransmitterContainer; import com.refinedmods.refinedstorage.screen.widget.sidebutton.RedstoneModeSideButton; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; import com.refinedmods.refinedstorage.tile.NetworkTransmitterTile; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Inventory; import java.util.Optional; public class NetworkTransmitterScreen extends BaseScreen { - public NetworkTransmitterScreen(NetworkTransmitterContainer container, PlayerInventory inventory, ITextComponent title) { + public NetworkTransmitterScreen(NetworkTransmitterContainer container, Inventory inventory, Component title) { super(container, 176, 137, inventory, title); } @@ -29,14 +29,14 @@ public class NetworkTransmitterScreen extends BaseScreen { +public class PriorityScreen extends AmountSpecifyingScreen { private final TileDataParameter priority; - public PriorityScreen(BaseScreen parent, TileDataParameter priority, PlayerInventory inventory) { - super(parent, new Container(null, 0) { + public PriorityScreen(BaseScreen parent, TileDataParameter priority, Inventory inventory) { + super(parent, new AbstractContainerMenu(null, 0) { @Override - public boolean stillValid(PlayerEntity player) { + public boolean stillValid(Player player) { return false; } - }, 164, 92, inventory, new TranslationTextComponent("misc.refinedstorage.priority")); + }, 164, 92, inventory, new TranslatableComponent("misc.refinedstorage.priority")); this.priority = priority; } @@ -29,8 +29,8 @@ public class PriorityScreen extends AmountSpecifyingScreen { } @Override - protected ITextComponent getOkButtonText() { - return new TranslationTextComponent("misc.refinedstorage.set"); + protected Component getOkButtonText() { + return new TranslatableComponent("misc.refinedstorage.set"); } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/RelayScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/RelayScreen.java index c90b469a3..54de54313 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/RelayScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/RelayScreen.java @@ -1,16 +1,16 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.RelayContainer; import com.refinedmods.refinedstorage.screen.widget.sidebutton.RedstoneModeSideButton; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class RelayScreen extends BaseScreen { - public RelayScreen(RelayContainer container, PlayerInventory inventory, ITextComponent title) { + public RelayScreen(RelayContainer container, Inventory inventory, Component title) { super(container, 176, 131, inventory, title); } @@ -25,14 +25,14 @@ public class RelayScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/relay.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, 39, I18n.get("container.inventory")); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/SecurityManagerScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/SecurityManagerScreen.java index dc2af09f9..0c0949a14 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/SecurityManagerScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/SecurityManagerScreen.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.network.security.Permission; import com.refinedmods.refinedstorage.container.SecurityManagerContainer; @@ -11,17 +11,17 @@ import com.refinedmods.refinedstorage.screen.widget.sidebutton.RedstoneModeSideB import com.refinedmods.refinedstorage.tile.NetworkNodeTile; import com.refinedmods.refinedstorage.tile.SecurityManagerTile; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.ItemStack; public class SecurityManagerScreen extends BaseScreen { private final SecurityManagerTile securityManager; private final CheckboxWidget[] permissions = new CheckboxWidget[Permission.values().length]; - public SecurityManagerScreen(SecurityManagerContainer container, PlayerInventory inventory, ITextComponent title) { + public SecurityManagerScreen(SecurityManagerContainer container, Inventory inventory, Component title) { super(container, 176, 234, inventory, title); this.securityManager = (SecurityManagerTile) container.getTile(); @@ -33,12 +33,12 @@ public class SecurityManagerScreen extends BaseScreen int padding = 15; - permissions[0] = addCheckBox(x + 7, y + 93, new TranslationTextComponent("gui.refinedstorage.security_manager.permission.0"), false, btn -> handle(0)); - permissions[1] = addCheckBox(permissions[0].x, permissions[0].y + padding, new TranslationTextComponent("gui.refinedstorage.security_manager.permission.1"), false, btn -> handle(1)); - permissions[2] = addCheckBox(permissions[1].x, permissions[1].y + padding, new TranslationTextComponent("gui.refinedstorage.security_manager.permission.2"), false, btn -> handle(2)); - permissions[3] = addCheckBox(permissions[0].x + 90, permissions[0].y, new TranslationTextComponent("gui.refinedstorage.security_manager.permission.3"), false, btn -> handle(3)); - permissions[4] = addCheckBox(permissions[3].x, permissions[3].y + padding, new TranslationTextComponent("gui.refinedstorage.security_manager.permission.4"), false, btn -> handle(4)); - permissions[5] = addCheckBox(permissions[4].x, permissions[4].y + padding, new TranslationTextComponent("gui.refinedstorage.security_manager.permission.5"), false, btn -> handle(5)); + permissions[0] = addCheckBox(x + 7, y + 93, new TranslatableComponent("gui.refinedstorage.security_manager.permission.0"), false, btn -> handle(0)); + permissions[1] = addCheckBox(permissions[0].x, permissions[0].y + padding, new TranslatableComponent("gui.refinedstorage.security_manager.permission.1"), false, btn -> handle(1)); + permissions[2] = addCheckBox(permissions[1].x, permissions[1].y + padding, new TranslatableComponent("gui.refinedstorage.security_manager.permission.2"), false, btn -> handle(2)); + permissions[3] = addCheckBox(permissions[0].x + 90, permissions[0].y, new TranslatableComponent("gui.refinedstorage.security_manager.permission.3"), false, btn -> handle(3)); + permissions[4] = addCheckBox(permissions[3].x, permissions[3].y + padding, new TranslatableComponent("gui.refinedstorage.security_manager.permission.4"), false, btn -> handle(4)); + permissions[5] = addCheckBox(permissions[4].x, permissions[4].y + padding, new TranslatableComponent("gui.refinedstorage.security_manager.permission.5"), false, btn -> handle(5)); } private void handle(int i) { @@ -55,14 +55,14 @@ public class SecurityManagerScreen extends BaseScreen } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/security_manager.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, 59, I18n.get("gui.refinedstorage.security_manager.configure")); renderString(matrixStack, 7, 140, I18n.get("container.inventory")); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/StorageBlockScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/StorageBlockScreen.java index 3c73dffb4..e9a237a56 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/StorageBlockScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/StorageBlockScreen.java @@ -3,11 +3,11 @@ package com.refinedmods.refinedstorage.screen; import com.refinedmods.refinedstorage.container.StorageContainer; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; import com.refinedmods.refinedstorage.tile.StorageTile; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class StorageBlockScreen extends StorageScreen { - public StorageBlockScreen(StorageContainer container, PlayerInventory inventory, ITextComponent title) { + public StorageBlockScreen(StorageContainer container, Inventory inventory, Component title) { super( container, inventory, diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/StorageMonitorScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/StorageMonitorScreen.java index 5d672b594..c6b26b0d7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/StorageMonitorScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/StorageMonitorScreen.java @@ -1,17 +1,17 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.StorageMonitorContainer; import com.refinedmods.refinedstorage.screen.widget.sidebutton.ExactModeSideButton; import com.refinedmods.refinedstorage.screen.widget.sidebutton.TypeSideButton; import com.refinedmods.refinedstorage.tile.StorageMonitorTile; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class StorageMonitorScreen extends BaseScreen { - public StorageMonitorScreen(StorageMonitorContainer container, PlayerInventory inventory, ITextComponent title) { + public StorageMonitorScreen(StorageMonitorContainer container, Inventory inventory, Component title) { super(container, 211, 137, inventory, title); } @@ -27,14 +27,14 @@ public class StorageMonitorScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/storage_monitor.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, 43, I18n.get("container.inventory")); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/StorageScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/StorageScreen.java index 8ae51e237..c1424c75d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/StorageScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/StorageScreen.java @@ -1,20 +1,20 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.screen.widget.sidebutton.*; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; import java.util.function.Supplier; -public class StorageScreen extends BaseScreen { +public class StorageScreen extends BaseScreen { private static final int BAR_X = 8; private static final int BAR_Y = 54; private static final int BAR_WIDTH = 16; @@ -26,8 +26,8 @@ public class StorageScreen extends BaseScreen { private final Supplier capacitySupplier; public StorageScreen(T container, - PlayerInventory inventory, - ITextComponent title, + Inventory inventory, + Component title, String texture, StorageScreenTileDataParameters dataParameters, Supplier storedSupplier, @@ -68,7 +68,7 @@ public class StorageScreen extends BaseScreen { x + 169 - buttonWidth, y + 41, buttonWidth, 20, - new TranslationTextComponent("misc.refinedstorage.priority"), + new TranslatableComponent("misc.refinedstorage.priority"), true, true, btn -> minecraft.setScreen(new PriorityScreen(this, dataParameters.getPriorityParameter(), inventory)) @@ -81,7 +81,7 @@ public class StorageScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, texture); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); @@ -92,7 +92,7 @@ public class StorageScreen extends BaseScreen { } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, 42, capacitySupplier.get() == -1 ? I18n.get("misc.refinedstorage.storage.stored_minimal", API.instance().getQuantityFormatter().formatWithUnits(storedSupplier.get())) : @@ -111,7 +111,7 @@ public class StorageScreen extends BaseScreen { renderTooltip(matrixStack, mouseX, mouseY, (capacitySupplier.get() == -1 ? I18n.get("misc.refinedstorage.storage.stored_minimal", API.instance().getQuantityFormatter().format(storedSupplier.get())) : I18n.get("misc.refinedstorage.storage.stored_capacity_minimal", API.instance().getQuantityFormatter().format(storedSupplier.get()), API.instance().getQuantityFormatter().format(capacitySupplier.get())) - ) + "\n" + TextFormatting.GRAY + I18n.get("misc.refinedstorage.storage.full", full)); + ) + "\n" + ChatFormatting.GRAY + I18n.get("misc.refinedstorage.storage.full", full)); } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/WirelessTransmitterScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/WirelessTransmitterScreen.java index a90c60f44..970976841 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/WirelessTransmitterScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/WirelessTransmitterScreen.java @@ -1,17 +1,17 @@ package com.refinedmods.refinedstorage.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.WirelessTransmitterContainer; import com.refinedmods.refinedstorage.screen.widget.sidebutton.RedstoneModeSideButton; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; import com.refinedmods.refinedstorage.tile.WirelessTransmitterTile; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; public class WirelessTransmitterScreen extends BaseScreen { - public WirelessTransmitterScreen(WirelessTransmitterContainer container, PlayerInventory inventory, ITextComponent title) { + public WirelessTransmitterScreen(WirelessTransmitterContainer container, Inventory inventory, Component title) { super(container, 211, 137, inventory, title); } @@ -26,14 +26,14 @@ public class WirelessTransmitterScreen extends BaseScreen { +public class CrafterManagerScreenFactory implements MenuScreens.ScreenConstructor { @Override - public CrafterManagerScreen create(CrafterManagerContainer container, PlayerInventory playerInventory, ITextComponent title) { + public CrafterManagerScreen create(CrafterManagerContainer container, Inventory playerInventory, Component title) { CrafterManagerScreen screen = new CrafterManagerScreen(container, playerInventory, title); container.setScreenInfoProvider(screen); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/factory/GridScreenFactory.java b/src/main/java/com/refinedmods/refinedstorage/screen/factory/GridScreenFactory.java index 0e903fe48..d1b439d35 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/factory/GridScreenFactory.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/factory/GridScreenFactory.java @@ -2,13 +2,13 @@ package com.refinedmods.refinedstorage.screen.factory; import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.screen.grid.GridScreen; -import net.minecraft.client.gui.ScreenManager; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.gui.screens.MenuScreens; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; -public class GridScreenFactory implements ScreenManager.IScreenFactory { +public class GridScreenFactory implements MenuScreens.ScreenConstructor { @Override - public GridScreen create(GridContainer container, PlayerInventory inv, ITextComponent title) { + public GridScreen create(GridContainer container, Inventory inv, Component title) { GridScreen screen = new GridScreen(container, container.getGrid(), inv, title); container.setScreenInfoProvider(screen); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/AlternativesScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/AlternativesScreen.java index 47c8c6aaa..8b3e60697 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/AlternativesScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/AlternativesScreen.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.screen.grid; -import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.container.AlternativesContainer; import com.refinedmods.refinedstorage.render.FluidRenderer; @@ -12,18 +12,18 @@ import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.grid.GridTile; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.fluid.Fluid; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.FluidTags; import net.minecraft.tags.ItemTags; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.material.Fluid; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; import org.lwjgl.glfw.GLFW; @@ -46,14 +46,14 @@ public class AlternativesScreen extends BaseScreen { private ItemStack item; private FluidStack fluid; - private AlternativesScreen(Screen parent, PlayerEntity player, ITextComponent title) { + private AlternativesScreen(Screen parent, Player player, Component title) { super(new AlternativesContainer(player), 175, 143, null, title); this.parent = parent; this.scrollbar = new ScrollbarWidget(this, 155, 20, 12, 89); } - public AlternativesScreen(Screen parent, PlayerEntity player, ITextComponent title, ItemStack item, int slot) { + public AlternativesScreen(Screen parent, Player player, Component title, ItemStack item, int slot) { this(parent, player, title); this.type = IType.ITEMS; @@ -62,7 +62,7 @@ public class AlternativesScreen extends BaseScreen { this.fluid = null; } - public AlternativesScreen(Screen parent, PlayerEntity player, ITextComponent title, FluidStack fluid, int slot) { + public AlternativesScreen(Screen parent, Player player, Component title, FluidStack fluid, int slot) { this(parent, player, title); this.type = IType.FLUIDS; @@ -137,8 +137,8 @@ public class AlternativesScreen extends BaseScreen { } } - Button apply = addButton(x + 7, y + 114, 50, 20, new TranslationTextComponent("gui.refinedstorage.alternatives.apply"), lines.size() > 1, true, btn -> apply()); - addButton(x + apply.getWidth() + 7 + 4, y + 114, 50, 20, new TranslationTextComponent("gui.cancel"), true, true, btn -> close()); + Button apply = addButton(x + 7, y + 114, 50, 20, new TranslatableComponent("gui.refinedstorage.alternatives.apply"), lines.size() > 1, true, btn -> apply()); + addButton(x + apply.getWidth() + 7 + 4, y + 114, 50, 20, new TranslatableComponent("gui.cancel"), true, true, btn -> close()); } @Override @@ -152,7 +152,7 @@ public class AlternativesScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/alternatives.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); @@ -161,7 +161,7 @@ public class AlternativesScreen extends BaseScreen { } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); int x = 8; @@ -262,10 +262,10 @@ public class AlternativesScreen extends BaseScreen { } private interface Line { - default void render(MatrixStack matrixStack, int x, int y) { + default void render(PoseStack matrixStack, int x, int y) { } - default void renderTooltip(MatrixStack matrixStack, int x, int y, int mx, int my) { + default void renderTooltip(PoseStack matrixStack, int x, int y, int mx, int my) { } default void layoutDependantControls(boolean visible, int x, int y) { @@ -280,8 +280,8 @@ public class AlternativesScreen extends BaseScreen { } @Override - public void render(MatrixStack matrixStack, int x, int y) { - RenderSystem.color4f(1, 1, 1, 1); + public void render(PoseStack matrixStack, int x, int y) { + RenderSystem.setShaderColor(1, 1, 1, 1); renderItem(matrixStack, x + 3, y + 2, item); renderString(matrixStack, x + 4 + 19, y + 7, item.getHoverName().getString()); } @@ -295,7 +295,7 @@ public class AlternativesScreen extends BaseScreen { } @Override - public void render(MatrixStack matrixStack, int x, int y) { + public void render(PoseStack matrixStack, int x, int y) { FluidRenderer.INSTANCE.render(matrixStack, x + 3, y + 2, fluid); renderString(matrixStack, x + 4 + 19, y + 7, fluid.getDisplayName().getString()); } @@ -307,7 +307,7 @@ public class AlternativesScreen extends BaseScreen { public TagLine(ResourceLocation tagName, boolean checked) { this.tagName = tagName; - this.widget = addCheckBox(-100, -100, new StringTextComponent(RenderUtils.shorten(tagName.toString(), 22)), checked, btn -> { + this.widget = addCheckBox(-100, -100, new TextComponent(RenderUtils.shorten(tagName.toString(), 22)), checked, btn -> { // NO OP }); @@ -331,7 +331,7 @@ public class AlternativesScreen extends BaseScreen { } @Override - public void render(MatrixStack matrixStack, int x, int y) { + public void render(PoseStack matrixStack, int x, int y) { for (ItemStack itemInList : items) { renderItem(matrixStack, x + 3, y, itemInList); @@ -340,7 +340,7 @@ public class AlternativesScreen extends BaseScreen { } @Override - public void renderTooltip(MatrixStack matrixStack, int x, int y, int mx, int my) { + public void renderTooltip(PoseStack matrixStack, int x, int y, int mx, int my) { for (ItemStack itemInList : items) { if (RenderUtils.inBounds(x + 3, y, 16, 16, mx, my)) { AlternativesScreen.this.renderTooltip(matrixStack, itemInList, mx, my, RenderUtils.getTooltipFromItem(itemInList)); @@ -359,7 +359,7 @@ public class AlternativesScreen extends BaseScreen { } @Override - public void render(MatrixStack matrixStack, int x, int y) { + public void render(PoseStack matrixStack, int x, int y) { for (FluidStack fluidInList : fluids) { FluidRenderer.INSTANCE.render(matrixStack, x + 3, y, fluidInList); @@ -368,7 +368,7 @@ public class AlternativesScreen extends BaseScreen { } @Override - public void renderTooltip(MatrixStack matrixStack, int x, int y, int mx, int my) { + public void renderTooltip(PoseStack matrixStack, int x, int y, int mx, int my) { for (FluidStack fluidInList : fluids) { if (RenderUtils.inBounds(x + 3, y, 16, 16, mx, my)) { AlternativesScreen.this.renderTooltip(matrixStack, mx, my, fluidInList.getDisplayName().getString()); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/CraftingPreviewScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/CraftingPreviewScreen.java index c8319fd7b..447d5636f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/CraftingPreviewScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/CraftingPreviewScreen.java @@ -1,7 +1,8 @@ package com.refinedmods.refinedstorage.screen.grid; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.platform.Lighting; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPattern; import com.refinedmods.refinedstorage.api.autocrafting.preview.ICraftingPreviewElement; @@ -16,16 +17,15 @@ import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.screen.widget.ScrollbarWidget; import com.refinedmods.refinedstorage.util.RenderUtils; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.container.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; import net.minecraftforge.fluids.FluidStack; import org.lwjgl.glfw.GLFW; @@ -35,7 +35,7 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; -public class CraftingPreviewScreen extends BaseScreen { +public class CraftingPreviewScreen extends BaseScreen { private static final int VISIBLE_ROWS = 5; private final List elements; @@ -46,16 +46,14 @@ public class CraftingPreviewScreen extends BaseScreen { private final UUID id; private final int quantity; private final boolean fluids; - + private final IElementDrawers drawers = new CraftingPreviewElementDrawers(this); private ItemStack hoveringStack; private FluidStack hoveringFluid; - private final IElementDrawers drawers = new CraftingPreviewElementDrawers(this); - - public CraftingPreviewScreen(Screen parent, List elements, UUID id, int quantity, boolean fluids, ITextComponent title) { - super(new Container(null, 0) { + public CraftingPreviewScreen(Screen parent, List elements, UUID id, int quantity, boolean fluids, Component title) { + super(new AbstractContainerMenu(null, 0) { @Override - public boolean stillValid(@Nonnull PlayerEntity player) { + public boolean stillValid(@Nonnull Player player) { return false; } }, 254, 201, null, title); @@ -72,9 +70,9 @@ public class CraftingPreviewScreen extends BaseScreen { @Override public void onPostInit(int x, int y) { - addButton(x + 55, y + 201 - 20 - 7, 50, 20, new TranslationTextComponent("gui.cancel"), true, true, btn -> close()); + addButton(x + 55, y + 201 - 20 - 7, 50, 20, new TranslatableComponent("gui.cancel"), true, true, btn -> close()); - Button startButton = addButton(x + 129, y + 201 - 20 - 7, 50, 20, new TranslationTextComponent("misc.refinedstorage.start"), true, true, btn -> startRequest()); + Button startButton = addButton(x + 129, y + 201 - 20 - 7, 50, 20, new TranslatableComponent("misc.refinedstorage.start"), true, true, btn -> startRequest()); startButton.active = elements.stream().noneMatch(ICraftingPreviewElement::doesDisableTaskStarting); } @@ -94,7 +92,7 @@ public class CraftingPreviewScreen extends BaseScreen { } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { bindTexture(RS.ID, "gui/crafting_preview.png"); blit(matrixStack, x, y, 0, 0, imageWidth, imageHeight); @@ -107,7 +105,7 @@ public class CraftingPreviewScreen extends BaseScreen { } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); int x = 7; @@ -123,10 +121,10 @@ public class CraftingPreviewScreen extends BaseScreen { } } - private void renderPreview(MatrixStack matrixStack, int mouseX, int mouseY, int x, int y) { + private void renderPreview(PoseStack matrixStack, int mouseX, int mouseY, int x, int y) { int slot = scrollbar != null ? (scrollbar.getOffset() * 3) : 0; - RenderHelper.setupFor3DItems(); + Lighting.setupFor3DItems(); RenderSystem.enableDepthTest(); this.hoveringStack = null; @@ -148,7 +146,7 @@ public class CraftingPreviewScreen extends BaseScreen { } } - private void renderElement(MatrixStack matrixStack, int mouseX, int mouseY, int x, int y, ICraftingPreviewElement element) { + private void renderElement(PoseStack matrixStack, int mouseX, int mouseY, int x, int y, ICraftingPreviewElement element) { element.draw(matrixStack, x, y + 5, drawers); if (RenderUtils.inBounds(x + 5, y + 7, 16, 16, mouseX, mouseY)) { @@ -160,7 +158,7 @@ public class CraftingPreviewScreen extends BaseScreen { } } - private void renderError(MatrixStack matrixStack, int x, int y, float scale, ErrorCraftingPreviewElement errorElement) { + private void renderError(PoseStack matrixStack, int x, int y, float scale, ErrorCraftingPreviewElement errorElement) { matrixStack.pushPose(); matrixStack.scale(scale, scale, 1); @@ -180,12 +178,12 @@ public class CraftingPreviewScreen extends BaseScreen { matrixStack.popPose(); } - private void renderTooComplexError(MatrixStack matrixStack, int x, int y, float scale) { + private void renderTooComplexError(PoseStack matrixStack, int x, int y, float scale) { renderString(matrixStack, RenderUtils.getOffsetOnScale(x + 5, scale), RenderUtils.getOffsetOnScale(y + 21, scale), I18n.get("gui.refinedstorage.crafting_preview.error.too_complex.0")); renderString(matrixStack, RenderUtils.getOffsetOnScale(x + 5, scale), RenderUtils.getOffsetOnScale(y + 31, scale), I18n.get("gui.refinedstorage.crafting_preview.error.too_complex.1")); } - private void renderRecursiveError(MatrixStack matrixStack, int x, int y, float scale, ItemStack recursedPattern) { + private void renderRecursiveError(PoseStack matrixStack, int x, int y, float scale, ItemStack recursedPattern) { renderString(matrixStack, RenderUtils.getOffsetOnScale(x + 5, scale), RenderUtils.getOffsetOnScale(y + 21, scale), I18n.get("gui.refinedstorage.crafting_preview.error.recursive.0")); renderString(matrixStack, RenderUtils.getOffsetOnScale(x + 5, scale), RenderUtils.getOffsetOnScale(y + 31, scale), I18n.get("gui.refinedstorage.crafting_preview.error.recursive.1")); renderString(matrixStack, RenderUtils.getOffsetOnScale(x + 5, scale), RenderUtils.getOffsetOnScale(y + 41, scale), I18n.get("gui.refinedstorage.crafting_preview.error.recursive.2")); @@ -200,10 +198,9 @@ public class CraftingPreviewScreen extends BaseScreen { if (output != null) { renderString(matrixStack, RenderUtils.getOffsetOnScale(x + 25, scale), RenderUtils.getOffsetOnScale(yy + 6, scale), output.getHoverName().getString()); - RenderHelper.setupFor3DItems(); + Lighting.setupFor3DItems(); RenderSystem.enableDepthTest(); renderItem(matrixStack, x + 5, yy, output); - RenderHelper.turnOff(); yy += 17; } @@ -211,7 +208,7 @@ public class CraftingPreviewScreen extends BaseScreen { } @Override - public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { + public void render(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks) { super.render(matrixStack, mouseX, mouseY, partialTicks); if (hoveringStack != null) { @@ -222,7 +219,7 @@ public class CraftingPreviewScreen extends BaseScreen { mouseY, hoveringStack.getTooltipLines( Minecraft.getInstance().player, - Minecraft.getInstance().options.advancedItemTooltips ? ITooltipFlag.TooltipFlags.ADVANCED : ITooltipFlag.TooltipFlags.NORMAL + Minecraft.getInstance().options.advancedItemTooltips ? TooltipFlag.Default.ADVANCED : TooltipFlag.Default.NORMAL ) ); } else if (hoveringFluid != null) { diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/CraftingSettingsScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/CraftingSettingsScreen.java index a09d0ccd2..49a2616c4 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/CraftingSettingsScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/CraftingSettingsScreen.java @@ -7,23 +7,23 @@ import com.refinedmods.refinedstorage.screen.AmountSpecifyingScreen; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.screen.grid.stack.FluidGridStack; import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.entity.player.Player; import net.minecraftforge.fluids.FluidAttributes; public class CraftingSettingsScreen extends AmountSpecifyingScreen { private final IGridStack stack; - public CraftingSettingsScreen(BaseScreen parent, PlayerEntity player, IGridStack stack) { - super(parent, new CraftingSettingsContainer(player, stack), 172, 99, player.inventory, new TranslationTextComponent("container.crafting")); + public CraftingSettingsScreen(BaseScreen parent, Player player, IGridStack stack) { + super(parent, new CraftingSettingsContainer(player, stack), 172, 99, player.getInventory(), new TranslatableComponent("container.crafting")); this.stack = stack; } @Override - protected ITextComponent getOkButtonText() { - return new TranslationTextComponent("misc.refinedstorage.start"); + protected Component getOkButtonText() { + return new TranslatableComponent("misc.refinedstorage.start"); } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/GridScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/GridScreen.java index 91f27b316..96be104c9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/GridScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/GridScreen.java @@ -1,8 +1,9 @@ package com.refinedmods.refinedstorage.screen.grid; import com.google.common.collect.Lists; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.platform.Lighting; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.RSKeyBindings; import com.refinedmods.refinedstorage.api.network.grid.GridType; @@ -32,14 +33,13 @@ import com.refinedmods.refinedstorage.tile.grid.portable.IPortableGrid; import com.refinedmods.refinedstorage.tile.grid.portable.PortableGridTile; import com.refinedmods.refinedstorage.util.RenderUtils; import com.refinedmods.refinedstorage.util.TimeUtils; -import net.minecraft.client.audio.SimpleSound; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.SoundEvents; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.client.resources.sounds.SimpleSoundInstance; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.ItemStack; import org.lwjgl.glfw.GLFW; import yalter.mousetweaks.api.MouseTweaksDisableWheelTweak; @@ -49,31 +49,24 @@ import java.util.List; @MouseTweaksDisableWheelTweak public class GridScreen extends BaseScreen implements IScreenInfoProvider { private static String searchQuery = ""; - + private final IGrid grid; + private final TabListWidget tabs; + private final int patternScrollOffsetAbsoluteMax = GridNetworkNode.PROCESSING_MATRIX_SIZE / 3 - 3; private IGridView view; - private SearchWidget searchField; private CheckboxWidget exactPattern; private CheckboxWidget processingPattern; private CheckboxWidget fluidCheckBox; - private ScrollbarWidget scrollbar; private ScrollbarWidget patternScrollbar; - - private final IGrid grid; - private final TabListWidget tabs; - private boolean wasConnected; private boolean doSort; - - private final int patternScrollOffsetAbsoluteMax = GridNetworkNode.PROCESSING_MATRIX_SIZE / 3 - 3; - private int slotNumber; private int patternScrollOffset; private int patternScrollOffsetMax; private boolean updatePatternOffset; - public GridScreen(GridContainer container, IGrid grid, PlayerInventory inventory, ITextComponent title) { + public GridScreen(GridContainer container, IGrid grid, Inventory inventory, Component title) { super(container, 227, 0, inventory, title); this.grid = grid; @@ -99,6 +92,21 @@ public class GridScreen extends BaseScreen implements IScreenInfo } } + public static List getSorters() { + List sorters = new LinkedList<>(); + sorters.add(getDefaultSorter()); + sorters.add(new QuantityGridSorter()); + sorters.add(new IdGridSorter()); + sorters.add(new LastModifiedGridSorter()); + sorters.add(new InventoryTweaksGridSorter()); + + return sorters; + } + + public static IGridSorter getDefaultSorter() { + return new NameGridSorter(); + } + @Override protected void onPreInit() { super.onPreInit(); @@ -137,7 +145,7 @@ public class GridScreen extends BaseScreen implements IScreenInfo searchField.y = sy; } - addButton(searchField); + addRenderableWidget(searchField); if (grid.getViewType() != -1) { addSideButton(new GridViewTypeSideButton(this, grid)); @@ -160,7 +168,7 @@ public class GridScreen extends BaseScreen implements IScreenInfo menu.updatePatternSlotPositions(newOffset); }); - processingPattern = addCheckBox(x + 7, y + getTopHeight() + (getVisibleRows() * 18) + 60, new TranslationTextComponent("misc.refinedstorage.processing"), GridTile.PROCESSING_PATTERN.getValue(), btn -> { + processingPattern = addCheckBox(x + 7, y + getTopHeight() + (getVisibleRows() * 18) + 60, new TranslatableComponent("misc.refinedstorage.processing"), GridTile.PROCESSING_PATTERN.getValue(), btn -> { // Rebuild the inventory slots before the slot change packet arrives. GridTile.PROCESSING_PATTERN.setValue(false, processingPattern.selected()); ((GridNetworkNode) grid).clearMatrix(); // The server does this but let's do it earlier so the client doesn't notice. @@ -174,7 +182,7 @@ public class GridScreen extends BaseScreen implements IScreenInfo exactPattern = addCheckBox( processingPattern.x + processingPattern.getWidth() + 5, y + getTopHeight() + (getVisibleRows() * 18) + 60, - new TranslationTextComponent("misc.refinedstorage.exact"), + new TranslatableComponent("misc.refinedstorage.exact"), GridTile.EXACT_PATTERN.getValue(), btn -> TileDataManager.setParameter(GridTile.EXACT_PATTERN, exactPattern.selected()) ); @@ -182,7 +190,7 @@ public class GridScreen extends BaseScreen implements IScreenInfo } else { patternScrollbar.setEnabled(true); - fluidCheckBox = addCheckBox(processingPattern.x + processingPattern.getWidth() + 5, y + getTopHeight() + (getVisibleRows() * 18) + 60, new TranslationTextComponent("misc.refinedstorage.fluidmode"), ((GridNetworkNode) grid).getType() == IType.FLUIDS, button -> { + fluidCheckBox = addCheckBox(processingPattern.x + processingPattern.getWidth() + 5, y + getTopHeight() + (getVisibleRows() * 18) + 60, new TranslatableComponent("misc.refinedstorage.fluidmode"), ((GridNetworkNode) grid).getType() == IType.FLUIDS, button -> { TileDataManager.setParameter(GridTile.PROCESSING_TYPE, GridTile.PROCESSING_TYPE.getValue() == IType.ITEMS ? IType.FLUIDS : IType.ITEMS); }); } @@ -195,14 +203,14 @@ public class GridScreen extends BaseScreen implements IScreenInfo return grid; } - public void setView(IGridView view) { - this.view = view; - } - public IGridView getView() { return view; } + public void setView(IGridView view) { + this.view = view; + } + @Override public void tick(int x, int y) { if (wasConnected != grid.isGridActive()) { @@ -325,7 +333,7 @@ public class GridScreen extends BaseScreen implements IScreenInfo } @Override - public void renderBackground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY) { + public void renderBackground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY) { tabs.drawBackground(matrixStack, x, y - tabs.getHeight()); if (grid instanceof IPortableGrid) { @@ -392,7 +400,7 @@ public class GridScreen extends BaseScreen implements IScreenInfo } @Override - public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { + public void render(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks) { super.render(matrixStack, mouseX, mouseY, partialTicks); // Drawn in here for bug #1844 (https://github.com/refinedmods/refinedstorage/issues/1844) @@ -403,7 +411,7 @@ public class GridScreen extends BaseScreen implements IScreenInfo } @Override - public void renderForeground(MatrixStack matrixStack, int mouseX, int mouseY) { + public void renderForeground(PoseStack matrixStack, int mouseX, int mouseY) { renderString(matrixStack, 7, 7, title.getString()); renderString(matrixStack, 7, getYPlayerInventory() - 12, I18n.get("container.inventory")); @@ -414,7 +422,7 @@ public class GridScreen extends BaseScreen implements IScreenInfo int slot = scrollbar != null ? (scrollbar.getOffset() * 9) : 0; - RenderHelper.setupFor3DItems(); + Lighting.setupFor3DItems(); for (int i = 0; i < 9 * getVisibleRows(); ++i) { if (RenderUtils.inBounds(x, y, 16, 16, mouseX, mouseY) || !grid.isGridActive()) { @@ -429,7 +437,7 @@ public class GridScreen extends BaseScreen implements IScreenInfo int color = grid.isGridActive() ? -2130706433 : 0xFF5B5B5B; matrixStack.pushPose(); - RenderSystem.disableLighting(); + // TODO RenderSystem.disableLighting(); RenderSystem.disableDepthTest(); RenderSystem.colorMask(true, true, true, false); fillGradient(matrixStack, x, y, x + 16, y + 16, color, color); @@ -458,8 +466,8 @@ public class GridScreen extends BaseScreen implements IScreenInfo tabs.drawTooltip(matrixStack, font, mouseX, mouseY); } - private void drawGridTooltip(MatrixStack matrixStack, IGridStack gridStack, int mouseX, int mouseY) { - List textLines = gridStack.getTooltip(true); + private void drawGridTooltip(PoseStack matrixStack, IGridStack gridStack, int mouseX, int mouseY) { + List textLines = gridStack.getTooltip(true); List smallTextLines = Lists.newArrayList(); if (!gridStack.isCraftable()) { @@ -495,19 +503,19 @@ public class GridScreen extends BaseScreen implements IScreenInfo boolean clickedCreatePattern = clickedButton == 0 && isOverCreatePattern(mouseX - leftPos, mouseY - topPos); if (clickedCreatePattern) { - minecraft.getSoundManager().play(SimpleSound.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); + minecraft.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); RS.NETWORK_HANDLER.sendToServer(new GridPatternCreateMessage(((GridNetworkNode) grid).getPos())); return true; } else if (clickedClear) { - minecraft.getSoundManager().play(SimpleSound.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); + minecraft.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); RS.NETWORK_HANDLER.sendToServer(new GridClearMessage()); return true; } else if (grid.isGridActive()) { - ItemStack held = menu.getPlayer().inventory.getCarried(); + ItemStack held = menu.getCarried(); if (isOverSlotArea(mouseX - leftPos, mouseY - topPos) && !held.isEmpty() && (clickedButton == 0 || clickedButton == 1)) { if (grid.getGridType() == GridType.FLUID) { @@ -710,19 +718,4 @@ public class GridScreen extends BaseScreen implements IScreenInfo public boolean canSort() { return doSort || (!hasShiftDown() && !hasControlDown()); } - - public static List getSorters() { - List sorters = new LinkedList<>(); - sorters.add(getDefaultSorter()); - sorters.add(new QuantityGridSorter()); - sorters.add(new IdGridSorter()); - sorters.add(new LastModifiedGridSorter()); - sorters.add(new InventoryTweaksGridSorter()); - - return sorters; - } - - public static IGridSorter getDefaultSorter() { - return new NameGridSorter(); - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/AndGridFilter.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/AndGridFilter.java index ed1d376ba..94cf163a0 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/AndGridFilter.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/AndGridFilter.java @@ -12,6 +12,16 @@ public class AndGridFilter implements Predicate { this.andPartFilters = andPartFilters; } + public static Predicate of(List> filters) { + if (filters.isEmpty()) { + return t -> true; + } + if (filters.size() == 1) { + return filters.get(0); + } + return new AndGridFilter(filters); + } + @Override public boolean test(IGridStack gridStack) { for (Predicate part : andPartFilters) { @@ -22,14 +32,4 @@ public class AndGridFilter implements Predicate { return true; } - - public static Predicate of(List> filters) { - if (filters.isEmpty()) { - return t -> true; - } - if (filters.size() == 1) { - return filters.get(0); - } - return new AndGridFilter(filters); - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/FilterGridFilter.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/FilterGridFilter.java index c4e863a74..1bd45dd64 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/FilterGridFilter.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/FilterGridFilter.java @@ -5,8 +5,8 @@ import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.screen.grid.stack.FluidGridStack; import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; import com.refinedmods.refinedstorage.screen.grid.stack.ItemGridStack; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import java.util.List; diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/OrGridFilter.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/OrGridFilter.java index a5a503560..299c827b0 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/OrGridFilter.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/OrGridFilter.java @@ -12,6 +12,16 @@ public class OrGridFilter implements Predicate { this.orPartFilters = orPartFilters; } + public static Predicate of(List> filters) { + if (filters.isEmpty()) { + return t -> false; + } + if (filters.size() == 1) { + return filters.get(0); + } + return new OrGridFilter(filters); + } + @Override public boolean test(IGridStack gridStack) { for (Predicate part : orPartFilters) { @@ -22,14 +32,4 @@ public class OrGridFilter implements Predicate { return false; } - - public static Predicate of(List> filters) { - if (filters.isEmpty()) { - return t -> false; - } - if (filters.size() == 1) { - return filters.get(0); - } - return new OrGridFilter(filters); - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/TooltipGridFilter.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/TooltipGridFilter.java index 2ccb55b4b..e1a62369c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/TooltipGridFilter.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/TooltipGridFilter.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.screen.grid.filtering; import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.network.chat.Component; import java.util.List; import java.util.function.Predicate; @@ -15,7 +15,7 @@ public class TooltipGridFilter implements Predicate { @Override public boolean test(IGridStack stack) { - List stackTooltip = stack.getTooltip(false); + List stackTooltip = stack.getTooltip(false); for (int i = 1; i < stackTooltip.size(); ++i) { if (stackTooltip.get(i).getString().toLowerCase().contains(tooltip.toLowerCase())) { diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/sorting/IdGridSorter.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/sorting/IdGridSorter.java index 8ccc081f8..4cc615b67 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/sorting/IdGridSorter.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/sorting/IdGridSorter.java @@ -2,9 +2,9 @@ package com.refinedmods.refinedstorage.screen.grid.sorting; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.screen.grid.stack.IGridStack; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.registry.Registry; +import net.minecraft.core.Registry; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; public class IdGridSorter implements IGridSorter { diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/FluidGridStack.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/FluidGridStack.java index 77a7230fb..aaaf2a74d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/FluidGridStack.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/FluidGridStack.java @@ -1,16 +1,16 @@ package com.refinedmods.refinedstorage.screen.grid.stack; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.storage.tracker.StorageTrackerEntry; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.render.FluidRenderer; import com.refinedmods.refinedstorage.render.RenderSettings; import com.refinedmods.refinedstorage.screen.BaseScreen; -import net.minecraft.client.resources.I18n; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.FluidTags; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.fluids.FluidStack; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -23,17 +23,17 @@ public class FluidGridStack implements IGridStack { private final Logger logger = LogManager.getLogger(getClass()); private final UUID id; + private final FluidStack stack; + private final boolean craftable; @Nullable private UUID otherId; - private final FluidStack stack; @Nullable private StorageTrackerEntry entry; - private final boolean craftable; private boolean zeroed; private Set cachedTags; private String cachedName; - private List cachedTooltip; + private List cachedTooltip; private String cachedModId; private String cachedModName; @@ -131,15 +131,15 @@ public class FluidGridStack implements IGridStack { } @Override - public List getTooltip(boolean bypassCache) { + public List getTooltip(boolean bypassCache) { if (bypassCache || cachedTooltip == null) { - List tooltip; + List tooltip; try { tooltip = Arrays.asList(stack.getDisplayName()); } catch (Throwable t) { logger.warn("Could not retrieve fluid tooltip of {}", stack.getFluid().getRegistryName()); - tooltip = Arrays.asList(new StringTextComponent(ERROR_PLACEHOLDER)); + tooltip = Arrays.asList(new TextComponent(ERROR_PLACEHOLDER)); } if (bypassCache) { @@ -177,7 +177,7 @@ public class FluidGridStack implements IGridStack { } @Override - public void draw(MatrixStack matrixStack, BaseScreen screen, int x, int y) { + public void draw(PoseStack matrixStack, BaseScreen screen, int x, int y) { FluidRenderer.INSTANCE.render(matrixStack, x, y, stack); String text; diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/IGridStack.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/IGridStack.java index d5905e039..75b177ee1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/IGridStack.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/IGridStack.java @@ -1,9 +1,9 @@ package com.refinedmods.refinedstorage.screen.grid.stack; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.storage.tracker.StorageTrackerEntry; import com.refinedmods.refinedstorage.screen.BaseScreen; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.network.chat.Component; import javax.annotation.Nullable; import java.util.List; @@ -26,7 +26,7 @@ public interface IGridStack { Set getTags(); - List getTooltip(boolean bypassCache); + List getTooltip(boolean bypassCache); int getQuantity(); @@ -34,7 +34,7 @@ public interface IGridStack { String getFormattedFullQuantity(); - void draw(MatrixStack matrixStack, BaseScreen screen, int x, int y); + void draw(PoseStack matrixStack, BaseScreen screen, int x, int y); Object getIngredient(); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/ItemGridStack.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/ItemGridStack.java index eb6b59dd7..87ed2bb63 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/ItemGridStack.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/ItemGridStack.java @@ -1,17 +1,17 @@ package com.refinedmods.refinedstorage.screen.grid.stack; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.storage.tracker.StorageTrackerEntry; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.render.RenderSettings; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.resources.I18n; -import net.minecraft.item.ItemStack; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fml.ModContainer; import net.minecraftforge.fml.ModList; import org.apache.logging.log4j.LogManager; @@ -24,11 +24,10 @@ public class ItemGridStack implements IGridStack { private static final String ERROR_PLACEHOLDER = ""; private final Logger logger = LogManager.getLogger(getClass()); - + private final ItemStack stack; private UUID id; @Nullable private UUID otherId; - private final ItemStack stack; private boolean craftable; @Nullable private StorageTrackerEntry entry; @@ -38,7 +37,7 @@ public class ItemGridStack implements IGridStack { private String cachedName; private String cachedModId; private String cachedModName; - private List cachedTooltip; + private List cachedTooltip; public ItemGridStack(ItemStack stack) { this.stack = stack; @@ -52,10 +51,6 @@ public class ItemGridStack implements IGridStack { this.entry = entry; } - public void setZeroed(boolean zeroed) { - this.zeroed = zeroed; - } - @Nullable static String getModNameByModId(String modId) { Optional modContainer = ModList.get().getModContainerById(modId); @@ -63,6 +58,10 @@ public class ItemGridStack implements IGridStack { return modContainer.map(container -> container.getModInfo().getDisplayName()).orElse(null); } + public void setZeroed(boolean zeroed) { + this.zeroed = zeroed; + } + public ItemStack getStack() { return stack; } @@ -145,16 +144,16 @@ public class ItemGridStack implements IGridStack { } @Override - public List getTooltip(boolean bypassCache) { + public List getTooltip(boolean bypassCache) { if (bypassCache || cachedTooltip == null) { - List tooltip; + List tooltip; try { tooltip = RenderUtils.getTooltipFromItem(stack); } catch (Throwable t) { logger.warn("Could not retrieve item tooltip of {}", stack.getItem().getRegistryName()); tooltip = new ArrayList<>(); - tooltip.add(new StringTextComponent(ERROR_PLACEHOLDER)); + tooltip.add(new TextComponent(ERROR_PLACEHOLDER)); } if (bypassCache) { @@ -192,7 +191,7 @@ public class ItemGridStack implements IGridStack { } @Override - public void draw(MatrixStack matrixStack, BaseScreen screen, int x, int y) { + public void draw(PoseStack matrixStack, BaseScreen screen, int x, int y) { String text = null; int color = RenderSettings.INSTANCE.getSecondaryColor(); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/view/GridViewImpl.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/view/GridViewImpl.java index f4a14db7a..96f6a470a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/view/GridViewImpl.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/view/GridViewImpl.java @@ -14,15 +14,13 @@ import java.util.stream.Collectors; import java.util.stream.Stream; public class GridViewImpl implements IGridView { + protected final Map map = new HashMap<>(); private final GridScreen screen; - private boolean canCraft; - private boolean active = false; - private final IGridSorter defaultSorter; private final List sorters; - + private boolean canCraft; + private boolean active = false; private List stacks = new ArrayList<>(); - protected final Map map = new HashMap<>(); public GridViewImpl(GridScreen screen, IGridSorter defaultSorter, List sorters) { this.screen = screen; @@ -35,6 +33,15 @@ public class GridViewImpl implements IGridView { return stacks; } + @Override + public void setStacks(List stacks) { + map.clear(); + + for (IGridStack stack : stacks) { + map.put(stack.getId(), stack); + } + } + @Override public Collection getAllStacks() { return map.values(); @@ -54,9 +61,9 @@ public class GridViewImpl implements IGridView { if (screen.getGrid().isGridActive()) { this.stacks = map.values().stream() - .filter(getActiveFilters()) - .sorted(getActiveSort()) - .collect(Collectors.toCollection(ArrayList::new)); + .filter(getActiveFilters()) + .sorted(getActiveSort()) + .collect(Collectors.toCollection(ArrayList::new)); this.active = true; } else { this.stacks = new ArrayList<>(); @@ -70,18 +77,18 @@ public class GridViewImpl implements IGridView { IGrid grid = screen.getGrid(); SortingDirection sortingDirection = grid.getSortingDirection() == IGrid.SORTING_DIRECTION_DESCENDING ? SortingDirection.DESCENDING : SortingDirection.ASCENDING; return Stream.concat(Stream.of(defaultSorter), sorters.stream().filter(s -> s.isApplicable(grid))) - .map(sorter -> (Comparator) (o1, o2) -> sorter.compare(o1, o2, sortingDirection)) - .reduce((l, r) -> r.thenComparing(l)) - .orElseThrow(IllegalStateException::new); // There is at least 1 value in the stream (i.e. defaultSorter) + .map(sorter -> (Comparator) (o1, o2) -> sorter.compare(o1, o2, sortingDirection)) + .reduce((l, r) -> r.thenComparing(l)) + .orElseThrow(IllegalStateException::new); // There is at least 1 value in the stream (i.e. defaultSorter) } private Predicate getActiveFilters() { IGrid grid = screen.getGrid(); Predicate filters = GridFilterParser.getFilters( - grid, - screen.getSearchFieldText(), - (grid.getTabSelected() >= 0 && grid.getTabSelected() < grid.getTabs().size()) ? grid.getTabs().get(grid.getTabSelected()).getFilters() : grid.getFilters() + grid, + screen.getSearchFieldText(), + (grid.getTabSelected() >= 0 && grid.getTabSelected() < grid.getTabs().size()) ? grid.getTabs().get(grid.getTabSelected()).getFilters() : grid.getFilters() ); if (screen.getGrid().getViewType() != IGrid.VIEW_TYPE_CRAFTABLES) { @@ -91,8 +98,8 @@ public class GridViewImpl implements IGridView { // and we aren't in "view only craftables" mode, // we don't want the duplicate stacks and we will remove this stack. if (stack.isCraftable() && - stack.getOtherId() != null && - map.containsKey(stack.getOtherId())) { + stack.getOtherId() != null && + map.containsKey(stack.getOtherId())) { return false; } @@ -103,15 +110,6 @@ public class GridViewImpl implements IGridView { } } - @Override - public void setStacks(List stacks) { - map.clear(); - - for (IGridStack stack : stacks) { - map.put(stack.getId(), stack); - } - } - @Override public void postChange(IGridStack stack, int delta) { if (!this.active) { @@ -131,8 +129,8 @@ public class GridViewImpl implements IGridView { // This means that on the second delta packet it would still crash because the map wouldn't be empty anymore. IGridStack craftingStack; if (!stack.isCraftable() && - stack.getOtherId() != null && - map.containsKey(stack.getOtherId())) { + stack.getOtherId() != null && + map.containsKey(stack.getOtherId())) { craftingStack = map.get(stack.getOtherId()); craftingStack.updateOtherId(stack.getId()); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/view/IGridView.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/view/IGridView.java index 535843397..866040abd 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/view/IGridView.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/view/IGridView.java @@ -10,13 +10,13 @@ import java.util.UUID; public interface IGridView { List getStacks(); + void setStacks(List stacks); + @Nullable IGridStack get(UUID id); Collection getAllStacks(); - void setStacks(List stacks); - void postChange(IGridStack stack, int delta); void setCanCraft(boolean canCraft); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/CheckboxWidget.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/CheckboxWidget.java index d3d6485c4..898b1e7d3 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/CheckboxWidget.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/CheckboxWidget.java @@ -1,24 +1,24 @@ package com.refinedmods.refinedstorage.screen.widget; -import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.widget.button.CheckboxButton; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.components.Checkbox; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; import java.util.function.Consumer; -public class CheckboxWidget extends CheckboxButton { +public class CheckboxWidget extends Checkbox { private static final ResourceLocation TEXTURE = new ResourceLocation("textures/gui/checkbox.png"); private static final int BOX_WIDTH = 13; - private final Consumer onPress; + private final Consumer onPress; private boolean shadow = true; - public CheckboxWidget(int x, int y, ITextComponent text, boolean isChecked, Consumer onPress) { + public CheckboxWidget(int x, int y, Component text, boolean isChecked, Consumer onPress) { super( x, y, @@ -47,12 +47,12 @@ public class CheckboxWidget extends CheckboxButton { } @Override - public void renderButton(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { + public void renderButton(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks) { Minecraft minecraft = Minecraft.getInstance(); - minecraft.getTextureManager().bind(TEXTURE); + RenderSystem.setShaderTexture(0, TEXTURE); RenderSystem.enableDepthTest(); - FontRenderer fontRenderer = minecraft.font; - RenderSystem.color4f(1.0F, 1.0F, 1.0F, this.alpha); + Font fontRenderer = minecraft.font; + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, this.alpha); RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/ScrollbarWidget.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/ScrollbarWidget.java index fc93d235c..62fb3d3da 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/ScrollbarWidget.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/ScrollbarWidget.java @@ -1,36 +1,32 @@ package com.refinedmods.refinedstorage.screen.widget; -import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.integration.jei.GridRecipeTransferHandler; import com.refinedmods.refinedstorage.integration.jei.JeiIntegration; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.gui.IGuiEventListener; +import net.minecraft.client.gui.components.events.GuiEventListener; import java.util.LinkedList; import java.util.List; -public class ScrollbarWidget implements IGuiEventListener { +public class ScrollbarWidget implements GuiEventListener { private static final int SCROLLER_HEIGHT = 15; private final int x; private final int y; private final int width; private final int height; + private final List listeners = new LinkedList<>(); + private final BaseScreen screen; private boolean enabled = false; - private int offset; private int maxOffset; - private boolean clicked = false; private boolean small = false; - private final List listeners = new LinkedList<>(); - - private final BaseScreen screen; - public ScrollbarWidget(BaseScreen screen, int x, int y, int width, int height) { this.screen = screen; this.x = x; @@ -56,16 +52,16 @@ public class ScrollbarWidget implements IGuiEventListener { return height; } - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } - public boolean isEnabled() { return enabled; } - public void render(MatrixStack matrixStack) { - RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public void render(PoseStack matrixStack) { + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); screen.bindTexture(RS.ID, "icons.png"); if (small) { @@ -73,7 +69,6 @@ public class ScrollbarWidget implements IGuiEventListener { } else { screen.blit(matrixStack, screen.getGuiLeft() + x, screen.getGuiTop() + y + (int) Math.min(height - SCROLLER_HEIGHT, (float) offset / (float) maxOffset * (float) (height - SCROLLER_HEIGHT)), isEnabled() ? 232 : 244, 0, 12, SCROLLER_HEIGHT); } - } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/SearchWidget.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/SearchWidget.java index 517308e60..2664a329e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/SearchWidget.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/SearchWidget.java @@ -1,28 +1,28 @@ package com.refinedmods.refinedstorage.screen.widget; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RSKeyBindings; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.integration.jei.JeiIntegration; import com.refinedmods.refinedstorage.integration.jei.RSJeiPlugin; import com.refinedmods.refinedstorage.render.RenderSettings; import com.refinedmods.refinedstorage.screen.BaseScreen; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.util.text.StringTextComponent; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.network.chat.TextComponent; import org.lwjgl.glfw.GLFW; import java.util.ArrayList; import java.util.List; -public class SearchWidget extends TextFieldWidget { +public class SearchWidget extends EditBox { private static final List HISTORY = new ArrayList<>(); private int mode; private int historyIndex = -1; - public SearchWidget(FontRenderer fontRenderer, int x, int y, int width) { - super(fontRenderer, x, y, width, fontRenderer.lineHeight, new StringTextComponent("")); + public SearchWidget(Font fontRenderer, int x, int y, int width) { + super(fontRenderer, x, y, width, fontRenderer.lineHeight, new TextComponent("")); this.setBordered(false); this.setVisible(true); @@ -41,8 +41,8 @@ public class SearchWidget extends TextFieldWidget { private boolean canSyncFromJEINow() { return (this.mode == IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY || - this.mode == IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY_AUTOSELECTED) - && JeiIntegration.isLoaded(); + this.mode == IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY_AUTOSELECTED) + && JeiIntegration.isLoaded(); } @Override @@ -173,7 +173,7 @@ public class SearchWidget extends TextFieldWidget { } @Override - public void renderButton(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { + public void renderButton(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks) { if (canSyncFromJEINow() && RSJeiPlugin.getRuntime().getIngredientListOverlay().hasKeyboardFocus()) { setTextFromJEI(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/TabListWidget.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/TabListWidget.java index 8c29c5706..be4f2e03e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/TabListWidget.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/TabListWidget.java @@ -1,44 +1,34 @@ package com.refinedmods.refinedstorage.screen.widget; -import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.api.network.grid.IGridTab; import com.refinedmods.refinedstorage.apiimpl.render.ElementDrawers; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.inventory.container.Container; -import net.minecraft.util.text.StringTextComponent; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.components.Button; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.world.inventory.AbstractContainerMenu; import java.util.LinkedList; import java.util.List; import java.util.function.Supplier; -public class TabListWidget { - public interface ITabListListener { - void onSelectionChanged(int tab); - - void onPageChanged(int page); - } - +public class TabListWidget { private final BaseScreen screen; private final ElementDrawers drawers; - private final Supplier> tabs; - private int tabHovering; private final int tabsPerPage; private final Supplier pages; private final Supplier page; private final Supplier selected; - private boolean hadTabs; - private final List listeners = new LinkedList<>(); - + private int tabHovering; + private boolean hadTabs; private Button left; private Button right; - public TabListWidget(BaseScreen screen, ElementDrawers drawers, Supplier> tabs, Supplier pages, Supplier page, Supplier selected, int tabsPerPage) { this.screen = screen; this.drawers = drawers; @@ -50,15 +40,15 @@ public class TabListWidget { } public void init(int width) { - this.left = screen.addButton(screen.getGuiLeft(), screen.getGuiTop() - 22, 20, 20, new StringTextComponent("<"), true, pages.get() > 0, btn -> listeners.forEach(t -> t.onPageChanged(page.get() - 1))); - this.right = screen.addButton(screen.getGuiLeft() + width - 22, screen.getGuiTop() - 22, 20, 20, new StringTextComponent(">"), true, pages.get() > 0, btn -> listeners.forEach(t -> t.onPageChanged(page.get() + 1))); + this.left = screen.addButton(screen.getGuiLeft(), screen.getGuiTop() - 22, 20, 20, new TextComponent("<"), true, pages.get() > 0, btn -> listeners.forEach(t -> t.onPageChanged(page.get() - 1))); + this.right = screen.addButton(screen.getGuiLeft() + width - 22, screen.getGuiTop() - 22, 20, 20, new TextComponent(">"), true, pages.get() > 0, btn -> listeners.forEach(t -> t.onPageChanged(page.get() + 1))); } public void addListener(ITabListListener listener) { listeners.add(listener); } - public void drawForeground(MatrixStack matrixStack, int x, int y, int mouseX, int mouseY, boolean visible) { + public void drawForeground(PoseStack matrixStack, int x, int y, int mouseX, int mouseY, boolean visible) { this.tabHovering = -1; if (visible) { @@ -97,7 +87,7 @@ public class TabListWidget { right.active = page.get() < pages.get(); } - public void drawBackground(MatrixStack matrixStack, int x, int y) { + public void drawBackground(PoseStack matrixStack, int x, int y) { int j = 0; for (int i = page.get() * tabsPerPage; i < (page.get() * tabsPerPage) + tabsPerPage; ++i) { if (i < tabs.get().size()) { @@ -118,7 +108,7 @@ public class TabListWidget { return 0; } - private void drawTab(MatrixStack matrixStack, IGridTab tab, boolean foregroundLayer, int x, int y, int index, int num) { + private void drawTab(PoseStack matrixStack, IGridTab tab, boolean foregroundLayer, int x, int y, int index, int num) { boolean isSelected = index == selected.get(); if ((foregroundLayer && !isSelected) || (!foregroundLayer && isSelected)) { @@ -128,8 +118,6 @@ public class TabListWidget { int tx = x + getXOffset() + ((IGridTab.TAB_WIDTH + 1) * num); int ty = y; - RenderSystem.enableAlphaTest(); - screen.bindTexture(RS.ID, "icons.png"); if (!isSelected) { @@ -159,7 +147,7 @@ public class TabListWidget { tab.drawIcon(matrixStack, otx + 6, ty + 9 - (!isSelected ? 3 : 0), drawers.getItemDrawer(), drawers.getFluidDrawer()); } - public void drawTooltip(MatrixStack matrixStack, FontRenderer fontRenderer, int mouseX, int mouseY) { + public void drawTooltip(PoseStack matrixStack, Font fontRenderer, int mouseX, int mouseY) { if (tabHovering >= 0 && tabHovering < tabs.get().size()) { tabs.get().get(tabHovering).drawTooltip(matrixStack, mouseX, mouseY, screen.width, screen.height, fontRenderer); } @@ -174,4 +162,10 @@ public class TabListWidget { return false; } + + public interface ITabListListener { + void onSelectionChanged(int tab); + + void onPageChanged(int page); + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/AccessTypeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/AccessTypeSideButton.java index 2280189ae..13e14d933 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/AccessTypeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/AccessTypeSideButton.java @@ -1,13 +1,13 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.storage.AccessType; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; import com.refinedmods.refinedstorage.util.AccessTypeUtils; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class AccessTypeSideButton extends SideButton { private final TileDataParameter parameter; @@ -19,13 +19,13 @@ public class AccessTypeSideButton extends SideButton { } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { screen.blit(matrixStack, x, y, 16 * parameter.getValue().getId(), 240, 16, 16); } @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.access_type") + "\n" + TextFormatting.GRAY + I18n.get("sidebutton.refinedstorage.access_type." + parameter.getValue().getId()); + return I18n.get("sidebutton.refinedstorage.access_type") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.access_type." + parameter.getValue().getId()); } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ConstructorDropSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ConstructorDropSideButton.java index 0e585e914..9c6a4d92f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ConstructorDropSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ConstructorDropSideButton.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.container.ConstructorContainer; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.tile.ConstructorTile; import com.refinedmods.refinedstorage.tile.data.TileDataManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class ConstructorDropSideButton extends SideButton { public ConstructorDropSideButton(BaseScreen screen) { @@ -14,13 +14,13 @@ public class ConstructorDropSideButton extends SideButton { } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { screen.blit(matrixStack, x, y, 64 + (Boolean.TRUE.equals(ConstructorTile.DROP.getValue()) ? 16 : 0), 16, 16, 16); } @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.constructor.drop") + "\n" + TextFormatting.GRAY + I18n.get(Boolean.TRUE.equals(ConstructorTile.DROP.getValue()) ? "gui.yes" : "gui.no"); + return I18n.get("sidebutton.refinedstorage.constructor.drop") + "\n" + ChatFormatting.GRAY + I18n.get(Boolean.TRUE.equals(ConstructorTile.DROP.getValue()) ? "gui.yes" : "gui.no"); } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/CrafterModeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/CrafterModeSideButton.java index 13a3e98b9..2f6978c7b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/CrafterModeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/CrafterModeSideButton.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.container.CrafterContainer; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.tile.CrafterTile; import com.refinedmods.refinedstorage.tile.data.TileDataManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class CrafterModeSideButton extends SideButton { public CrafterModeSideButton(BaseScreen screen) { @@ -15,11 +15,11 @@ public class CrafterModeSideButton extends SideButton { @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.crafter_mode") + "\n" + TextFormatting.GRAY + I18n.get("sidebutton.refinedstorage.crafter_mode." + CrafterTile.MODE.getValue()); + return I18n.get("sidebutton.refinedstorage.crafter_mode") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.crafter_mode." + CrafterTile.MODE.getValue()); } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { screen.blit(matrixStack, x, y, CrafterTile.MODE.getValue() * 16, 0, 16, 16); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DestructorPickupSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DestructorPickupSideButton.java index c09d8879e..a2446927b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DestructorPickupSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DestructorPickupSideButton.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.container.DestructorContainer; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.tile.DestructorTile; import com.refinedmods.refinedstorage.tile.data.TileDataManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class DestructorPickupSideButton extends SideButton { public DestructorPickupSideButton(BaseScreen screen) { @@ -14,13 +14,13 @@ public class DestructorPickupSideButton extends SideButton { } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { screen.blit(matrixStack, x, y, 64 + (Boolean.TRUE.equals(DestructorTile.PICKUP.getValue()) ? 0 : 16), 0, 16, 16); } @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.destructor.pickup") + "\n" + TextFormatting.GRAY + I18n.get(Boolean.TRUE.equals(DestructorTile.PICKUP.getValue()) ? "gui.yes" : "gui.no"); + return I18n.get("sidebutton.refinedstorage.destructor.pickup") + "\n" + ChatFormatting.GRAY + I18n.get(Boolean.TRUE.equals(DestructorTile.PICKUP.getValue()) ? "gui.yes" : "gui.no"); } @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DetectorModeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DetectorModeSideButton.java index 1ec8439ad..bc779df98 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DetectorModeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DetectorModeSideButton.java @@ -1,13 +1,13 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.apiimpl.network.node.DetectorNetworkNode; import com.refinedmods.refinedstorage.container.DetectorContainer; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.tile.DetectorTile; import com.refinedmods.refinedstorage.tile.data.TileDataManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class DetectorModeSideButton extends SideButton { public DetectorModeSideButton(BaseScreen screen) { @@ -16,11 +16,11 @@ public class DetectorModeSideButton extends SideButton { @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.detector.mode") + "\n" + TextFormatting.GRAY + I18n.get("sidebutton.refinedstorage.detector.mode." + DetectorTile.MODE.getValue()); + return I18n.get("sidebutton.refinedstorage.detector.mode") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.detector.mode." + DetectorTile.MODE.getValue()); } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { screen.blit(matrixStack, x, y, DetectorTile.MODE.getValue() * 16, 176, 16, 16); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ExactModeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ExactModeSideButton.java index f179740bf..126e9ab90 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ExactModeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ExactModeSideButton.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class ExactModeSideButton extends SideButton { private static final int MASK = IComparer.COMPARE_NBT; @@ -21,7 +21,7 @@ public class ExactModeSideButton extends SideButton { @Override public String getTooltip() { - String tooltip = I18n.get("sidebutton.refinedstorage.exact_mode") + "\n" + TextFormatting.GRAY; + String tooltip = I18n.get("sidebutton.refinedstorage.exact_mode") + "\n" + ChatFormatting.GRAY; if ((parameter.getValue() & MASK) == MASK) { tooltip += I18n.get("sidebutton.refinedstorage.exact_mode.on"); @@ -33,7 +33,7 @@ public class ExactModeSideButton extends SideButton { } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { int ty = 16 * 12; int tx = (parameter.getValue() & MASK) == MASK ? 0 : 16; diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/FilterTypeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/FilterTypeSideButton.java index 94a157328..e9965aab8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/FilterTypeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/FilterTypeSideButton.java @@ -1,10 +1,10 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.screen.FilterScreen; import com.refinedmods.refinedstorage.tile.config.IType; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class FilterTypeSideButton extends SideButton { private final FilterScreen filterScreen; @@ -17,11 +17,11 @@ public class FilterTypeSideButton extends SideButton { @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.type") + "\n" + TextFormatting.GRAY + I18n.get("sidebutton.refinedstorage.type." + filterScreen.getType()); + return I18n.get("sidebutton.refinedstorage.type") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.type." + filterScreen.getType()); } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { filterScreen.blit(matrixStack, x, y, 16 * filterScreen.getType(), 128, 16, 16); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSizeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSizeSideButton.java index 374d6e3b2..2f0fb1c1b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSizeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSizeSideButton.java @@ -1,10 +1,10 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.screen.BaseScreen; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; import java.util.function.Consumer; import java.util.function.Supplier; @@ -21,11 +21,11 @@ public class GridSizeSideButton extends SideButton { @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.grid.size") + "\n" + TextFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.size." + this.sizeSupplier.get()); + return I18n.get("sidebutton.refinedstorage.grid.size") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.size." + this.sizeSupplier.get()); } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { int size = this.sizeSupplier.get(); int tx = 0; diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingDirectionSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingDirectionSideButton.java index 2be06ed2d..ef09b49a7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingDirectionSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingDirectionSideButton.java @@ -1,11 +1,11 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.screen.BaseScreen; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class GridSortingDirectionSideButton extends SideButton { private final IGrid grid; @@ -18,11 +18,11 @@ public class GridSortingDirectionSideButton extends SideButton { @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.grid.sorting.direction") + "\n" + TextFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.sorting.direction." + grid.getSortingDirection()); + return I18n.get("sidebutton.refinedstorage.grid.sorting.direction") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.sorting.direction." + grid.getSortingDirection()); } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { screen.blit(matrixStack, x, y, grid.getSortingDirection() * 16, 16, 16, 16); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingTypeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingTypeSideButton.java index 7bebdff79..c3d4b00a9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingTypeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingTypeSideButton.java @@ -1,13 +1,13 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.network.grid.GridType; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.integration.inventorytweaks.InventoryTweaksIntegration; import com.refinedmods.refinedstorage.screen.BaseScreen; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class GridSortingTypeSideButton extends SideButton { private final IGrid grid; @@ -20,11 +20,11 @@ public class GridSortingTypeSideButton extends SideButton { @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.grid.sorting.type") + "\n" + TextFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.sorting.type." + grid.getSortingType()); + return I18n.get("sidebutton.refinedstorage.grid.sorting.type") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.sorting.type." + grid.getSortingType()); } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { if (grid.getSortingType() == IGrid.SORTING_TYPE_LAST_MODIFIED) { screen.blit(matrixStack, x, y, 48, 48, 16, 16); } else { diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridViewTypeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridViewTypeSideButton.java index 59be3d183..590c8b011 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridViewTypeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridViewTypeSideButton.java @@ -1,11 +1,11 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.container.GridContainer; import com.refinedmods.refinedstorage.screen.BaseScreen; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class GridViewTypeSideButton extends SideButton { private final IGrid grid; @@ -18,11 +18,11 @@ public class GridViewTypeSideButton extends SideButton { @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.grid.view_type") + "\n" + TextFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.view_type." + grid.getViewType()); + return I18n.get("sidebutton.refinedstorage.grid.view_type") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.view_type." + grid.getViewType()); } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { screen.blit(matrixStack, x, y, (grid.getViewType() - (grid.getViewType() >= 3 ? 3 : 0)) * 16, 112, 16, 16); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/IoModeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/IoModeSideButton.java index 869c48c0b..6ff5e3ece 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/IoModeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/IoModeSideButton.java @@ -1,13 +1,13 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.apiimpl.network.node.diskmanipulator.DiskManipulatorNetworkNode; import com.refinedmods.refinedstorage.container.DiskManipulatorContainer; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.tile.DiskManipulatorTile; import com.refinedmods.refinedstorage.tile.data.TileDataManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class IoModeSideButton extends SideButton { public IoModeSideButton(BaseScreen screen) { @@ -16,11 +16,11 @@ public class IoModeSideButton extends SideButton { @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.iomode") + "\n" + TextFormatting.GRAY + I18n.get("sidebutton.refinedstorage.iomode." + (DiskManipulatorTile.IO_MODE.getValue() == DiskManipulatorNetworkNode.IO_MODE_INSERT ? "insert" : "extract")); + return I18n.get("sidebutton.refinedstorage.iomode") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.iomode." + (DiskManipulatorTile.IO_MODE.getValue() == DiskManipulatorNetworkNode.IO_MODE_INSERT ? "insert" : "extract")); } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { screen.blit(matrixStack, x, y, DiskManipulatorTile.IO_MODE.getValue() == DiskManipulatorNetworkNode.IO_MODE_EXTRACT ? 0 : 16, 160, 16, 16); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/RedstoneModeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/RedstoneModeSideButton.java index 05f212e22..e77b677c7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/RedstoneModeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/RedstoneModeSideButton.java @@ -1,11 +1,11 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class RedstoneModeSideButton extends SideButton { private final TileDataParameter parameter; @@ -18,11 +18,11 @@ public class RedstoneModeSideButton extends SideButton { @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.redstone_mode") + "\n" + TextFormatting.GRAY + I18n.get("sidebutton.refinedstorage.redstone_mode." + parameter.getValue()); + return I18n.get("sidebutton.refinedstorage.redstone_mode") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.redstone_mode." + parameter.getValue()); } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { screen.blit(matrixStack, x, y, parameter.getValue() * 16, 0, 16, 16); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SearchBoxModeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SearchBoxModeSideButton.java index 72e2540a8..70c182c23 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SearchBoxModeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SearchBoxModeSideButton.java @@ -1,41 +1,41 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.integration.jei.JeiIntegration; import com.refinedmods.refinedstorage.screen.BaseScreen; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; import java.util.Arrays; import java.util.List; public abstract class SearchBoxModeSideButton extends SideButton { private static final List MODE_ROTATION = Arrays.asList( - IGrid.SEARCH_BOX_MODE_NORMAL, - IGrid.SEARCH_BOX_MODE_NORMAL_AUTOSELECTED, - IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED, - IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED, - IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY, - IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY_AUTOSELECTED, - IGrid.SEARCH_BOX_MODE_NORMAL + IGrid.SEARCH_BOX_MODE_NORMAL, + IGrid.SEARCH_BOX_MODE_NORMAL_AUTOSELECTED, + IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED, + IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED, + IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY, + IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_2WAY_AUTOSELECTED, + IGrid.SEARCH_BOX_MODE_NORMAL ); - private static int nextMode(int oldMode) { - return MODE_ROTATION.get(MODE_ROTATION.indexOf(oldMode) + 1); - } - protected SearchBoxModeSideButton(BaseScreen screen) { super(screen); } - @Override - public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.grid.search_box_mode") + "\n" + TextFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.search_box_mode." + getSearchBoxMode()); + private static int nextMode(int oldMode) { + return MODE_ROTATION.get(MODE_ROTATION.indexOf(oldMode) + 1); } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + public String getTooltip() { + return I18n.get("sidebutton.refinedstorage.grid.search_box_mode") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.search_box_mode." + getSearchBoxMode()); + } + + @Override + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { int mode = getSearchBoxMode(); screen.blit(matrixStack, x, y, IGrid.isSearchBoxModeWithAutoselection(mode) ? 16 : 0, 96, 16, 16); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SideButton.java index 822c38d25..f8f1d1e2b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SideButton.java @@ -1,16 +1,16 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.util.RenderUtils; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.util.text.StringTextComponent; +import net.minecraft.client.gui.components.Button; +import net.minecraft.network.chat.TextComponent; import org.lwjgl.opengl.GL11; public abstract class SideButton extends Button { - private static final Button.IPressable NO_ACTION = btn -> { + private static final Button.OnPress NO_ACTION = btn -> { }; private static final int WIDTH = 18; @@ -19,15 +19,15 @@ public abstract class SideButton extends Button { protected final BaseScreen screen; protected SideButton(BaseScreen screen) { - super(-1, -1, WIDTH, HEIGHT, StringTextComponent.EMPTY, NO_ACTION); + super(-1, -1, WIDTH, HEIGHT, TextComponent.EMPTY, NO_ACTION); this.screen = screen; } @Override - public void renderButton(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { - RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); - RenderSystem.enableAlphaTest(); + public void renderButton(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks) { + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); + // TODO RenderSystem.enableAlphaTest(); isHovered = RenderUtils.inBounds(x, y, width, height, mouseX, mouseY); @@ -39,7 +39,7 @@ public abstract class SideButton extends Button { if (isHovered) { RenderSystem.enableBlend(); RenderSystem.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - RenderSystem.color4f(1.0f, 1.0f, 1.0f, 0.5f); + RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 0.5f); screen.blit(matrixStack, x, y, 238, 54, WIDTH, HEIGHT); RenderSystem.disableBlend(); } @@ -49,7 +49,7 @@ public abstract class SideButton extends Button { return height; } - protected abstract void renderButtonIcon(MatrixStack matrixStack, int x, int y); + protected abstract void renderButtonIcon(PoseStack matrixStack, int x, int y); public abstract String getTooltip(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/TypeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/TypeSideButton.java index 2a3649430..e2ae6754d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/TypeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/TypeSideButton.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class TypeSideButton extends SideButton { private final TileDataParameter type; @@ -19,11 +19,11 @@ public class TypeSideButton extends SideButton { @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.type") + "\n" + TextFormatting.GRAY + I18n.get("sidebutton.refinedstorage.type." + type.getValue()); + return I18n.get("sidebutton.refinedstorage.type") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.type." + type.getValue()); } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { screen.blit(matrixStack, x, y, 16 * type.getValue(), 128, 16, 16); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/WhitelistBlacklistSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/WhitelistBlacklistSideButton.java index 576e70ebf..8d5dce36f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/WhitelistBlacklistSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/WhitelistBlacklistSideButton.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.screen.widget.sidebutton; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.ChatFormatting; +import net.minecraft.client.resources.language.I18n; public class WhitelistBlacklistSideButton extends SideButton { private final TileDataParameter parameter; @@ -19,11 +19,11 @@ public class WhitelistBlacklistSideButton extends SideButton { @Override public String getTooltip() { - return I18n.get("sidebutton.refinedstorage.mode") + "\n" + TextFormatting.GRAY + I18n.get("sidebutton.refinedstorage.mode." + (parameter.getValue() == IWhitelistBlacklist.WHITELIST ? "whitelist" : "blacklist")); + return I18n.get("sidebutton.refinedstorage.mode") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.mode." + (parameter.getValue() == IWhitelistBlacklist.WHITELIST ? "whitelist" : "blacklist")); } @Override - protected void renderButtonIcon(MatrixStack matrixStack, int x, int y) { + protected void renderButtonIcon(PoseStack matrixStack, int x, int y) { screen.blit(matrixStack, x, y, parameter.getValue() == IWhitelistBlacklist.WHITELIST ? 0 : 16, 64, 16, 16); } diff --git a/src/main/java/com/refinedmods/refinedstorage/setup/ClientSetup.java b/src/main/java/com/refinedmods/refinedstorage/setup/ClientSetup.java index e203aca1f..77144985e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/setup/ClientSetup.java +++ b/src/main/java/com/refinedmods/refinedstorage/setup/ClientSetup.java @@ -19,27 +19,26 @@ import com.refinedmods.refinedstorage.screen.factory.CrafterManagerScreenFactory import com.refinedmods.refinedstorage.screen.factory.GridScreenFactory; import com.refinedmods.refinedstorage.util.ColorMap; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.ScreenManager; -import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.screens.MenuScreens; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.RenderTypeLookup; -import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.Slot; -import net.minecraft.item.DyeColor; -import net.minecraft.item.ItemModelsProperties; -import net.minecraft.item.ItemStack; -import net.minecraft.resources.IReloadableResourceManager; -import net.minecraft.resources.IResourceManager; -import net.minecraft.util.ResourceLocation; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; +import net.minecraft.client.renderer.item.ItemProperties; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.InventoryMenu; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.client.ClientRegistry; import net.minecraftforge.client.event.ModelBakeEvent; -import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.ModelRegistryEvent; -import net.minecraftforge.client.model.ModelLoader; +import net.minecraftforge.client.event.TextureStitchEvent; +import net.minecraftforge.client.model.ForgeModelBakery; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.AddReloadListenerEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; @@ -106,7 +105,7 @@ public class ClientSetup { bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "cable"), (base, registry) -> new BakedModelCableCover(base)); bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "exporter"), (base, registry) -> new BakedModelCableCover(base)); bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "importer"), (base, registry) -> new BakedModelCableCover(base)); - bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "constructor"), (base, registry) -> new BakedModelCableCover(new FullbrightBakedModel(base, true, new ResourceLocation(RS.ID, "block/constructor/cutouts/connected")))); + bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "constructor"), (base, registry) -> new BakedModelCableCover(new FullbrightBakedModel(base, true, new ResourceLocation(RS.ID, "block/constructor/cutouts/connected")))); bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "destructor"), (base, registry) -> new BakedModelCableCover(new FullbrightBakedModel(base, true, new ResourceLocation(RS.ID, "block/destructor/cutouts/connected")))); bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "external_storage"), (base, registry) -> new BakedModelCableCover(base)); bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "cover"), (base, registry) -> new BakedModelCover(ItemStack.EMPTY, CoverType.NORMAL)); @@ -160,7 +159,7 @@ public class ClientSetup { API.instance().addPatternRenderHandler(pattern -> Screen.hasShiftDown()); API.instance().addPatternRenderHandler(pattern -> { - Container container = Minecraft.getInstance().player.containerMenu; + AbstractContainerMenu container = Minecraft.getInstance().player.containerMenu; if (container instanceof CrafterManagerContainer) { for (Slot slot : container.slots) { @@ -174,7 +173,7 @@ public class ClientSetup { }); API.instance().addPatternRenderHandler(pattern -> { - Container container = Minecraft.getInstance().player.containerMenu; + AbstractContainerMenu container = Minecraft.getInstance().player.containerMenu; if (container instanceof CrafterContainer) { for (int i = 0; i < 9; ++i) { @@ -207,30 +206,30 @@ public class ClientSetup { public void onClientSetup(FMLClientSetupEvent e) { MinecraftForge.EVENT_BUS.register(new KeyInputListener()); - ScreenManager.register(RSContainers.FILTER, FilterScreen::new); - ScreenManager.register(RSContainers.CONTROLLER, ControllerScreen::new); - ScreenManager.register(RSContainers.DISK_DRIVE, DiskDriveScreen::new); - ScreenManager.register(RSContainers.GRID, new GridScreenFactory()); - ScreenManager.register(RSContainers.STORAGE_BLOCK, StorageBlockScreen::new); - ScreenManager.register(RSContainers.FLUID_STORAGE_BLOCK, FluidStorageBlockScreen::new); - ScreenManager.register(RSContainers.EXTERNAL_STORAGE, ExternalStorageScreen::new); - ScreenManager.register(RSContainers.IMPORTER, ImporterScreen::new); - ScreenManager.register(RSContainers.EXPORTER, ExporterScreen::new); - ScreenManager.register(RSContainers.NETWORK_TRANSMITTER, NetworkTransmitterScreen::new); - ScreenManager.register(RSContainers.RELAY, RelayScreen::new); - ScreenManager.register(RSContainers.DETECTOR, DetectorScreen::new); - ScreenManager.register(RSContainers.SECURITY_MANAGER, SecurityManagerScreen::new); - ScreenManager.register(RSContainers.INTERFACE, InterfaceScreen::new); - ScreenManager.register(RSContainers.FLUID_INTERFACE, FluidInterfaceScreen::new); - ScreenManager.register(RSContainers.WIRELESS_TRANSMITTER, WirelessTransmitterScreen::new); - ScreenManager.register(RSContainers.STORAGE_MONITOR, StorageMonitorScreen::new); - ScreenManager.register(RSContainers.CONSTRUCTOR, ConstructorScreen::new); - ScreenManager.register(RSContainers.DESTRUCTOR, DestructorScreen::new); - ScreenManager.register(RSContainers.DISK_MANIPULATOR, DiskManipulatorScreen::new); - ScreenManager.register(RSContainers.CRAFTER, CrafterScreen::new); - ScreenManager.register(RSContainers.CRAFTER_MANAGER, new CrafterManagerScreenFactory()); - ScreenManager.register(RSContainers.CRAFTING_MONITOR, CraftingMonitorScreen::new); - ScreenManager.register(RSContainers.WIRELESS_CRAFTING_MONITOR, CraftingMonitorScreen::new); + MenuScreens.register(RSContainers.FILTER, FilterScreen::new); + MenuScreens.register(RSContainers.CONTROLLER, ControllerScreen::new); + MenuScreens.register(RSContainers.DISK_DRIVE, DiskDriveScreen::new); + MenuScreens.register(RSContainers.GRID, new GridScreenFactory()); + MenuScreens.register(RSContainers.STORAGE_BLOCK, StorageBlockScreen::new); + MenuScreens.register(RSContainers.FLUID_STORAGE_BLOCK, FluidStorageBlockScreen::new); + MenuScreens.register(RSContainers.EXTERNAL_STORAGE, ExternalStorageScreen::new); + MenuScreens.register(RSContainers.IMPORTER, ImporterScreen::new); + MenuScreens.register(RSContainers.EXPORTER, ExporterScreen::new); + MenuScreens.register(RSContainers.NETWORK_TRANSMITTER, NetworkTransmitterScreen::new); + MenuScreens.register(RSContainers.RELAY, RelayScreen::new); + MenuScreens.register(RSContainers.DETECTOR, DetectorScreen::new); + MenuScreens.register(RSContainers.SECURITY_MANAGER, SecurityManagerScreen::new); + MenuScreens.register(RSContainers.INTERFACE, InterfaceScreen::new); + MenuScreens.register(RSContainers.FLUID_INTERFACE, FluidInterfaceScreen::new); + MenuScreens.register(RSContainers.WIRELESS_TRANSMITTER, WirelessTransmitterScreen::new); + MenuScreens.register(RSContainers.STORAGE_MONITOR, StorageMonitorScreen::new); + MenuScreens.register(RSContainers.CONSTRUCTOR, ConstructorScreen::new); + MenuScreens.register(RSContainers.DESTRUCTOR, DestructorScreen::new); + MenuScreens.register(RSContainers.DISK_MANIPULATOR, DiskManipulatorScreen::new); + MenuScreens.register(RSContainers.CRAFTER, CrafterScreen::new); + MenuScreens.register(RSContainers.CRAFTER_MANAGER, new CrafterManagerScreenFactory()); + MenuScreens.register(RSContainers.CRAFTING_MONITOR, CraftingMonitorScreen::new); + MenuScreens.register(RSContainers.WIRELESS_CRAFTING_MONITOR, CraftingMonitorScreen::new); ClientRegistry.registerKeyBinding(RSKeyBindings.FOCUS_SEARCH_BAR); ClientRegistry.registerKeyBinding(RSKeyBindings.CLEAR_GRID_CRAFTING_MATRIX); @@ -239,72 +238,72 @@ public class ClientSetup { ClientRegistry.registerKeyBinding(RSKeyBindings.OPEN_WIRELESS_CRAFTING_MONITOR); ClientRegistry.registerKeyBinding(RSKeyBindings.OPEN_PORTABLE_GRID); - RSBlocks.CONTROLLER.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.CREATIVE_CONTROLLER.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.CRAFTER.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.CRAFTER_MANAGER.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.CRAFTING_MONITOR.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.DETECTOR.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.DISK_MANIPULATOR.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.GRID.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.CRAFTING_GRID.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.PATTERN_GRID.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.FLUID_GRID.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.NETWORK_RECEIVER.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.NETWORK_TRANSMITTER.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.RELAY.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.SECURITY_MANAGER.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RSBlocks.WIRELESS_TRANSMITTER.values().forEach(block -> RenderTypeLookup.setRenderLayer(block.get(), RenderType.cutout())); - RenderTypeLookup.setRenderLayer(RSBlocks.CABLE.get(), RenderType.cutout()); - RenderTypeLookup.setRenderLayer(RSBlocks.IMPORTER.get(), RenderType.cutout()); - RenderTypeLookup.setRenderLayer(RSBlocks.EXPORTER.get(), RenderType.cutout()); - RenderTypeLookup.setRenderLayer(RSBlocks.EXTERNAL_STORAGE.get(), RenderType.cutout()); - RenderTypeLookup.setRenderLayer(RSBlocks.CONSTRUCTOR.get(), RenderType.cutout()); - RenderTypeLookup.setRenderLayer(RSBlocks.DESTRUCTOR.get(), RenderType.cutout()); + RSBlocks.CONTROLLER.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.CREATIVE_CONTROLLER.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.CRAFTER.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.CRAFTER_MANAGER.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.CRAFTING_MONITOR.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.DETECTOR.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.DISK_MANIPULATOR.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.GRID.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.CRAFTING_GRID.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.PATTERN_GRID.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.FLUID_GRID.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.NETWORK_RECEIVER.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.NETWORK_TRANSMITTER.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.RELAY.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.SECURITY_MANAGER.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + RSBlocks.WIRELESS_TRANSMITTER.values().forEach(block -> ItemBlockRenderTypes.setRenderLayer(block.get(), RenderType.cutout())); + ItemBlockRenderTypes.setRenderLayer(RSBlocks.CABLE.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(RSBlocks.IMPORTER.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(RSBlocks.EXPORTER.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(RSBlocks.EXTERNAL_STORAGE.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(RSBlocks.CONSTRUCTOR.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(RSBlocks.DESTRUCTOR.get(), RenderType.cutout()); - ClientRegistry.bindTileEntityRenderer(RSTiles.STORAGE_MONITOR, StorageMonitorTileRenderer::new); + BlockEntityRenderers.register(RSTiles.STORAGE_MONITOR, ctx -> new StorageMonitorTileRenderer()); - e.getMinecraftSupplier().get().getItemColors().register(new PatternItemColor(), RSItems.PATTERN.get()); + Minecraft.getInstance().getItemColors().register(new PatternItemColor(), RSItems.PATTERN.get()); - ItemModelsProperties.register(RSItems.SECURITY_CARD.get(), new ResourceLocation("active"), new SecurityCardItemPropertyGetter()); + ItemProperties.register(RSItems.SECURITY_CARD.get(), new ResourceLocation("active"), new SecurityCardItemPropertyGetter()); - RSItems.CONTROLLER.values().forEach(controller -> ItemModelsProperties.register(controller.get(), new ResourceLocation("energy_type"), new ControllerItemPropertyGetter())); - RSItems.CREATIVE_CONTROLLER.values().forEach(controller -> ItemModelsProperties.register(controller.get(), new ResourceLocation("energy_type"), new ControllerItemPropertyGetter())); + RSItems.CONTROLLER.values().forEach(controller -> ItemProperties.register(controller.get(), new ResourceLocation("energy_type"), new ControllerItemPropertyGetter())); + RSItems.CREATIVE_CONTROLLER.values().forEach(controller -> ItemProperties.register(controller.get(), new ResourceLocation("energy_type"), new ControllerItemPropertyGetter())); - ItemModelsProperties.register(RSItems.WIRELESS_CRAFTING_MONITOR.get(), CONNECTED, new NetworkItemPropertyGetter()); - ItemModelsProperties.register(RSItems.CREATIVE_WIRELESS_CRAFTING_MONITOR.get(), CONNECTED, new NetworkItemPropertyGetter()); + ItemProperties.register(RSItems.WIRELESS_CRAFTING_MONITOR.get(), CONNECTED, new NetworkItemPropertyGetter()); + ItemProperties.register(RSItems.CREATIVE_WIRELESS_CRAFTING_MONITOR.get(), CONNECTED, new NetworkItemPropertyGetter()); - ItemModelsProperties.register(RSItems.WIRELESS_GRID.get(), CONNECTED, new NetworkItemPropertyGetter()); - ItemModelsProperties.register(RSItems.CREATIVE_WIRELESS_GRID.get(), CONNECTED, new NetworkItemPropertyGetter()); + ItemProperties.register(RSItems.WIRELESS_GRID.get(), CONNECTED, new NetworkItemPropertyGetter()); + ItemProperties.register(RSItems.CREATIVE_WIRELESS_GRID.get(), CONNECTED, new NetworkItemPropertyGetter()); - ItemModelsProperties.register(RSItems.WIRELESS_FLUID_GRID.get(), CONNECTED, new NetworkItemPropertyGetter()); - ItemModelsProperties.register(RSItems.CREATIVE_WIRELESS_FLUID_GRID.get(), CONNECTED, new NetworkItemPropertyGetter()); + ItemProperties.register(RSItems.WIRELESS_FLUID_GRID.get(), CONNECTED, new NetworkItemPropertyGetter()); + ItemProperties.register(RSItems.CREATIVE_WIRELESS_FLUID_GRID.get(), CONNECTED, new NetworkItemPropertyGetter()); } @SubscribeEvent - public void addReloadListener(AddReloadListenerEvent event){ + public void addReloadListener(AddReloadListenerEvent event) { event.addListener(new ResourcePackListener()); } @SubscribeEvent public void onModelRegistry(ModelRegistryEvent e) { - ModelLoader.addSpecialModel(DISK_RESOURCE); - ModelLoader.addSpecialModel(DISK_NEAR_CAPACITY_RESOURCE); - ModelLoader.addSpecialModel(DISK_FULL_RESOURCE); - ModelLoader.addSpecialModel(DISK_DISCONNECTED_RESOURCE); + ForgeModelBakery.addSpecialModel(DISK_RESOURCE); + ForgeModelBakery.addSpecialModel(DISK_NEAR_CAPACITY_RESOURCE); + ForgeModelBakery.addSpecialModel(DISK_FULL_RESOURCE); + ForgeModelBakery.addSpecialModel(DISK_DISCONNECTED_RESOURCE); - ModelLoader.addSpecialModel(new ResourceLocation(RS.ID + ":block/disk_manipulator/disconnected")); + ForgeModelBakery.addSpecialModel(new ResourceLocation(RS.ID + ":block/disk_manipulator/disconnected")); for (DyeColor color : DyeColor.values()) { - ModelLoader.addSpecialModel(new ResourceLocation(RS.ID + ":block/disk_manipulator/" + color)); + ForgeModelBakery.addSpecialModel(new ResourceLocation(RS.ID + ":block/disk_manipulator/" + color)); } - ModelLoader.addSpecialModel(new ResourceLocation(RS.ID + ":block/portable_grid_connected")); - ModelLoader.addSpecialModel(new ResourceLocation(RS.ID + ":block/portable_grid_disconnected")); - ModelLoader.addSpecialModel(new ResourceLocation(RS.ID + ":block/disks/portable_grid_disk")); - ModelLoader.addSpecialModel(new ResourceLocation(RS.ID + ":block/disks/portable_grid_disk_near_capacity")); - ModelLoader.addSpecialModel(new ResourceLocation(RS.ID + ":block/disks/portable_grid_disk_full")); - ModelLoader.addSpecialModel(new ResourceLocation(RS.ID + ":block/disks/portable_grid_disk_disconnected")); + ForgeModelBakery.addSpecialModel(new ResourceLocation(RS.ID + ":block/portable_grid_connected")); + ForgeModelBakery.addSpecialModel(new ResourceLocation(RS.ID + ":block/portable_grid_disconnected")); + ForgeModelBakery.addSpecialModel(new ResourceLocation(RS.ID + ":block/disks/portable_grid_disk")); + ForgeModelBakery.addSpecialModel(new ResourceLocation(RS.ID + ":block/disks/portable_grid_disk_near_capacity")); + ForgeModelBakery.addSpecialModel(new ResourceLocation(RS.ID + ":block/disks/portable_grid_disk_full")); + ForgeModelBakery.addSpecialModel(new ResourceLocation(RS.ID + ":block/disks/portable_grid_disk_disconnected")); } @SubscribeEvent @@ -321,8 +320,8 @@ public class ClientSetup { } @SubscribeEvent - public void onTextureStitch(TextureStitchEvent.Pre event){ - if (event.getMap().location().equals(AtlasTexture.LOCATION_BLOCKS)) - event.addSprite(new ResourceLocation(RS.ID ,"block/cable_part_border")); + public void onTextureStitch(TextureStitchEvent.Pre event) { + if (event.getAtlas().location().equals(InventoryMenu.BLOCK_ATLAS)) + event.addSprite(new ResourceLocation(RS.ID, "block/cable_part_border")); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/setup/CommonSetup.java b/src/main/java/com/refinedmods/refinedstorage/setup/CommonSetup.java index 34749227e..67e9145d7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/setup/CommonSetup.java +++ b/src/main/java/com/refinedmods/refinedstorage/setup/CommonSetup.java @@ -5,6 +5,7 @@ import com.refinedmods.refinedstorage.RSBlocks; import com.refinedmods.refinedstorage.api.network.NetworkType; import com.refinedmods.refinedstorage.api.network.grid.GridType; import com.refinedmods.refinedstorage.api.network.node.INetworkNode; +import com.refinedmods.refinedstorage.api.network.node.INetworkNodeProxy; import com.refinedmods.refinedstorage.api.storage.StorageType; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.autocrafting.craftingmonitor.ErrorCraftingMonitorElement; @@ -29,7 +30,6 @@ import com.refinedmods.refinedstorage.apiimpl.storage.disk.factory.ItemStorageDi import com.refinedmods.refinedstorage.apiimpl.storage.externalstorage.FluidExternalStorageProvider; import com.refinedmods.refinedstorage.apiimpl.storage.externalstorage.ItemExternalStorageProvider; import com.refinedmods.refinedstorage.block.BlockListener; -import com.refinedmods.refinedstorage.capability.NetworkNodeProxyCapability; import com.refinedmods.refinedstorage.container.*; import com.refinedmods.refinedstorage.container.factory.*; import com.refinedmods.refinedstorage.integration.craftingtweaks.CraftingTweaksIntegration; @@ -43,14 +43,16 @@ import com.refinedmods.refinedstorage.tile.craftingmonitor.CraftingMonitorTile; import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.grid.GridTile; import com.refinedmods.refinedstorage.tile.grid.portable.PortableGridTile; -import net.minecraft.inventory.container.ContainerType; -import net.minecraft.item.crafting.IRecipeSerializer; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityType; -import net.minecraft.util.ResourceLocation; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.inventory.MenuType; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.extensions.IForgeContainerType; +import net.minecraftforge.common.capabilities.RegisterCapabilitiesEvent; +import net.minecraftforge.common.extensions.IForgeMenuType; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; @@ -60,8 +62,6 @@ public class CommonSetup { public void onCommonSetup(FMLCommonSetupEvent e) { RS.NETWORK_HANDLER.register(); - NetworkNodeProxyCapability.register(); - MinecraftForge.EVENT_BUS.register(new NetworkNodeListener()); MinecraftForge.EVENT_BUS.register(new NetworkListener()); MinecraftForge.EVENT_BUS.register(new BlockListener()); @@ -135,67 +135,72 @@ public class CommonSetup { } } - private INetworkNode readAndReturn(CompoundNBT tag, NetworkNode node) { + private INetworkNode readAndReturn(CompoundTag tag, NetworkNode node) { node.read(tag); return node; } @SubscribeEvent - public void onRegisterRecipeSerializers(RegistryEvent.Register> e) { + public void onRegisterCapabilities(RegisterCapabilitiesEvent e) { + e.register(INetworkNodeProxy.class); + } + + @SubscribeEvent + public void onRegisterRecipeSerializers(RegistryEvent.Register> e) { e.getRegistry().register(new UpgradeWithEnchantedBookRecipeSerializer().setRegistryName(RS.ID, "upgrade_with_enchanted_book")); e.getRegistry().register(CoverRecipe.SERIALIZER.setRegistryName(new ResourceLocation(RS.ID, "cover_recipe"))); e.getRegistry().register(HollowCoverRecipe.SERIALIZER.setRegistryName(new ResourceLocation(RS.ID, "hollow_cover_recipe"))); } @SubscribeEvent - public void onRegisterTiles(RegistryEvent.Register> e) { - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new ControllerTile(NetworkType.NORMAL), RSBlocks.CONTROLLER.getBlocks()).build(null).setRegistryName(RS.ID, "controller"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new ControllerTile(NetworkType.CREATIVE), RSBlocks.CREATIVE_CONTROLLER.getBlocks()).build(null).setRegistryName(RS.ID, "creative_controller"))); - e.getRegistry().register(TileEntityType.Builder.of(CableTile::new, RSBlocks.CABLE.get()).build(null).setRegistryName(RS.ID, "cable")); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(DiskDriveTile::new, RSBlocks.DISK_DRIVE.get()).build(null).setRegistryName(RS.ID, "disk_drive"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new GridTile(GridType.NORMAL), RSBlocks.GRID.getBlocks()).build(null).setRegistryName(RS.ID, "grid"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new GridTile(GridType.CRAFTING), RSBlocks.CRAFTING_GRID.getBlocks()).build(null).setRegistryName(RS.ID, "crafting_grid"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new GridTile(GridType.PATTERN), RSBlocks.PATTERN_GRID.getBlocks()).build(null).setRegistryName(RS.ID, "pattern_grid"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new GridTile(GridType.FLUID), RSBlocks.FLUID_GRID.getBlocks()).build(null).setRegistryName(RS.ID, "fluid_grid"))); + public void onRegisterTiles(RegistryEvent.Register> e) { + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new ControllerTile(NetworkType.NORMAL, pos, state), RSBlocks.CONTROLLER.getBlocks()).build(null).setRegistryName(RS.ID, "controller"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new ControllerTile(NetworkType.CREATIVE, pos, state), RSBlocks.CREATIVE_CONTROLLER.getBlocks()).build(null).setRegistryName(RS.ID, "creative_controller"))); + e.getRegistry().register(BlockEntityType.Builder.of(CableTile::new, RSBlocks.CABLE.get()).build(null).setRegistryName(RS.ID, "cable")); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(DiskDriveTile::new, RSBlocks.DISK_DRIVE.get()).build(null).setRegistryName(RS.ID, "disk_drive"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new GridTile(GridType.NORMAL, pos, state), RSBlocks.GRID.getBlocks()).build(null).setRegistryName(RS.ID, "grid"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new GridTile(GridType.CRAFTING, pos, state), RSBlocks.CRAFTING_GRID.getBlocks()).build(null).setRegistryName(RS.ID, "crafting_grid"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new GridTile(GridType.PATTERN, pos, state), RSBlocks.PATTERN_GRID.getBlocks()).build(null).setRegistryName(RS.ID, "pattern_grid"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new GridTile(GridType.FLUID, pos, state), RSBlocks.FLUID_GRID.getBlocks()).build(null).setRegistryName(RS.ID, "fluid_grid"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new StorageTile(ItemStorageType.ONE_K), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.ONE_K).get()).build(null).setRegistryName(RS.ID, "1k_storage_block"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new StorageTile(ItemStorageType.FOUR_K), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.FOUR_K).get()).build(null).setRegistryName(RS.ID, "4k_storage_block"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new StorageTile(ItemStorageType.SIXTEEN_K), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.SIXTEEN_K).get()).build(null).setRegistryName(RS.ID, "16k_storage_block"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new StorageTile(ItemStorageType.SIXTY_FOUR_K), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.SIXTY_FOUR_K).get()).build(null).setRegistryName(RS.ID, "64k_storage_block"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new StorageTile(ItemStorageType.CREATIVE), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.CREATIVE).get()).build(null).setRegistryName(RS.ID, "creative_storage_block"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new StorageTile(ItemStorageType.ONE_K, pos, state), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.ONE_K).get()).build(null).setRegistryName(RS.ID, "1k_storage_block"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new StorageTile(ItemStorageType.FOUR_K, pos, state), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.FOUR_K).get()).build(null).setRegistryName(RS.ID, "4k_storage_block"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new StorageTile(ItemStorageType.SIXTEEN_K, pos, state), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.SIXTEEN_K).get()).build(null).setRegistryName(RS.ID, "16k_storage_block"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new StorageTile(ItemStorageType.SIXTY_FOUR_K, pos, state), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.SIXTY_FOUR_K).get()).build(null).setRegistryName(RS.ID, "64k_storage_block"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new StorageTile(ItemStorageType.CREATIVE, pos, state), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.CREATIVE).get()).build(null).setRegistryName(RS.ID, "creative_storage_block"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new FluidStorageTile(FluidStorageType.SIXTY_FOUR_K), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.SIXTY_FOUR_K).get()).build(null).setRegistryName(RS.ID, "64k_fluid_storage_block"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new FluidStorageTile(FluidStorageType.TWO_HUNDRED_FIFTY_SIX_K), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.TWO_HUNDRED_FIFTY_SIX_K).get()).build(null).setRegistryName(RS.ID, "256k_fluid_storage_block"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new FluidStorageTile(FluidStorageType.THOUSAND_TWENTY_FOUR_K), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.THOUSAND_TWENTY_FOUR_K).get()).build(null).setRegistryName(RS.ID, "1024k_fluid_storage_block"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new FluidStorageTile(FluidStorageType.FOUR_THOUSAND_NINETY_SIX_K), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.FOUR_THOUSAND_NINETY_SIX_K).get()).build(null).setRegistryName(RS.ID, "4096k_fluid_storage_block"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new FluidStorageTile(FluidStorageType.CREATIVE), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.CREATIVE).get()).build(null).setRegistryName(RS.ID, "creative_fluid_storage_block"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new FluidStorageTile(FluidStorageType.SIXTY_FOUR_K, pos, state), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.SIXTY_FOUR_K).get()).build(null).setRegistryName(RS.ID, "64k_fluid_storage_block"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new FluidStorageTile(FluidStorageType.TWO_HUNDRED_FIFTY_SIX_K, pos, state), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.TWO_HUNDRED_FIFTY_SIX_K).get()).build(null).setRegistryName(RS.ID, "256k_fluid_storage_block"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new FluidStorageTile(FluidStorageType.THOUSAND_TWENTY_FOUR_K, pos, state), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.THOUSAND_TWENTY_FOUR_K).get()).build(null).setRegistryName(RS.ID, "1024k_fluid_storage_block"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new FluidStorageTile(FluidStorageType.FOUR_THOUSAND_NINETY_SIX_K, pos, state), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.FOUR_THOUSAND_NINETY_SIX_K).get()).build(null).setRegistryName(RS.ID, "4096k_fluid_storage_block"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new FluidStorageTile(FluidStorageType.CREATIVE, pos, state), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.CREATIVE).get()).build(null).setRegistryName(RS.ID, "creative_fluid_storage_block"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(ExternalStorageTile::new, RSBlocks.EXTERNAL_STORAGE.get()).build(null).setRegistryName(RS.ID, "external_storage"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(ImporterTile::new, RSBlocks.IMPORTER.get()).build(null).setRegistryName(RS.ID, "importer"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(ExporterTile::new, RSBlocks.EXPORTER.get()).build(null).setRegistryName(RS.ID, "exporter"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(NetworkReceiverTile::new, RSBlocks.NETWORK_RECEIVER.getBlocks()).build(null).setRegistryName(RS.ID, "network_receiver"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(NetworkTransmitterTile::new, RSBlocks.NETWORK_TRANSMITTER.getBlocks()).build(null).setRegistryName(RS.ID, "network_transmitter"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(RelayTile::new, RSBlocks.RELAY.getBlocks()).build(null).setRegistryName(RS.ID, "relay"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(DetectorTile::new, RSBlocks.DETECTOR.getBlocks()).build(null).setRegistryName(RS.ID, "detector"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(SecurityManagerTile::new, RSBlocks.SECURITY_MANAGER.getBlocks()).build(null).setRegistryName(RS.ID, "security_manager"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(InterfaceTile::new, RSBlocks.INTERFACE.get()).build(null).setRegistryName(RS.ID, "interface"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(FluidInterfaceTile::new, RSBlocks.FLUID_INTERFACE.get()).build(null).setRegistryName(RS.ID, "fluid_interface"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(WirelessTransmitterTile::new, RSBlocks.WIRELESS_TRANSMITTER.getBlocks()).build(null).setRegistryName(RS.ID, "wireless_transmitter"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(StorageMonitorTile::new, RSBlocks.STORAGE_MONITOR.get()).build(null).setRegistryName(RS.ID, "storage_monitor"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(ConstructorTile::new, RSBlocks.CONSTRUCTOR.get()).build(null).setRegistryName(RS.ID, "constructor"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(DestructorTile::new, RSBlocks.DESTRUCTOR.get()).build(null).setRegistryName(RS.ID, "destructor"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(DiskManipulatorTile::new, RSBlocks.DISK_MANIPULATOR.getBlocks()).build(null).setRegistryName(RS.ID, "disk_manipulator"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(CrafterTile::new, RSBlocks.CRAFTER.getBlocks()).build(null).setRegistryName(RS.ID, "crafter"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(CrafterManagerTile::new, RSBlocks.CRAFTER_MANAGER.getBlocks()).build(null).setRegistryName(RS.ID, "crafter_manager"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(CraftingMonitorTile::new, RSBlocks.CRAFTING_MONITOR.getBlocks()).build(null).setRegistryName(RS.ID, "crafting_monitor"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(ExternalStorageTile::new, RSBlocks.EXTERNAL_STORAGE.get()).build(null).setRegistryName(RS.ID, "external_storage"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(ImporterTile::new, RSBlocks.IMPORTER.get()).build(null).setRegistryName(RS.ID, "importer"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(ExporterTile::new, RSBlocks.EXPORTER.get()).build(null).setRegistryName(RS.ID, "exporter"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(NetworkReceiverTile::new, RSBlocks.NETWORK_RECEIVER.getBlocks()).build(null).setRegistryName(RS.ID, "network_receiver"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(NetworkTransmitterTile::new, RSBlocks.NETWORK_TRANSMITTER.getBlocks()).build(null).setRegistryName(RS.ID, "network_transmitter"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(RelayTile::new, RSBlocks.RELAY.getBlocks()).build(null).setRegistryName(RS.ID, "relay"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(DetectorTile::new, RSBlocks.DETECTOR.getBlocks()).build(null).setRegistryName(RS.ID, "detector"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(SecurityManagerTile::new, RSBlocks.SECURITY_MANAGER.getBlocks()).build(null).setRegistryName(RS.ID, "security_manager"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(InterfaceTile::new, RSBlocks.INTERFACE.get()).build(null).setRegistryName(RS.ID, "interface"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(FluidInterfaceTile::new, RSBlocks.FLUID_INTERFACE.get()).build(null).setRegistryName(RS.ID, "fluid_interface"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(WirelessTransmitterTile::new, RSBlocks.WIRELESS_TRANSMITTER.getBlocks()).build(null).setRegistryName(RS.ID, "wireless_transmitter"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(StorageMonitorTile::new, RSBlocks.STORAGE_MONITOR.get()).build(null).setRegistryName(RS.ID, "storage_monitor"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(ConstructorTile::new, RSBlocks.CONSTRUCTOR.get()).build(null).setRegistryName(RS.ID, "constructor"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(DestructorTile::new, RSBlocks.DESTRUCTOR.get()).build(null).setRegistryName(RS.ID, "destructor"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(DiskManipulatorTile::new, RSBlocks.DISK_MANIPULATOR.getBlocks()).build(null).setRegistryName(RS.ID, "disk_manipulator"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(CrafterTile::new, RSBlocks.CRAFTER.getBlocks()).build(null).setRegistryName(RS.ID, "crafter"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(CrafterManagerTile::new, RSBlocks.CRAFTER_MANAGER.getBlocks()).build(null).setRegistryName(RS.ID, "crafter_manager"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of(CraftingMonitorTile::new, RSBlocks.CRAFTING_MONITOR.getBlocks()).build(null).setRegistryName(RS.ID, "crafting_monitor"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new PortableGridTile(PortableGridBlockItem.Type.CREATIVE), RSBlocks.CREATIVE_PORTABLE_GRID.get()).build(null).setRegistryName(RS.ID, "creative_portable_grid"))); - e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.of(() -> new PortableGridTile(PortableGridBlockItem.Type.NORMAL), RSBlocks.PORTABLE_GRID.get()).build(null).setRegistryName(RS.ID, "portable_grid"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new PortableGridTile(PortableGridBlockItem.Type.CREATIVE, pos, state), RSBlocks.CREATIVE_PORTABLE_GRID.get()).build(null).setRegistryName(RS.ID, "creative_portable_grid"))); + e.getRegistry().register(registerTileDataParameters(BlockEntityType.Builder.of((pos, state) -> new PortableGridTile(PortableGridBlockItem.Type.NORMAL, pos, state), RSBlocks.PORTABLE_GRID.get()).build(null).setRegistryName(RS.ID, "portable_grid"))); } - private TileEntityType registerTileDataParameters(TileEntityType t) { - BaseTile tile = (BaseTile) t.create(); + private BlockEntityType registerTileDataParameters(BlockEntityType t) { + BaseTile tile = (BaseTile) t.create(BlockPos.ZERO, null); tile.getDataManager().getParameters().forEach(TileDataManager::registerParameter); @@ -203,30 +208,30 @@ public class CommonSetup { } @SubscribeEvent - public void onRegisterContainers(RegistryEvent.Register> e) { - e.getRegistry().register(IForgeContainerType.create((windowId, inv, data) -> new FilterContainer(inv.player, inv.getSelected(), windowId)).setRegistryName(RS.ID, "filter")); - e.getRegistry().register(IForgeContainerType.create(((windowId, inv, data) -> new ControllerContainer(null, inv.player, windowId))).setRegistryName(RS.ID, "controller")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new DiskDriveContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "disk_drive")); - e.getRegistry().register(IForgeContainerType.create(new GridContainerFactory()).setRegistryName(RS.ID, "grid")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new StorageContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "storage_block")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new FluidStorageContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "fluid_storage_block")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new ExternalStorageContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "external_storage")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new ImporterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "importer")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new ExporterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "exporter")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new NetworkTransmitterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "network_transmitter")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new RelayContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "relay")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new DetectorContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "detector")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new SecurityManagerContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "security_manager")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new InterfaceContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "interface")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new FluidInterfaceContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "fluid_interface")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new WirelessTransmitterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "wireless_transmitter")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new StorageMonitorContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "storage_monitor")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new ConstructorContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "constructor")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new DestructorContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "destructor")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new DiskManipulatorContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "disk_manipulator")); - e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new CrafterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "crafter")); - e.getRegistry().register(IForgeContainerType.create(new CrafterManagerContainerFactory()).setRegistryName(RS.ID, "crafter_manager")); - e.getRegistry().register(IForgeContainerType.create(new CraftingMonitorContainerFactory()).setRegistryName(RS.ID, "crafting_monitor")); - e.getRegistry().register(IForgeContainerType.create(new WirelessCraftingMonitorContainerFactory()).setRegistryName(RS.ID, "wireless_crafting_monitor")); + public void onRegisterContainers(RegistryEvent.Register> e) { + e.getRegistry().register(IForgeMenuType.create((windowId, inv, data) -> new FilterContainer(inv.player, inv.getSelected(), windowId)).setRegistryName(RS.ID, "filter")); + e.getRegistry().register(IForgeMenuType.create(((windowId, inv, data) -> new ControllerContainer(null, inv.player, windowId))).setRegistryName(RS.ID, "controller")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new DiskDriveContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "disk_drive")); + e.getRegistry().register(IForgeMenuType.create(new GridContainerFactory()).setRegistryName(RS.ID, "grid")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new StorageContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "storage_block")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new FluidStorageContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "fluid_storage_block")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new ExternalStorageContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "external_storage")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new ImporterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "importer")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new ExporterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "exporter")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new NetworkTransmitterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "network_transmitter")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new RelayContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "relay")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new DetectorContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "detector")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new SecurityManagerContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "security_manager")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new InterfaceContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "interface")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new FluidInterfaceContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "fluid_interface")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new WirelessTransmitterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "wireless_transmitter")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new StorageMonitorContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "storage_monitor")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new ConstructorContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "constructor")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new DestructorContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "destructor")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new DiskManipulatorContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "disk_manipulator")); + e.getRegistry().register(IForgeMenuType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new CrafterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "crafter")); + e.getRegistry().register(IForgeMenuType.create(new CrafterManagerContainerFactory()).setRegistryName(RS.ID, "crafter_manager")); + e.getRegistry().register(IForgeMenuType.create(new CraftingMonitorContainerFactory()).setRegistryName(RS.ID, "crafting_monitor")); + e.getRegistry().register(IForgeMenuType.create(new WirelessCraftingMonitorContainerFactory()).setRegistryName(RS.ID, "wireless_crafting_monitor")); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/setup/ServerSetup.java b/src/main/java/com/refinedmods/refinedstorage/setup/ServerSetup.java index 4e31d57cf..85b09d585 100644 --- a/src/main/java/com/refinedmods/refinedstorage/setup/ServerSetup.java +++ b/src/main/java/com/refinedmods/refinedstorage/setup/ServerSetup.java @@ -6,7 +6,7 @@ import com.refinedmods.refinedstorage.command.disk.ListDiskCommand; import com.refinedmods.refinedstorage.command.network.GetNetworkCommand; import com.refinedmods.refinedstorage.command.network.ListNetworkCommand; import com.refinedmods.refinedstorage.command.pattern.PatternDumpCommand; -import net.minecraft.command.Commands; +import net.minecraft.commands.Commands; import net.minecraftforge.event.RegisterCommandsEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/BaseTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/BaseTile.java index 4c7a80cf7..8b7ed7df8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/BaseTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/BaseTile.java @@ -1,50 +1,50 @@ package com.refinedmods.refinedstorage.tile; import com.refinedmods.refinedstorage.tile.data.TileDataManager; -import net.minecraft.block.BlockState; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.play.server.SUpdateTileEntityPacket; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityType; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.Connection; +import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; -public abstract class BaseTile extends TileEntity { +public abstract class BaseTile extends BlockEntity { protected final TileDataManager dataManager = new TileDataManager(this); - protected BaseTile(TileEntityType tileType) { - super(tileType); + public BaseTile(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); } public TileDataManager getDataManager() { return dataManager; } - public CompoundNBT writeUpdate(CompoundNBT tag) { + public CompoundTag writeUpdate(CompoundTag tag) { return tag; } - public void readUpdate(CompoundNBT tag) { + public void readUpdate(CompoundTag tag) { } @Override - public final CompoundNBT getUpdateTag() { + public final CompoundTag getUpdateTag() { return writeUpdate(super.getUpdateTag()); } @Override - public final SUpdateTileEntityPacket getUpdatePacket() { - return new SUpdateTileEntityPacket(worldPosition, 1, getUpdateTag()); + public final ClientboundBlockEntityDataPacket getUpdatePacket() { + return ClientboundBlockEntityDataPacket.create(this, BlockEntity::getUpdateTag); } @Override - public final void onDataPacket(NetworkManager net, SUpdateTileEntityPacket packet) { + public final void onDataPacket(Connection net, ClientboundBlockEntityDataPacket packet) { readUpdate(packet.getTag()); } @Override - public void handleUpdateTag(BlockState state, CompoundNBT tag) { - super.load(state, tag); - + public void handleUpdateTag(CompoundTag tag) { + super.handleUpdateTag(tag); readUpdate(tag); } @@ -52,7 +52,7 @@ public abstract class BaseTile extends TileEntity { @Override public void setChanged() { if (level != null) { - level.blockEntityChanged(worldPosition, this); + level.blockEntityChanged(worldPosition); } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/CableTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/CableTile.java index 7408547f4..a5a4d1ba7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/CableTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/CableTile.java @@ -1,48 +1,32 @@ package com.refinedmods.refinedstorage.tile; import com.refinedmods.refinedstorage.RSTiles; -import com.refinedmods.refinedstorage.api.network.node.ICoverable; import com.refinedmods.refinedstorage.apiimpl.network.node.CableNetworkNode; -import com.refinedmods.refinedstorage.apiimpl.network.node.DiskState; import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager; -import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.client.Minecraft; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.IntNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.IDataSerializer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.client.model.ModelDataManager; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelDataMap; -import net.minecraftforge.client.model.data.ModelProperty; -import net.minecraftforge.common.util.Constants; import javax.annotation.Nonnull; -import java.util.HashMap; public class CableTile extends NetworkNodeTile { + public static final TileDataParameter COVER_MANAGER = new TileDataParameter<>(EntityDataSerializers.COMPOUND_TAG, new CompoundTag(), t -> t.getNode().getCoverManager().writeToNbt(), (t, v) -> t.getNode().getCoverManager().readFromNbt(v), (initial, p) -> { + }); - public static final TileDataParameter COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_TAG, new CompoundNBT(), - t -> t.getNode().getCoverManager().writeToNbt(), - (t, v) -> t.getNode().getCoverManager().readFromNbt(v), - (initial, p) -> {}); - - public CableTile() { - super(RSTiles.CABLE); + public CableTile(BlockPos pos, BlockState state) { + super(RSTiles.CABLE, pos, state); dataManager.addWatchedParameter(COVER_MANAGER); } @Override @Nonnull - public CableNetworkNode createNode(World world, BlockPos pos) { + public CableNetworkNode createNode(Level world, BlockPos pos) { return new CableNetworkNode(world, pos); } @@ -53,7 +37,7 @@ public class CableTile extends NetworkNodeTile { } @Override - public CompoundNBT writeUpdate(CompoundNBT tag) { + public CompoundTag writeUpdate(CompoundTag tag) { super.writeUpdate(tag); tag.put(CoverManager.NBT_COVER_MANAGER, this.getNode().getCoverManager().writeToNbt()); @@ -62,7 +46,7 @@ public class CableTile extends NetworkNodeTile { } @Override - public void readUpdate(CompoundNBT tag) { + public void readUpdate(CompoundTag tag) { super.readUpdate(tag); this.getNode().getCoverManager().readFromNbt(tag.getCompound(CoverManager.NBT_COVER_MANAGER)); @@ -71,6 +55,4 @@ public class CableTile extends NetworkNodeTile { WorldUtils.updateBlock(level, worldPosition); } - - } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/ClientNode.java b/src/main/java/com/refinedmods/refinedstorage/tile/ClientNode.java index cef25618b..1c85dbb4c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/ClientNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/ClientNode.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.tile; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; public class ClientNode { private final ItemStack stack; - private int amount; private final int energyUsage; + private int amount; public ClientNode(ItemStack stack, int amount, int energyUsage) { this.stack = stack; diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/ConstructorTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/ConstructorTile.java index ac2c256b7..b89494357 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/ConstructorTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/ConstructorTile.java @@ -5,14 +5,13 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.ConstructorNetworkNod import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager; import com.refinedmods.refinedstorage.tile.config.IComparable; import com.refinedmods.refinedstorage.tile.config.IType; -import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.client.Minecraft; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelDataMap; @@ -21,18 +20,19 @@ import javax.annotation.Nonnull; public class ConstructorTile extends NetworkNodeTile { public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); - public static final TileDataParameter DROP = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isDrop(), (t, v) -> { + public static final TileDataParameter DROP = new TileDataParameter<>(EntityDataSerializers.BOOLEAN, false, t -> t.getNode().isDrop(), (t, v) -> { t.getNode().setDrop(v); t.getNode().markDirty(); }); - public static final TileDataParameter COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_TAG, new CompoundNBT(), - t -> t.getNode().getCoverManager().writeToNbt(), - (t, v) -> t.getNode().getCoverManager().readFromNbt(v), - (initial, p) -> {}); + public static final TileDataParameter COVER_MANAGER = new TileDataParameter<>(EntityDataSerializers.COMPOUND_TAG, new CompoundTag(), + t -> t.getNode().getCoverManager().writeToNbt(), + (t, v) -> t.getNode().getCoverManager().readFromNbt(v), + (initial, p) -> { + }); - public ConstructorTile() { - super(RSTiles.CONSTRUCTOR); + public ConstructorTile(BlockPos pos, BlockState state) { + super(RSTiles.CONSTRUCTOR, pos, state); dataManager.addWatchedParameter(COMPARE); dataManager.addWatchedParameter(TYPE); @@ -42,7 +42,7 @@ public class ConstructorTile extends NetworkNodeTile { @Override @Nonnull - public ConstructorNetworkNode createNode(World world, BlockPos pos) { + public ConstructorNetworkNode createNode(Level world, BlockPos pos) { return new ConstructorNetworkNode(world, pos); } @@ -53,7 +53,7 @@ public class ConstructorTile extends NetworkNodeTile { } @Override - public CompoundNBT writeUpdate(CompoundNBT tag) { + public CompoundTag writeUpdate(CompoundTag tag) { super.writeUpdate(tag); tag.put(CoverManager.NBT_COVER_MANAGER, this.getNode().getCoverManager().writeToNbt()); @@ -62,7 +62,7 @@ public class ConstructorTile extends NetworkNodeTile { } @Override - public void readUpdate(CompoundNBT tag) { + public void readUpdate(CompoundTag tag) { super.readUpdate(tag); this.getNode().getCoverManager().readFromNbt(tag.getCompound(CoverManager.NBT_COVER_MANAGER)); diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/ControllerTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/ControllerTile.java index f2da94ddb..0d0c442ca 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/ControllerTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/ControllerTile.java @@ -9,17 +9,17 @@ import com.refinedmods.refinedstorage.api.network.node.INetworkNodeProxy; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.network.Network; import com.refinedmods.refinedstorage.apiimpl.network.node.RootNetworkNode; -import com.refinedmods.refinedstorage.block.ControllerBlock; import com.refinedmods.refinedstorage.capability.NetworkNodeProxyCapability; import com.refinedmods.refinedstorage.tile.config.IRedstoneConfigurable; import com.refinedmods.refinedstorage.tile.config.RedstoneMode; import com.refinedmods.refinedstorage.tile.data.RSSerializers; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.Direction; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.energy.CapabilityEnergy; @@ -32,24 +32,19 @@ import java.util.List; public class ControllerTile extends BaseTile implements INetworkNodeProxy, IRedstoneConfigurable { public static final TileDataParameter REDSTONE_MODE = RedstoneMode.createParameter(); - public static final TileDataParameter ENERGY_USAGE = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNetwork().getEnergyUsage()); - public static final TileDataParameter ENERGY_STORED = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNetwork().getEnergyStorage().getEnergyStored()); - public static final TileDataParameter ENERGY_CAPACITY = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNetwork().getEnergyStorage().getMaxEnergyStored()); + public static final TileDataParameter ENERGY_USAGE = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNetwork().getEnergyUsage()); + public static final TileDataParameter ENERGY_STORED = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNetwork().getEnergyStorage().getEnergyStored()); + public static final TileDataParameter ENERGY_CAPACITY = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNetwork().getEnergyStorage().getMaxEnergyStored()); public static final TileDataParameter, ControllerTile> NODES = new TileDataParameter<>(RSSerializers.CLIENT_NODE_SERIALIZER, new ArrayList<>(), ControllerTile::collectClientNodes); - private static final String NBT_ENERGY_TYPE = "EnergyType"; - - private final LazyOptional energyProxyCap = LazyOptional.of(() -> getNetwork().getEnergyStorage()); private final LazyOptional> networkNodeProxyCap = LazyOptional.of(() -> this); - private final NetworkType type; - private INetwork removedNetwork; - private Network dummyNetwork; + private final LazyOptional energyProxyCap = LazyOptional.of(() -> getNetwork().getEnergyStorage()); - public ControllerTile(NetworkType type) { - super(type == NetworkType.CREATIVE ? RSTiles.CREATIVE_CONTROLLER : RSTiles.CONTROLLER); + public ControllerTile(NetworkType type, BlockPos pos, BlockState state) { + super(type == NetworkType.CREATIVE ? RSTiles.CREATIVE_CONTROLLER : RSTiles.CONTROLLER, pos, state); dataManager.addWatchedParameter(REDSTONE_MODE); dataManager.addWatchedParameter(ENERGY_USAGE); @@ -60,22 +55,32 @@ public class ControllerTile extends BaseTile implements INetworkNodeProxy collectClientNodes(ControllerTile tile) { + List nodes = new ArrayList<>(); - tag.putInt(NBT_ENERGY_TYPE, ((Network) getNetwork()).getEnergyType().ordinal()); + for (INetworkNodeGraphEntry entry : tile.getNetwork().getNodeGraph().all()) { + if (entry.getNode().isActive()) { + ItemStack stack = entry.getNode().getItemStack(); - return tag; - } + if (stack.isEmpty()) { + continue; + } - @Override - public void readUpdate(CompoundNBT tag) { - if (tag.contains(NBT_ENERGY_TYPE)) { - level.setBlockAndUpdate(worldPosition, level.getBlockState(worldPosition).setValue(ControllerBlock.ENERGY_TYPE, ControllerBlock.EnergyType.values()[tag.getInt(NBT_ENERGY_TYPE)])); + ClientNode clientNode = new ClientNode(stack, 1, entry.getNode().getEnergyUsage()); + + if (nodes.contains(clientNode)) { + ClientNode other = nodes.get(nodes.indexOf(clientNode)); + + other.setAmount(other.getAmount() + 1); + } else { + nodes.add(clientNode); + } + } } - super.readUpdate(tag); + nodes.sort((a, b) -> Integer.compare(b.getEnergyUsage(), a.getEnergyUsage())); + + return nodes; } public INetwork getNetwork() { @@ -87,7 +92,7 @@ public class ControllerTile extends BaseTile implements INetworkNodeProxy collectClientNodes(ControllerTile tile) { - List nodes = new ArrayList<>(); - - for (INetworkNodeGraphEntry entry : tile.getNetwork().getNodeGraph().all()) { - if (entry.getNode().isActive()) { - ItemStack stack = entry.getNode().getItemStack(); - - if (stack.isEmpty()) { - continue; - } - - ClientNode clientNode = new ClientNode(stack, 1, entry.getNode().getEnergyUsage()); - - if (nodes.contains(clientNode)) { - ClientNode other = nodes.get(nodes.indexOf(clientNode)); - - other.setAmount(other.getAmount() + 1); - } else { - nodes.add(clientNode); - } - } - } - - nodes.sort((a, b) -> Integer.compare(b.getEnergyUsage(), a.getEnergyUsage())); - - return nodes; - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/CrafterManagerTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/CrafterManagerTile.java index 043446624..26a248ab7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/CrafterManagerTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/CrafterManagerTile.java @@ -6,33 +6,35 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.CrafterManagerNetwork import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.screen.CrafterManagerScreen; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; public class CrafterManagerTile extends NetworkNodeTile { - public static final TileDataParameter SIZE = new TileDataParameter<>(DataSerializers.INT, IGrid.SIZE_STRETCH, t -> t.getNode().getSize(), (t, v) -> { + public static final TileDataParameter SIZE = new TileDataParameter<>(EntityDataSerializers.INT, IGrid.SIZE_STRETCH, t -> t.getNode().getSize(), (t, v) -> { if (IGrid.isValidSize(v)) { t.getNode().setSize(v); t.getNode().markDirty(); } }, (initial, p) -> BaseScreen.executeLater(CrafterManagerScreen.class, BaseScreen::init)); - public static final TileDataParameter SEARCH_BOX_MODE = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNode().getSearchBoxMode(), (t, v) -> { + + public static final TileDataParameter SEARCH_BOX_MODE = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getSearchBoxMode(), (t, v) -> { if (IGrid.isValidSearchBoxMode(v)) { t.getNode().setSearchBoxMode(v); t.getNode().markDirty(); } }, (initial, p) -> BaseScreen.executeLater(CrafterManagerScreen.class, crafterManager -> crafterManager.getSearchField().setMode(p))); - public CrafterManagerTile() { - super(RSTiles.CRAFTER_MANAGER); + public CrafterManagerTile(BlockPos pos, BlockState state) { + super(RSTiles.CRAFTER_MANAGER, pos, state); dataManager.addWatchedParameter(SIZE); dataManager.addWatchedParameter(SEARCH_BOX_MODE); } @Override - public CrafterManagerNetworkNode createNode(World world, BlockPos pos) { + public CrafterManagerNetworkNode createNode(Level world, BlockPos pos) { return new CrafterManagerNetworkNode(world, pos); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/CrafterTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/CrafterTile.java index 85c2e47e9..7ac3bace1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/CrafterTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/CrafterTile.java @@ -4,10 +4,11 @@ import com.refinedmods.refinedstorage.RSTiles; import com.refinedmods.refinedstorage.apiimpl.network.node.CrafterNetworkNode; import com.refinedmods.refinedstorage.screen.CrafterTileDataParameterClientListener; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; @@ -17,13 +18,13 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public class CrafterTile extends NetworkNodeTile { - public static final TileDataParameter MODE = new TileDataParameter<>(DataSerializers.INT, CrafterNetworkNode.CrafterMode.IGNORE.ordinal(), t -> t.getNode().getMode().ordinal(), (t, v) -> t.getNode().setMode(CrafterNetworkNode.CrafterMode.getById(v))); - private static final TileDataParameter HAS_ROOT = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().getRootContainerNotSelf().isPresent(), null, (t, v) -> new CrafterTileDataParameterClientListener().onChanged(t, v)); + public static final TileDataParameter MODE = new TileDataParameter<>(EntityDataSerializers.INT, CrafterNetworkNode.CrafterMode.IGNORE.ordinal(), t -> t.getNode().getMode().ordinal(), (t, v) -> t.getNode().setMode(CrafterNetworkNode.CrafterMode.getById(v))); + private static final TileDataParameter HAS_ROOT = new TileDataParameter<>(EntityDataSerializers.BOOLEAN, false, t -> t.getNode().getRootContainerNotSelf().isPresent(), null, (t, v) -> new CrafterTileDataParameterClientListener().onChanged(t, v)); private final LazyOptional patternsCapability = LazyOptional.of(() -> getNode().getPatternInventory()); - public CrafterTile() { - super(RSTiles.CRAFTER); + public CrafterTile(BlockPos pos, BlockState state) { + super(RSTiles.CRAFTER, pos, state); dataManager.addWatchedParameter(MODE); dataManager.addParameter(HAS_ROOT); @@ -31,7 +32,7 @@ public class CrafterTile extends NetworkNodeTile { @Override @Nonnull - public CrafterNetworkNode createNode(World world, BlockPos pos) { + public CrafterNetworkNode createNode(Level world, BlockPos pos) { return new CrafterNetworkNode(world, pos); } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/DestructorTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/DestructorTile.java index a98da6750..9f6fdf49d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/DestructorTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/DestructorTile.java @@ -6,14 +6,13 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager; import com.refinedmods.refinedstorage.tile.config.IComparable; import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; -import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.client.Minecraft; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelDataMap; @@ -23,18 +22,19 @@ public class DestructorTile extends NetworkNodeTile { public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter WHITELIST_BLACKLIST = IWhitelistBlacklist.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); - public static final TileDataParameter PICKUP = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isPickupItem(), (t, v) -> { + public static final TileDataParameter PICKUP = new TileDataParameter<>(EntityDataSerializers.BOOLEAN, false, t -> t.getNode().isPickupItem(), (t, v) -> { t.getNode().setPickupItem(v); t.getNode().markDirty(); }); - public static final TileDataParameter COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_TAG, new CompoundNBT(), - t -> t.getNode().getCoverManager().writeToNbt(), - (t, v) -> t.getNode().getCoverManager().readFromNbt(v), - (initial, p) -> {}); + public static final TileDataParameter COVER_MANAGER = new TileDataParameter<>(EntityDataSerializers.COMPOUND_TAG, new CompoundTag(), + t -> t.getNode().getCoverManager().writeToNbt(), + (t, v) -> t.getNode().getCoverManager().readFromNbt(v), + (initial, p) -> { + }); - public DestructorTile() { - super(RSTiles.DESTRUCTOR); + public DestructorTile(BlockPos pos, BlockState state) { + super(RSTiles.DESTRUCTOR, pos, state); dataManager.addWatchedParameter(COMPARE); dataManager.addWatchedParameter(WHITELIST_BLACKLIST); @@ -45,7 +45,7 @@ public class DestructorTile extends NetworkNodeTile { @Override @Nonnull - public DestructorNetworkNode createNode(World world, BlockPos pos) { + public DestructorNetworkNode createNode(Level world, BlockPos pos) { return new DestructorNetworkNode(world, pos); } @@ -56,7 +56,7 @@ public class DestructorTile extends NetworkNodeTile { } @Override - public CompoundNBT writeUpdate(CompoundNBT tag) { + public CompoundTag writeUpdate(CompoundTag tag) { super.writeUpdate(tag); tag.put(CoverManager.NBT_COVER_MANAGER, this.getNode().getCoverManager().writeToNbt()); @@ -65,7 +65,7 @@ public class DestructorTile extends NetworkNodeTile { } @Override - public void readUpdate(CompoundNBT tag) { + public void readUpdate(CompoundTag tag) { super.readUpdate(tag); this.getNode().getCoverManager().readFromNbt(tag.getCompound(CoverManager.NBT_COVER_MANAGER)); diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/DetectorTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/DetectorTile.java index 3d37f0c38..36a281ce9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/DetectorTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/DetectorTile.java @@ -7,31 +7,32 @@ import com.refinedmods.refinedstorage.screen.DetectorScreen; import com.refinedmods.refinedstorage.tile.config.IComparable; import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import javax.annotation.Nonnull; public class DetectorTile extends NetworkNodeTile { public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); - public static final TileDataParameter MODE = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNode().getMode(), (t, v) -> { + public static final TileDataParameter MODE = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getMode(), (t, v) -> { if (v == DetectorNetworkNode.MODE_UNDER || v == DetectorNetworkNode.MODE_EQUAL || v == DetectorNetworkNode.MODE_ABOVE) { t.getNode().setMode(v); t.getNode().markDirty(); } }); - public static final TileDataParameter AMOUNT = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNode().getAmount(), (t, v) -> { + public static final TileDataParameter AMOUNT = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getAmount(), (t, v) -> { t.getNode().setAmount(v); t.getNode().markDirty(); }, (initial, value) -> BaseScreen.executeLater(DetectorScreen.class, detectorScreen -> detectorScreen.updateAmountField(value))); private static final String NBT_POWERED = "Powered"; - public DetectorTile() { - super(RSTiles.DETECTOR); + public DetectorTile(BlockPos pos, BlockState state) { + super(RSTiles.DETECTOR, pos, state); dataManager.addWatchedParameter(COMPARE); dataManager.addWatchedParameter(TYPE); @@ -40,14 +41,14 @@ public class DetectorTile extends NetworkNodeTile { } @Override - public void readUpdate(CompoundNBT tag) { + public void readUpdate(CompoundTag tag) { getNode().setPowered(tag.getBoolean(NBT_POWERED)); super.readUpdate(tag); } @Override - public CompoundNBT writeUpdate(CompoundNBT tag) { + public CompoundTag writeUpdate(CompoundTag tag) { super.writeUpdate(tag); tag.putBoolean(NBT_POWERED, getNode().isPowered()); @@ -57,7 +58,7 @@ public class DetectorTile extends NetworkNodeTile { @Override @Nonnull - public DetectorNetworkNode createNode(World world, BlockPos pos) { + public DetectorNetworkNode createNode(Level world, BlockPos pos) { return new DetectorNetworkNode(world, pos); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/DiskDriveTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/DiskDriveTile.java index 96dd2199a..b1e967705 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/DiskDriveTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/DiskDriveTile.java @@ -9,17 +9,18 @@ import com.refinedmods.refinedstorage.tile.config.*; import com.refinedmods.refinedstorage.tile.data.RSSerializers; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.IntNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.IntTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.Tag; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelDataMap; import net.minecraftforge.client.model.data.ModelProperty; import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; @@ -85,8 +86,8 @@ public class DiskDriveTile extends NetworkNodeTile { private final DiskState[] diskState = new DiskState[8]; - public DiskDriveTile() { - super(RSTiles.DISK_DRIVE); + public DiskDriveTile(BlockPos pos, BlockState state) { + super(RSTiles.DISK_DRIVE, pos, state); dataManager.addWatchedParameter(PRIORITY); dataManager.addWatchedParameter(COMPARE); @@ -100,13 +101,13 @@ public class DiskDriveTile extends NetworkNodeTile { } @Override - public CompoundNBT writeUpdate(CompoundNBT tag) { + public CompoundTag writeUpdate(CompoundTag tag) { super.writeUpdate(tag); - ListNBT list = new ListNBT(); + ListTag list = new ListTag(); for (DiskState state : getNode().getDiskState()) { - list.add(IntNBT.valueOf(state.ordinal())); + list.add(IntTag.valueOf(state.ordinal())); } tag.put(NBT_DISK_STATE, list); @@ -115,10 +116,10 @@ public class DiskDriveTile extends NetworkNodeTile { } @Override - public void readUpdate(CompoundNBT tag) { + public void readUpdate(CompoundTag tag) { super.readUpdate(tag); - ListNBT list = tag.getList(NBT_DISK_STATE, Constants.NBT.TAG_INT); + ListTag list = tag.getList(NBT_DISK_STATE, Tag.TAG_INT); for (int i = 0; i < list.size(); ++i) { diskState[i] = DiskState.values()[list.getInt(i)]; @@ -147,7 +148,7 @@ public class DiskDriveTile extends NetworkNodeTile { @Override @Nonnull - public DiskDriveNetworkNode createNode(World world, BlockPos pos) { + public DiskDriveNetworkNode createNode(Level world, BlockPos pos) { return new DiskDriveNetworkNode(world, pos); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/DiskManipulatorTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/DiskManipulatorTile.java index b44853121..5eee75b7f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/DiskManipulatorTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/DiskManipulatorTile.java @@ -8,18 +8,19 @@ import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.IntNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.IntTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.Tag; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelDataMap; import net.minecraftforge.client.model.data.ModelProperty; import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; @@ -32,7 +33,7 @@ public class DiskManipulatorTile extends NetworkNodeTile COMPARE = IComparable.createParameter(); public static final TileDataParameter WHITELIST_BLACKLIST = IWhitelistBlacklist.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); - public static final TileDataParameter IO_MODE = new TileDataParameter<>(DataSerializers.INT, DiskManipulatorNetworkNode.IO_MODE_INSERT, t -> t.getNode().getIoMode(), (t, v) -> { + public static final TileDataParameter IO_MODE = new TileDataParameter<>(EntityDataSerializers.INT, DiskManipulatorNetworkNode.IO_MODE_INSERT, t -> t.getNode().getIoMode(), (t, v) -> { t.getNode().setIoMode(v); t.getNode().markDirty(); }); @@ -45,8 +46,8 @@ public class DiskManipulatorTile extends NetworkNodeTile { - public static final TileDataParameter COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_TAG, new CompoundNBT(), - t -> t.getNode().getCoverManager().writeToNbt(), - (t, v) -> t.getNode().getCoverManager().readFromNbt(v), - (initial, p) -> {}); + public static final TileDataParameter COVER_MANAGER = new TileDataParameter<>(EntityDataSerializers.COMPOUND_TAG, new CompoundTag(), + t -> t.getNode().getCoverManager().writeToNbt(), + (t, v) -> t.getNode().getCoverManager().readFromNbt(v), + (initial, p) -> { + }); public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); - public ExporterTile() { - super(RSTiles.EXPORTER); + public ExporterTile(BlockPos pos, BlockState state) { + super(RSTiles.EXPORTER, pos, state); dataManager.addWatchedParameter(COMPARE); dataManager.addWatchedParameter(TYPE); @@ -38,7 +38,7 @@ public class ExporterTile extends NetworkNodeTile { @Override @Nonnull - public ExporterNetworkNode createNode(World world, BlockPos pos) { + public ExporterNetworkNode createNode(Level world, BlockPos pos) { return new ExporterNetworkNode(world, pos); } @@ -49,7 +49,7 @@ public class ExporterTile extends NetworkNodeTile { } @Override - public CompoundNBT writeUpdate(CompoundNBT tag) { + public CompoundTag writeUpdate(CompoundTag tag) { super.writeUpdate(tag); tag.put(CoverManager.NBT_COVER_MANAGER, this.getNode().getCoverManager().writeToNbt()); @@ -58,7 +58,7 @@ public class ExporterTile extends NetworkNodeTile { } @Override - public void readUpdate(CompoundNBT tag) { + public void readUpdate(CompoundTag tag) { super.readUpdate(tag); this.getNode().getCoverManager().readFromNbt(tag.getCompound(CoverManager.NBT_COVER_MANAGER)); diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/ExternalStorageTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/ExternalStorageTile.java index 4c34c9440..70c4b7f00 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/ExternalStorageTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/ExternalStorageTile.java @@ -7,15 +7,14 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.ExternalStorageNetwor import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager; import com.refinedmods.refinedstorage.tile.config.*; import com.refinedmods.refinedstorage.tile.data.RSSerializers; -import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelDataMap; import net.minecraftforge.fluids.FluidStack; @@ -55,13 +54,11 @@ public class ExternalStorageTile extends NetworkNodeTile COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_TAG, new CompoundNBT(), - t -> t.getNode().getCoverManager().writeToNbt(), - (t, v) -> t.getNode().getCoverManager().readFromNbt(v), - (initial, p) -> {}); + public static final TileDataParameter COVER_MANAGER = new TileDataParameter<>(EntityDataSerializers.COMPOUND_TAG, new CompoundTag(), t -> t.getNode().getCoverManager().writeToNbt(), (t, v) -> t.getNode().getCoverManager().readFromNbt(v), (initial, p) -> { + }); - public ExternalStorageTile() { - super(RSTiles.EXTERNAL_STORAGE); + public ExternalStorageTile(BlockPos pos, BlockState state) { + super(RSTiles.EXTERNAL_STORAGE, pos, state); dataManager.addWatchedParameter(PRIORITY); dataManager.addWatchedParameter(COMPARE); @@ -75,7 +72,7 @@ public class ExternalStorageTile extends NetworkNodeTile tankCapability = LazyOptional.of(() -> getNode().getTank()); private final LazyOptional inCapability = LazyOptional.of(() -> getNode().getIn()); - public FluidInterfaceTile() { - super(RSTiles.FLUID_INTERFACE); + public FluidInterfaceTile(BlockPos pos, BlockState state) { + super(RSTiles.FLUID_INTERFACE, pos, state); dataManager.addParameter(TANK_IN); dataManager.addParameter(TANK_OUT); @@ -46,7 +47,7 @@ public class FluidInterfaceTile extends NetworkNodeTile { private final FluidStorageType type; - public FluidStorageTile(FluidStorageType type) { - super(getType(type)); + public FluidStorageTile(FluidStorageType type, BlockPos pos, BlockState state) { + super(getType(type), pos, state); this.type = type; @@ -37,7 +38,7 @@ public class FluidStorageTile extends NetworkNodeTile { dataManager.addWatchedParameter(ACCESS_TYPE); } - public static TileEntityType getType(FluidStorageType type) { + public static BlockEntityType getType(FluidStorageType type) { switch (type) { case SIXTY_FOUR_K: return RSTiles.SIXTY_FOUR_K_FLUID_STORAGE_BLOCK; @@ -60,7 +61,7 @@ public class FluidStorageTile extends NetworkNodeTile { @Override @Nonnull - public FluidStorageNetworkNode createNode(World world, BlockPos pos) { + public FluidStorageNetworkNode createNode(Level world, BlockPos pos) { return new FluidStorageNetworkNode(world, pos, type); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/ImporterTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/ImporterTile.java index dac476c0e..75438f9c3 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/ImporterTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/ImporterTile.java @@ -6,14 +6,13 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager; import com.refinedmods.refinedstorage.tile.config.IComparable; import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; -import com.refinedmods.refinedstorage.tile.data.TileDataManager; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.client.Minecraft; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelDataMap; @@ -23,14 +22,11 @@ public class ImporterTile extends NetworkNodeTile { public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter WHITELIST_BLACKLIST = IWhitelistBlacklist.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); + public static final TileDataParameter COVER_MANAGER = new TileDataParameter<>(EntityDataSerializers.COMPOUND_TAG, new CompoundTag(), t -> t.getNode().getCoverManager().writeToNbt(), (t, v) -> t.getNode().getCoverManager().readFromNbt(v), (initial, p) -> { + }); - public static final TileDataParameter COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_TAG, new CompoundNBT(), - t -> t.getNode().getCoverManager().writeToNbt(), - (t, v) -> t.getNode().getCoverManager().readFromNbt(v), - (initial, p) -> {}); - - public ImporterTile() { - super(RSTiles.IMPORTER); + public ImporterTile(BlockPos pos, BlockState state) { + super(RSTiles.IMPORTER, pos, state); dataManager.addWatchedParameter(COMPARE); dataManager.addWatchedParameter(WHITELIST_BLACKLIST); @@ -40,7 +36,7 @@ public class ImporterTile extends NetworkNodeTile { @Override @Nonnull - public ImporterNetworkNode createNode(World world, BlockPos pos) { + public ImporterNetworkNode createNode(Level world, BlockPos pos) { return new ImporterNetworkNode(world, pos); } @@ -51,7 +47,7 @@ public class ImporterTile extends NetworkNodeTile { } @Override - public CompoundNBT writeUpdate(CompoundNBT tag) { + public CompoundTag writeUpdate(CompoundTag tag) { super.writeUpdate(tag); tag.put(CoverManager.NBT_COVER_MANAGER, this.getNode().getCoverManager().writeToNbt()); @@ -60,7 +56,7 @@ public class ImporterTile extends NetworkNodeTile { } @Override - public void readUpdate(CompoundNBT tag) { + public void readUpdate(CompoundTag tag) { super.readUpdate(tag); this.getNode().getCoverManager().readFromNbt(tag.getCompound(CoverManager.NBT_COVER_MANAGER)); diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/InterfaceTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/InterfaceTile.java index 4d35be264..672e7cb11 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/InterfaceTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/InterfaceTile.java @@ -4,9 +4,10 @@ import com.refinedmods.refinedstorage.RSTiles; import com.refinedmods.refinedstorage.apiimpl.network.node.InterfaceNetworkNode; import com.refinedmods.refinedstorage.tile.config.IComparable; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; @@ -20,8 +21,8 @@ public class InterfaceTile extends NetworkNodeTile { private final LazyOptional itemsCapability = LazyOptional.of(() -> getNode().getItems()); - public InterfaceTile() { - super(RSTiles.INTERFACE); + public InterfaceTile(BlockPos pos, BlockState state) { + super(RSTiles.INTERFACE, pos, state); dataManager.addWatchedParameter(COMPARE); } @@ -38,7 +39,7 @@ public class InterfaceTile extends NetworkNodeTile { @Override @Nonnull - public InterfaceNetworkNode createNode(World world, BlockPos pos) { + public InterfaceNetworkNode createNode(Level world, BlockPos pos) { return new InterfaceNetworkNode(world, pos); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/NetworkNodeTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/NetworkNodeTile.java index a6a4bc63f..a411953d3 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/NetworkNodeTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/NetworkNodeTile.java @@ -10,11 +10,12 @@ import com.refinedmods.refinedstorage.capability.NetworkNodeProxyCapability; import com.refinedmods.refinedstorage.tile.config.IRedstoneConfigurable; import com.refinedmods.refinedstorage.tile.config.RedstoneMode; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.tileentity.TileEntityType; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; @@ -23,14 +24,12 @@ import javax.annotation.Nullable; public abstract class NetworkNodeTile extends BaseTile implements INetworkNodeProxy, IRedstoneConfigurable { public static final TileDataParameter REDSTONE_MODE = RedstoneMode.createParameter(); - + private final LazyOptional> networkNodeProxy = LazyOptional.of(() -> this); private N clientNode; private N removedNode; - private final LazyOptional> networkNodeProxy = LazyOptional.of(() -> this); - - protected NetworkNodeTile(TileEntityType tileType) { - super(tileType); + protected NetworkNodeTile(BlockEntityType tileType, BlockPos pos, BlockState state) { + super(tileType, pos, state); dataManager.addWatchedParameter(REDSTONE_MODE); } @@ -57,7 +56,7 @@ public abstract class NetworkNodeTile extends BaseTile im return clientNode; } - INetworkNodeManager manager = API.instance().getNetworkNodeManager((ServerWorld) level); + INetworkNodeManager manager = API.instance().getNetworkNodeManager((ServerLevel) level); INetworkNode node = manager.getNode(worldPosition); @@ -73,7 +72,7 @@ public abstract class NetworkNodeTile extends BaseTile im super.clearRemoved(); if (!level.isClientSide) { - INetworkNodeManager manager = API.instance().getNetworkNodeManager((ServerWorld) level); + INetworkNodeManager manager = API.instance().getNetworkNodeManager((ServerLevel) level); if (manager.getNode(worldPosition) == null) { manager.setNode(worldPosition, createNode(level, worldPosition)); @@ -87,7 +86,7 @@ public abstract class NetworkNodeTile extends BaseTile im super.setRemoved(); if (!level.isClientSide) { - INetworkNodeManager manager = API.instance().getNetworkNodeManager((ServerWorld) level); + INetworkNodeManager manager = API.instance().getNetworkNodeManager((ServerLevel) level); INetworkNode node = manager.getNode(worldPosition); @@ -108,7 +107,7 @@ public abstract class NetworkNodeTile extends BaseTile im return removedNode; } - public abstract N createNode(World world, BlockPos pos); + public abstract N createNode(Level world, BlockPos pos); @Nonnull @Override diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/NetworkReceiverTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/NetworkReceiverTile.java index 52cd240e0..afb2d8cb5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/NetworkReceiverTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/NetworkReceiverTile.java @@ -2,19 +2,20 @@ package com.refinedmods.refinedstorage.tile; import com.refinedmods.refinedstorage.RSTiles; import com.refinedmods.refinedstorage.apiimpl.network.node.NetworkReceiverNetworkNode; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import javax.annotation.Nonnull; public class NetworkReceiverTile extends NetworkNodeTile { - public NetworkReceiverTile() { - super(RSTiles.NETWORK_RECEIVER); + public NetworkReceiverTile(BlockPos pos, BlockState state) { + super(RSTiles.NETWORK_RECEIVER, pos, state); } @Override @Nonnull - public NetworkReceiverNetworkNode createNode(World world, BlockPos pos) { + public NetworkReceiverNetworkNode createNode(Level world, BlockPos pos) { return new NetworkReceiverNetworkNode(world, pos); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/NetworkTransmitterTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/NetworkTransmitterTile.java index 190554ff9..d775cbaa0 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/NetworkTransmitterTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/NetworkTransmitterTile.java @@ -4,11 +4,12 @@ import com.refinedmods.refinedstorage.RSTiles; import com.refinedmods.refinedstorage.apiimpl.network.node.NetworkTransmitterNetworkNode; import com.refinedmods.refinedstorage.tile.data.RSSerializers; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; @@ -19,7 +20,7 @@ import javax.annotation.Nullable; import java.util.Optional; public class NetworkTransmitterTile extends NetworkNodeTile { - public static final TileDataParameter DISTANCE = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNode().getDistance()); + public static final TileDataParameter DISTANCE = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getDistance()); public static final TileDataParameter, NetworkTransmitterTile> RECEIVER_DIMENSION = new TileDataParameter<>(RSSerializers.OPTIONAL_RESOURCE_LOCATION_SERIALIZER, Optional.empty(), t -> { if (t.getNode().getReceiverDimension() != null) { return Optional.of(t.getNode().getReceiverDimension().location()); @@ -30,8 +31,8 @@ public class NetworkTransmitterTile extends NetworkNodeTile networkCardCapability = LazyOptional.of(() -> getNode().getNetworkCard()); - public NetworkTransmitterTile() { - super(RSTiles.NETWORK_TRANSMITTER); + public NetworkTransmitterTile(BlockPos pos, BlockState state) { + super(RSTiles.NETWORK_TRANSMITTER, pos, state); dataManager.addWatchedParameter(DISTANCE); dataManager.addWatchedParameter(RECEIVER_DIMENSION); @@ -39,7 +40,7 @@ public class NetworkTransmitterTile extends NetworkNodeTile { - public RelayTile() { - super(RSTiles.RELAY); + public RelayTile(BlockPos pos, BlockState state) { + super(RSTiles.RELAY, pos, state); } @Override @Nonnull - public RelayNetworkNode createNode(World world, BlockPos pos) { + public RelayNetworkNode createNode(Level world, BlockPos pos) { return new RelayNetworkNode(world, pos); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/SecurityManagerTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/SecurityManagerTile.java index 11b90e95c..bdffc98c0 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/SecurityManagerTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/SecurityManagerTile.java @@ -2,19 +2,20 @@ package com.refinedmods.refinedstorage.tile; import com.refinedmods.refinedstorage.RSTiles; import com.refinedmods.refinedstorage.apiimpl.network.node.SecurityManagerNetworkNode; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import javax.annotation.Nonnull; public class SecurityManagerTile extends NetworkNodeTile { - public SecurityManagerTile() { - super(RSTiles.SECURITY_MANAGER); + public SecurityManagerTile(BlockPos pos, BlockState state) { + super(RSTiles.SECURITY_MANAGER, pos, state); } @Override @Nonnull - public SecurityManagerNetworkNode createNode(World world, BlockPos pos) { + public SecurityManagerNetworkNode createNode(Level world, BlockPos pos) { return new SecurityManagerNetworkNode(world, pos); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/StorageMonitorTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/StorageMonitorTile.java index 312aa6d02..81cfe17ed 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/StorageMonitorTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/StorageMonitorTile.java @@ -5,10 +5,11 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.StorageMonitorNetwork import com.refinedmods.refinedstorage.tile.config.IComparable; import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; @@ -29,31 +30,31 @@ public class StorageMonitorTile extends NetworkNodeTile { private final ItemStorageType type; - public StorageTile(ItemStorageType type) { - super(getType(type)); + public StorageTile(ItemStorageType type, BlockPos pos, BlockState state) { + super(getType(type), pos, state); this.type = type; @@ -37,7 +38,7 @@ public class StorageTile extends NetworkNodeTile { dataManager.addWatchedParameter(ACCESS_TYPE); } - public static TileEntityType getType(ItemStorageType type) { + public static BlockEntityType getType(ItemStorageType type) { switch (type) { case ONE_K: return RSTiles.ONE_K_STORAGE_BLOCK; @@ -60,7 +61,7 @@ public class StorageTile extends NetworkNodeTile { @Override @Nonnull - public StorageNetworkNode createNode(World world, BlockPos pos) { + public StorageNetworkNode createNode(Level world, BlockPos pos) { return new StorageNetworkNode(world, pos, type); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/WirelessTransmitterTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/WirelessTransmitterTile.java index 141488b97..88bfe2d97 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/WirelessTransmitterTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/WirelessTransmitterTile.java @@ -3,24 +3,25 @@ package com.refinedmods.refinedstorage.tile; import com.refinedmods.refinedstorage.RSTiles; import com.refinedmods.refinedstorage.apiimpl.network.node.WirelessTransmitterNetworkNode; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import javax.annotation.Nonnull; public class WirelessTransmitterTile extends NetworkNodeTile { - public static final TileDataParameter RANGE = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNode().getRange()); + public static final TileDataParameter RANGE = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getRange()); - public WirelessTransmitterTile() { - super(RSTiles.WIRELESS_TRANSMITTER); + public WirelessTransmitterTile(BlockPos pos, BlockState state) { + super(RSTiles.WIRELESS_TRANSMITTER, pos, state); dataManager.addWatchedParameter(RANGE); } @Override @Nonnull - public WirelessTransmitterNetworkNode createNode(World world, BlockPos pos) { + public WirelessTransmitterNetworkNode createNode(Level world, BlockPos pos) { return new WirelessTransmitterNetworkNode(world, pos); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/config/IAccessType.java b/src/main/java/com/refinedmods/refinedstorage/tile/config/IAccessType.java index 24db387ec..ce5978de4 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/config/IAccessType.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/config/IAccessType.java @@ -4,10 +4,10 @@ import com.refinedmods.refinedstorage.api.network.node.INetworkNodeProxy; import com.refinedmods.refinedstorage.api.storage.AccessType; import com.refinedmods.refinedstorage.tile.data.RSSerializers; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.level.block.entity.BlockEntity; public interface IAccessType { - static > TileDataParameter createParameter() { + static > TileDataParameter createParameter() { return new TileDataParameter<>(RSSerializers.ACCESS_TYPE_SERIALIZER, AccessType.INSERT_EXTRACT, t -> ((IAccessType) t.getNode()).getAccessType(), (t, v) -> ((IAccessType) t.getNode()).setAccessType(v)); } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/config/IComparable.java b/src/main/java/com/refinedmods/refinedstorage/tile/config/IComparable.java index a0ca90ddd..ec04e5bb1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/config/IComparable.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/config/IComparable.java @@ -2,12 +2,12 @@ package com.refinedmods.refinedstorage.tile.config; import com.refinedmods.refinedstorage.api.network.node.INetworkNodeProxy; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.tileentity.TileEntity; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.block.entity.BlockEntity; public interface IComparable { - static > TileDataParameter createParameter() { - return new TileDataParameter<>(DataSerializers.INT, 0, t -> ((IComparable) t.getNode()).getCompare(), (t, v) -> ((IComparable) t.getNode()).setCompare(v)); + static > TileDataParameter createParameter() { + return new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> ((IComparable) t.getNode()).getCompare(), (t, v) -> ((IComparable) t.getNode()).setCompare(v)); } int getCompare(); diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/config/IPrioritizable.java b/src/main/java/com/refinedmods/refinedstorage/tile/config/IPrioritizable.java index e87484fc3..90bb6bed9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/config/IPrioritizable.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/config/IPrioritizable.java @@ -2,12 +2,12 @@ package com.refinedmods.refinedstorage.tile.config; import com.refinedmods.refinedstorage.api.network.node.INetworkNodeProxy; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.tileentity.TileEntity; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.block.entity.BlockEntity; public interface IPrioritizable { - static > TileDataParameter createParameter() { - return new TileDataParameter<>(DataSerializers.INT, 0, t -> ((IPrioritizable) t.getNode()).getPriority(), (t, v) -> ((IPrioritizable) t.getNode()).setPriority(v)); + static > TileDataParameter createParameter() { + return new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> ((IPrioritizable) t.getNode()).getPriority(), (t, v) -> ((IPrioritizable) t.getNode()).setPriority(v)); } int getPriority(); diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/config/IType.java b/src/main/java/com/refinedmods/refinedstorage/tile/config/IType.java index 59713fa47..8f9cac2f5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/config/IType.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/config/IType.java @@ -4,8 +4,8 @@ import com.refinedmods.refinedstorage.api.network.node.INetworkNodeProxy; import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; import com.refinedmods.refinedstorage.tile.data.TileDataParameterClientListener; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.tileentity.TileEntity; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nullable; @@ -14,15 +14,15 @@ public interface IType { int ITEMS = 0; int FLUIDS = 1; - static > TileDataParameter createParameter(@Nullable TileDataParameterClientListener clientListener) { - return new TileDataParameter<>(DataSerializers.INT, ITEMS, t -> ((IType) t.getNode()).getType(), (t, v) -> { + static > TileDataParameter createParameter(@Nullable TileDataParameterClientListener clientListener) { + return new TileDataParameter<>(EntityDataSerializers.INT, ITEMS, t -> ((IType) t.getNode()).getType(), (t, v) -> { if (v == IType.ITEMS || v == IType.FLUIDS) { ((IType) t.getNode()).setType(v); } }, clientListener); } - static > TileDataParameter createParameter() { + static > TileDataParameter createParameter() { return createParameter(null); } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/config/IWhitelistBlacklist.java b/src/main/java/com/refinedmods/refinedstorage/tile/config/IWhitelistBlacklist.java index 82de079ad..974dd1e0e 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/config/IWhitelistBlacklist.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/config/IWhitelistBlacklist.java @@ -4,9 +4,9 @@ import com.refinedmods.refinedstorage.api.network.node.INetworkNodeProxy; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.item.ItemStack; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.tileentity.TileEntity; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.IItemHandler; @@ -14,8 +14,8 @@ public interface IWhitelistBlacklist { int WHITELIST = 0; int BLACKLIST = 1; - static > TileDataParameter createParameter() { - return new TileDataParameter<>(DataSerializers.INT, 0, t -> ((IWhitelistBlacklist) t.getNode()).getWhitelistBlacklistMode(), (t, v) -> { + static > TileDataParameter createParameter() { + return new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> ((IWhitelistBlacklist) t.getNode()).getWhitelistBlacklistMode(), (t, v) -> { if (v == WHITELIST || v == BLACKLIST) { ((IWhitelistBlacklist) t.getNode()).setWhitelistBlacklistMode(v); } @@ -74,7 +74,7 @@ public interface IWhitelistBlacklist { return false; } - void setWhitelistBlacklistMode(int mode); - int getWhitelistBlacklistMode(); + + void setWhitelistBlacklistMode(int mode); } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/config/RedstoneMode.java b/src/main/java/com/refinedmods/refinedstorage/tile/config/RedstoneMode.java index b7a8c2c14..4597a39fc 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/config/RedstoneMode.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/config/RedstoneMode.java @@ -1,15 +1,31 @@ package com.refinedmods.refinedstorage.tile.config; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.tileentity.TileEntity; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.block.entity.BlockEntity; public enum RedstoneMode { IGNORE, HIGH, LOW; private static final String NBT = "RedstoneMode"; + public static RedstoneMode read(CompoundTag tag) { + if (tag.contains(RedstoneMode.NBT)) { + return getById(tag.getInt(NBT)); + } + + return IGNORE; + } + + public static RedstoneMode getById(int id) { + return id < 0 || id >= values().length ? IGNORE : values()[id]; + } + + public static TileDataParameter createParameter() { + return new TileDataParameter<>(EntityDataSerializers.INT, IGNORE.ordinal(), t -> t.getRedstoneMode().ordinal(), (t, v) -> t.setRedstoneMode(RedstoneMode.getById(v))); + } + public boolean isEnabled(boolean powered) { switch (this) { case IGNORE: @@ -23,23 +39,7 @@ public enum RedstoneMode { } } - public void write(CompoundNBT tag) { + public void write(CompoundTag tag) { tag.putInt(NBT, ordinal()); } - - public static RedstoneMode read(CompoundNBT tag) { - if (tag.contains(RedstoneMode.NBT)) { - return getById(tag.getInt(NBT)); - } - - return IGNORE; - } - - public static RedstoneMode getById(int id) { - return id < 0 || id >= values().length ? IGNORE : values()[id]; - } - - public static TileDataParameter createParameter() { - return new TileDataParameter<>(DataSerializers.INT, IGNORE.ordinal(), t -> t.getRedstoneMode().ordinal(), (t, v) -> t.setRedstoneMode(RedstoneMode.getById(v))); - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/craftingmonitor/CraftingMonitorTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/craftingmonitor/CraftingMonitorTile.java index 5038bca84..f62a5ea2f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/craftingmonitor/CraftingMonitorTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/craftingmonitor/CraftingMonitorTile.java @@ -4,16 +4,17 @@ import com.refinedmods.refinedstorage.RSTiles; import com.refinedmods.refinedstorage.apiimpl.network.node.CraftingMonitorNetworkNode; import com.refinedmods.refinedstorage.tile.NetworkNodeTile; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import javax.annotation.Nonnull; import java.util.Optional; import java.util.UUID; public class CraftingMonitorTile extends NetworkNodeTile { - public static final TileDataParameter, CraftingMonitorTile> TAB_SELECTED = new TileDataParameter<>(DataSerializers.OPTIONAL_UUID, Optional.empty(), t -> t.getNode().getTabSelected(), (t, v) -> { + public static final TileDataParameter, CraftingMonitorTile> TAB_SELECTED = new TileDataParameter<>(EntityDataSerializers.OPTIONAL_UUID, Optional.empty(), t -> t.getNode().getTabSelected(), (t, v) -> { if (v.isPresent() && t.getNode().getTabSelected().isPresent() && v.get().equals(t.getNode().getTabSelected().get())) { t.getNode().setTabSelected(Optional.empty()); } else { @@ -22,15 +23,15 @@ public class CraftingMonitorTile extends NetworkNodeTile TAB_PAGE = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNode().getTabPage(), (t, v) -> { + public static final TileDataParameter TAB_PAGE = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getTabPage(), (t, v) -> { if (v >= 0) { t.getNode().setTabPage(v); t.getNode().markDirty(); } }); - public CraftingMonitorTile() { - super(RSTiles.CRAFTING_MONITOR); + public CraftingMonitorTile(BlockPos pos, BlockState state) { + super(RSTiles.CRAFTING_MONITOR, pos, state); dataManager.addWatchedParameter(TAB_SELECTED); dataManager.addWatchedParameter(TAB_PAGE); @@ -38,7 +39,7 @@ public class CraftingMonitorTile extends NetworkNodeTile getRedstoneModeParameter(); @@ -28,7 +28,7 @@ public interface ICraftingMonitor { boolean isActiveOnClient(); - void onClosed(PlayerEntity player); + void onClosed(Player player); Optional getTabSelected(); diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java b/src/main/java/com/refinedmods/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java index bd1af13d5..8e82b14cd 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java @@ -10,15 +10,15 @@ import com.refinedmods.refinedstorage.item.WirelessCraftingMonitorItem; import com.refinedmods.refinedstorage.network.craftingmonitor.WirelessCraftingMonitorSettingsUpdateMessage; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; import com.refinedmods.refinedstorage.util.NetworkUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.ItemStack; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceKey; import net.minecraft.server.MinecraftServer; -import net.minecraft.util.RegistryKey; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import javax.annotation.Nullable; import java.util.Collection; @@ -30,11 +30,11 @@ public class WirelessCraftingMonitor implements ICraftingMonitor { private final ItemStack stack; @Nullable private final MinecraftServer server; - private final RegistryKey nodeDimension; + private final ResourceKey nodeDimension; private final BlockPos nodePos; + private final PlayerSlot slot; private int tabPage; private Optional tabSelected; - private final PlayerSlot slot; public WirelessCraftingMonitor(ItemStack stack, @Nullable MinecraftServer server, PlayerSlot slot) { this.stack = stack; @@ -56,12 +56,12 @@ public class WirelessCraftingMonitor implements ICraftingMonitor { } @Override - public ITextComponent getTitle() { - return new TranslationTextComponent("gui.refinedstorage.wireless_crafting_monitor"); + public Component getTitle() { + return new TranslatableComponent("gui.refinedstorage.wireless_crafting_monitor"); } @Override - public void onCancelled(ServerPlayerEntity player, @Nullable UUID id) { + public void onCancelled(ServerPlayer player, @Nullable UUID id) { INetwork network = getNetwork(); if (network != null) { @@ -98,7 +98,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor { } private INetwork getNetwork() { - World world = server.getLevel(nodeDimension); + Level world = server.getLevel(nodeDimension); if (world != null) { return NetworkUtils.getNetworkFromNode(NetworkUtils.getNodeFromTile(world.getBlockEntity(nodePos))); } @@ -116,7 +116,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor { } @Override - public void onClosed(PlayerEntity player) { + public void onClosed(Player player) { INetwork network = getNetwork(); if (network != null) { diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/data/RSSerializers.java b/src/main/java/com/refinedmods/refinedstorage/tile/data/RSSerializers.java index 70ea61f48..e857623e8 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/data/RSSerializers.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/data/RSSerializers.java @@ -3,21 +3,18 @@ package com.refinedmods.refinedstorage.tile.data; import com.refinedmods.refinedstorage.api.storage.AccessType; import com.refinedmods.refinedstorage.tile.ClientNode; import com.refinedmods.refinedstorage.util.AccessTypeUtils; -import net.minecraft.network.PacketBuffer; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.IDataSerializer; -import net.minecraft.util.ResourceLocation; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.network.syncher.EntityDataSerializer; +import net.minecraft.resources.ResourceLocation; import net.minecraftforge.fluids.FluidStack; import java.util.*; public final class RSSerializers { - private RSSerializers() { - } - - public static final IDataSerializer> CLIENT_NODE_SERIALIZER = new IDataSerializer>() { + public static final EntityDataSerializer> CLIENT_NODE_SERIALIZER = new EntityDataSerializer>() { @Override - public void write(PacketBuffer buf, List nodes) { + public void write(FriendlyByteBuf buf, List nodes) { buf.writeInt(nodes.size()); for (ClientNode node : nodes) { @@ -28,7 +25,7 @@ public final class RSSerializers { } @Override - public List read(PacketBuffer buf) { + public List read(FriendlyByteBuf buf) { List nodes = new ArrayList<>(); int size = buf.readInt(); @@ -41,7 +38,7 @@ public final class RSSerializers { } @Override - public DataParameter> createAccessor(int id) { + public EntityDataAccessor> createAccessor(int id) { return null; } @@ -50,20 +47,19 @@ public final class RSSerializers { return value; } }; - - public static final IDataSerializer FLUID_STACK_SERIALIZER = new IDataSerializer() { + public static final EntityDataSerializer FLUID_STACK_SERIALIZER = new EntityDataSerializer() { @Override - public void write(PacketBuffer buf, FluidStack value) { + public void write(FriendlyByteBuf buf, FluidStack value) { value.writeToPacket(buf); } @Override - public FluidStack read(PacketBuffer buf) { + public FluidStack read(FriendlyByteBuf buf) { return FluidStack.readFromPacket(buf); } @Override - public DataParameter createAccessor(int id) { + public EntityDataAccessor createAccessor(int id) { return null; } @@ -72,20 +68,19 @@ public final class RSSerializers { return value; } }; - - public static final IDataSerializer ACCESS_TYPE_SERIALIZER = new IDataSerializer() { + public static final EntityDataSerializer ACCESS_TYPE_SERIALIZER = new EntityDataSerializer() { @Override - public void write(PacketBuffer buf, AccessType value) { + public void write(FriendlyByteBuf buf, AccessType value) { buf.writeInt(value.getId()); } @Override - public AccessType read(PacketBuffer buf) { + public AccessType read(FriendlyByteBuf buf) { return AccessTypeUtils.getAccessType(buf.readInt()); } @Override - public DataParameter createAccessor(int id) { + public EntityDataAccessor createAccessor(int id) { return null; } @@ -94,20 +89,19 @@ public final class RSSerializers { return value; } }; - - public static final IDataSerializer LONG_SERIALIZER = new IDataSerializer() { + public static final EntityDataSerializer LONG_SERIALIZER = new EntityDataSerializer() { @Override - public void write(PacketBuffer buf, Long value) { + public void write(FriendlyByteBuf buf, Long value) { buf.writeLong(value); } @Override - public Long read(PacketBuffer buf) { + public Long read(FriendlyByteBuf buf) { return buf.readLong(); } @Override - public DataParameter createAccessor(int id) { + public EntityDataAccessor createAccessor(int id) { return null; } @@ -116,17 +110,16 @@ public final class RSSerializers { return value; } }; - - public static final IDataSerializer> OPTIONAL_RESOURCE_LOCATION_SERIALIZER = new IDataSerializer>() { + public static final EntityDataSerializer> OPTIONAL_RESOURCE_LOCATION_SERIALIZER = new EntityDataSerializer>() { @Override - public void write(PacketBuffer buf, Optional value) { + public void write(FriendlyByteBuf buf, Optional value) { buf.writeBoolean(value.isPresent()); value.ifPresent(buf::writeResourceLocation); } @Override - public Optional read(PacketBuffer buf) { + public Optional read(FriendlyByteBuf buf) { if (!buf.readBoolean()) { return Optional.empty(); } @@ -135,7 +128,7 @@ public final class RSSerializers { } @Override - public DataParameter> createAccessor(int id) { + public EntityDataAccessor> createAccessor(int id) { return null; } @@ -144,10 +137,9 @@ public final class RSSerializers { return value; } }; - - public static final IDataSerializer>> LIST_OF_SET_SERIALIZER = new IDataSerializer>>() { + public static final EntityDataSerializer>> LIST_OF_SET_SERIALIZER = new EntityDataSerializer>>() { @Override - public void write(PacketBuffer buf, List> value) { + public void write(FriendlyByteBuf buf, List> value) { buf.writeInt(value.size()); for (Set values : value) { @@ -158,7 +150,7 @@ public final class RSSerializers { } @Override - public List> read(PacketBuffer buf) { + public List> read(FriendlyByteBuf buf) { List> value = new ArrayList<>(); int size = buf.readInt(); @@ -178,7 +170,7 @@ public final class RSSerializers { } @Override - public DataParameter>> createAccessor(int id) { + public EntityDataAccessor>> createAccessor(int id) { return null; } @@ -187,4 +179,7 @@ public final class RSSerializers { return value; } }; + + private RSSerializers() { + } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/data/TileDataManager.java b/src/main/java/com/refinedmods/refinedstorage/tile/data/TileDataManager.java index 983132efc..fb93c3fda 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/data/TileDataManager.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/data/TileDataManager.java @@ -2,7 +2,7 @@ package com.refinedmods.refinedstorage.tile.data; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.network.tiledata.TileDataParameterUpdateMessage; -import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.level.block.entity.BlockEntity; import java.util.ArrayList; import java.util.HashMap; @@ -11,21 +11,34 @@ import java.util.Map; import java.util.concurrent.CopyOnWriteArrayList; public class TileDataManager { - private static int lastId = 0; private static final Map REGISTRY = new HashMap<>(); - - private final TileEntity tile; + private static int lastId = 0; + private final BlockEntity tile; private final List parameters = new ArrayList<>(); private final List watchedParameters = new ArrayList<>(); private final List watchers = new CopyOnWriteArrayList<>(); - public TileDataManager(TileEntity tile) { + public TileDataManager(BlockEntity tile) { this.tile = tile; } - public TileEntity getTile() { + public static void registerParameter(TileDataParameter parameter) { + parameter.setId(lastId); + + REGISTRY.put(lastId++, parameter); + } + + public static TileDataParameter getParameter(int id) { + return REGISTRY.get(id); + } + + public static void setParameter(TileDataParameter parameter, Object value) { + RS.NETWORK_HANDLER.sendToServer(new TileDataParameterUpdateMessage(parameter, value)); + } + + public BlockEntity getTile() { return tile; } @@ -58,18 +71,4 @@ public class TileDataManager { public void sendParameterToWatchers(TileDataParameter parameter) { watchers.forEach(l -> l.sendParameter(false, parameter)); } - - public static void registerParameter(TileDataParameter parameter) { - parameter.setId(lastId); - - REGISTRY.put(lastId++, parameter); - } - - public static TileDataParameter getParameter(int id) { - return REGISTRY.get(id); - } - - public static void setParameter(TileDataParameter parameter, Object value) { - RS.NETWORK_HANDLER.sendToServer(new TileDataParameterUpdateMessage(parameter, value)); - } } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/data/TileDataParameter.java b/src/main/java/com/refinedmods/refinedstorage/tile/data/TileDataParameter.java index a466a0147..bb406cbed 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/data/TileDataParameter.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/data/TileDataParameter.java @@ -1,31 +1,31 @@ package com.refinedmods.refinedstorage.tile.data; -import net.minecraft.network.datasync.IDataSerializer; -import net.minecraft.tileentity.TileEntity; +import net.minecraft.network.syncher.EntityDataSerializer; +import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nullable; import java.util.function.BiConsumer; import java.util.function.Function; -public class TileDataParameter { - private int id; - private final IDataSerializer serializer; +public class TileDataParameter { + private final EntityDataSerializer serializer; private final Function valueProducer; @Nullable private final BiConsumer valueConsumer; @Nullable private final TileDataParameterClientListener listener; + private int id; private T value; - public TileDataParameter(IDataSerializer serializer, T defaultValue, Function producer) { + public TileDataParameter(EntityDataSerializer serializer, T defaultValue, Function producer) { this(serializer, defaultValue, producer, null); } - public TileDataParameter(IDataSerializer serializer, T defaultValue, Function producer, @Nullable BiConsumer consumer) { + public TileDataParameter(EntityDataSerializer serializer, T defaultValue, Function producer, @Nullable BiConsumer consumer) { this(serializer, defaultValue, producer, consumer, null); } - public TileDataParameter(IDataSerializer serializer, T defaultValue, Function producer, @Nullable BiConsumer consumer, @Nullable TileDataParameterClientListener listener) { + public TileDataParameter(EntityDataSerializer serializer, T defaultValue, Function producer, @Nullable BiConsumer consumer, @Nullable TileDataParameterClientListener listener) { this.value = defaultValue; this.serializer = serializer; this.valueProducer = producer; @@ -33,15 +33,15 @@ public class TileDataParameter { this.listener = listener; } - public void setId(int id) { - this.id = id; - } - public int getId() { return id; } - public IDataSerializer getSerializer() { + public void setId(int id) { + this.id = id; + } + + public EntityDataSerializer getSerializer() { return serializer; } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/data/TileDataWatcher.java b/src/main/java/com/refinedmods/refinedstorage/tile/data/TileDataWatcher.java index 1d64af039..8c1b47e38 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/data/TileDataWatcher.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/data/TileDataWatcher.java @@ -2,16 +2,15 @@ package com.refinedmods.refinedstorage.tile.data; import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.network.tiledata.TileDataParameterMessage; -import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.server.level.ServerPlayer; public class TileDataWatcher { - private boolean sentInitial; - private final ServerPlayerEntity player; + private final ServerPlayer player; private final TileDataManager manager; - + private boolean sentInitial; private Object[] cache; - public TileDataWatcher(ServerPlayerEntity player, TileDataManager manager) { + public TileDataWatcher(ServerPlayer player, TileDataManager manager) { this.player = player; this.manager = manager; @@ -21,7 +20,7 @@ public class TileDataWatcher { } } - public ServerPlayerEntity getPlayer() { + public ServerPlayer getPlayer() { return player; } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/grid/GridTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/grid/GridTile.java index 724b52591..60ca0ae2d 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/grid/GridTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/grid/GridTile.java @@ -10,12 +10,13 @@ import com.refinedmods.refinedstorage.tile.NetworkNodeTile; import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.data.RSSerializers; import com.refinedmods.refinedstorage.tile.data.TileDataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.tileentity.TileEntityType; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; @@ -28,71 +29,63 @@ import java.util.List; import java.util.Set; public class GridTile extends NetworkNodeTile { - public static final TileDataParameter VIEW_TYPE = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNode().getViewType(), (t, v) -> { + public static final TileDataParameter EXACT_PATTERN = new TileDataParameter<>(EntityDataSerializers.BOOLEAN, true, t -> t.getNode().isExactPattern(), (t, v) -> { + t.getNode().setExactPattern(v); + t.getNode().markDirty(); + }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, grid -> grid.updateExactPattern(p))); + public static final TileDataParameter VIEW_TYPE = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getViewType(), (t, v) -> { if (IGrid.isValidViewType(v)) { t.getNode().setViewType(v); t.getNode().markDirty(); } }, (initial, p) -> trySortGrid(initial)); - public static final TileDataParameter SORTING_DIRECTION = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNode().getSortingDirection(), (t, v) -> { + public static final TileDataParameter PROCESSING_TYPE = IType.createParameter((initial, p) -> BaseScreen.executeLater(GridScreen.class, BaseScreen::init)); + public static final TileDataParameter SORTING_DIRECTION = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getSortingDirection(), (t, v) -> { if (IGrid.isValidSortingDirection(v)) { t.getNode().setSortingDirection(v); t.getNode().markDirty(); } }, (initial, p) -> trySortGrid(initial)); - public static final TileDataParameter SORTING_TYPE = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNode().getSortingType(), (t, v) -> { + public static final TileDataParameter>, GridTile> ALLOWED_ITEM_TAGS = new TileDataParameter<>(RSSerializers.LIST_OF_SET_SERIALIZER, new ArrayList<>(), t -> t.getNode().getAllowedTagList().getAllowedItemTags(), (t, v) -> t.getNode().getAllowedTagList().setAllowedItemTags(v)); + public static final TileDataParameter SORTING_TYPE = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getSortingType(), (t, v) -> { if (IGrid.isValidSortingType(v)) { t.getNode().setSortingType(v); t.getNode().markDirty(); } }, (initial, p) -> trySortGrid(initial)); - public static final TileDataParameter SEARCH_BOX_MODE = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNode().getSearchBoxMode(), (t, v) -> { + public static final TileDataParameter>, GridTile> ALLOWED_FLUID_TAGS = new TileDataParameter<>(RSSerializers.LIST_OF_SET_SERIALIZER, new ArrayList<>(), t -> t.getNode().getAllowedTagList().getAllowedFluidTags(), (t, v) -> t.getNode().getAllowedTagList().setAllowedFluidTags(v)); + public static final TileDataParameter SEARCH_BOX_MODE = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getSearchBoxMode(), (t, v) -> { if (IGrid.isValidSearchBoxMode(v)) { t.getNode().setSearchBoxMode(v); t.getNode().markDirty(); } }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, grid -> grid.getSearchField().setMode(p))); - public static final TileDataParameter SIZE = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNode().getSize(), (t, v) -> { + private final GridType type; + public static final TileDataParameter SIZE = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getSize(), (t, v) -> { if (IGrid.isValidSize(v)) { t.getNode().setSize(v); t.getNode().markDirty(); } }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, grid -> grid.resize(grid.getMinecraft(), grid.width, grid.height))); - public static final TileDataParameter TAB_SELECTED = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNode().getTabSelected(), (t, v) -> { + private final LazyOptional diskCapability = LazyOptional.of(() -> getNode().getPatterns()); + public static final TileDataParameter TAB_SELECTED = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getTabSelected(), (t, v) -> { t.getNode().setTabSelected(v == t.getNode().getTabSelected() ? -1 : v); t.getNode().markDirty(); }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort())); - public static final TileDataParameter TAB_PAGE = new TileDataParameter<>(DataSerializers.INT, 0, t -> t.getNode().getTabPage(), (t, v) -> { + public static final TileDataParameter TAB_PAGE = new TileDataParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getTabPage(), (t, v) -> { if (v >= 0 && v <= t.getNode().getTotalTabPages()) { t.getNode().setTabPage(v); t.getNode().markDirty(); } }); - public static final TileDataParameter EXACT_PATTERN = new TileDataParameter<>(DataSerializers.BOOLEAN, true, t -> t.getNode().isExactPattern(), (t, v) -> { - t.getNode().setExactPattern(v); - t.getNode().markDirty(); - }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, grid -> grid.updateExactPattern(p))); - public static final TileDataParameter PROCESSING_PATTERN = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isProcessingPattern(), (t, v) -> { + public static final TileDataParameter PROCESSING_PATTERN = new TileDataParameter<>(EntityDataSerializers.BOOLEAN, false, t -> t.getNode().isProcessingPattern(), (t, v) -> { t.getNode().setProcessingPattern(v); t.getNode().clearMatrix(); t.getNode().markDirty(); }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, BaseScreen::init)); - public static final TileDataParameter PROCESSING_TYPE = IType.createParameter((initial, p) -> BaseScreen.executeLater(GridScreen.class, BaseScreen::init)); - public static final TileDataParameter>, GridTile> ALLOWED_ITEM_TAGS = new TileDataParameter<>(RSSerializers.LIST_OF_SET_SERIALIZER, new ArrayList<>(), t -> t.getNode().getAllowedTagList().getAllowedItemTags(), (t, v) -> t.getNode().getAllowedTagList().setAllowedItemTags(v)); - public static final TileDataParameter>, GridTile> ALLOWED_FLUID_TAGS = new TileDataParameter<>(RSSerializers.LIST_OF_SET_SERIALIZER, new ArrayList<>(), t -> t.getNode().getAllowedTagList().getAllowedFluidTags(), (t, v) -> t.getNode().getAllowedTagList().setAllowedFluidTags(v)); - public static void trySortGrid(boolean initial) { - if (!initial) { - BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); - } - } - - private final GridType type; - - private final LazyOptional diskCapability = LazyOptional.of(() -> getNode().getPatterns()); - - public GridTile(GridType type) { - super(getType(type)); + public GridTile(GridType type, BlockPos pos, BlockState state) { + super(getType(type), pos, state); this.type = type; @@ -110,7 +103,14 @@ public class GridTile extends NetworkNodeTile { dataManager.addParameter(ALLOWED_FLUID_TAGS); } - public static TileEntityType getType(GridType type) { + + public static void trySortGrid(boolean initial) { + if (!initial) { + BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); + } + } + + public static BlockEntityType getType(GridType type) { switch (type) { case NORMAL: return RSTiles.GRID; @@ -127,7 +127,7 @@ public class GridTile extends NetworkNodeTile { @Override @Nonnull - public GridNetworkNode createNode(World world, BlockPos pos) { + public GridNetworkNode createNode(Level world, BlockPos pos) { return new GridNetworkNode(world, pos, type); } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/grid/WirelessFluidGrid.java b/src/main/java/com/refinedmods/refinedstorage/tile/grid/WirelessFluidGrid.java index c89ac11ab..b9192e4ce 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/grid/WirelessFluidGrid.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/grid/WirelessFluidGrid.java @@ -19,18 +19,18 @@ import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.screen.grid.GridScreen; import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.CraftResultInventory; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceKey; import net.minecraft.server.MinecraftServer; -import net.minecraft.util.RegistryKey; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.inventory.ResultContainer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nullable; @@ -38,13 +38,22 @@ import java.util.ArrayList; import java.util.List; public class WirelessFluidGrid implements INetworkAwareGrid { - private ItemStack stack; @Nullable private final MinecraftServer server; - private final RegistryKey nodeDimension; + private final ResourceKey nodeDimension; private final BlockPos nodePos; private final PlayerSlot slot; + private final List filters = new ArrayList<>(); + private final List tabs = new ArrayList<>(); + private ItemStack stack; + private final FilterItemHandler filter = (FilterItemHandler) new FilterItemHandler(filters, tabs) + .addListener(((handler, slot, reading) -> { + if (!stack.hasTag()) { + stack.setTag(new CompoundTag()); + } + StackUtils.writeItems(handler, 0, stack.getTag()); + })); private int sortingType; private int sortingDirection; private int searchBoxMode; @@ -52,17 +61,6 @@ public class WirelessFluidGrid implements INetworkAwareGrid { private int tabPage; private int size; - private final List filters = new ArrayList<>(); - private final List tabs = new ArrayList<>(); - private final FilterItemHandler filter = (FilterItemHandler) new FilterItemHandler(filters, tabs) - .addListener(((handler, slot, reading) -> { - if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); - } - - StackUtils.writeItems(handler, 0, stack.getTag()); - })); - public WirelessFluidGrid(ItemStack stack, @Nullable MinecraftServer server, PlayerSlot slot) { this.stack = stack; this.server = server; @@ -94,7 +92,7 @@ public class WirelessFluidGrid implements INetworkAwareGrid { @Override @Nullable public INetwork getNetwork() { - World world = server.getLevel(nodeDimension); + Level world = server.getLevel(nodeDimension); if (world != null) { return NetworkUtils.getNetworkFromNode(NetworkUtils.getNodeFromTile(world.getBlockEntity(nodePos))); } @@ -103,7 +101,7 @@ public class WirelessFluidGrid implements INetworkAwareGrid { } @Override - public IStorageCacheListener createListener(ServerPlayerEntity player) { + public IStorageCacheListener createListener(ServerPlayer player) { return new FluidGridStorageCacheListener(player, getNetwork()); } @@ -140,8 +138,8 @@ public class WirelessFluidGrid implements INetworkAwareGrid { } @Override - public ITextComponent getTitle() { - return new TranslationTextComponent("gui.refinedstorage.fluid_grid"); + public Component getTitle() { + return new TranslatableComponent("gui.refinedstorage.fluid_grid"); } @Override @@ -257,12 +255,12 @@ public class WirelessFluidGrid implements INetworkAwareGrid { } @Override - public CraftingInventory getCraftingMatrix() { + public CraftingContainer getCraftingMatrix() { return null; } @Override - public CraftResultInventory getCraftingResult() { + public ResultContainer getCraftingResult() { return null; } @@ -272,22 +270,22 @@ public class WirelessFluidGrid implements INetworkAwareGrid { } @Override - public void onCrafted(PlayerEntity player, @Nullable IStackList availableItems, @Nullable IStackList usedItems) { + public void onCrafted(Player player, @Nullable IStackList availableItems, @Nullable IStackList usedItems) { // NO OP } @Override - public void onClear(PlayerEntity player) { + public void onClear(Player player) { // NO OP } @Override - public void onCraftedShift(PlayerEntity player) { + public void onCraftedShift(Player player) { // NO OP } @Override - public void onRecipeTransfer(PlayerEntity player, ItemStack[][] recipe) { + public void onRecipeTransfer(Player player, ItemStack[][] recipe) { // NO OP } @@ -302,7 +300,7 @@ public class WirelessFluidGrid implements INetworkAwareGrid { } @Override - public void onClosed(PlayerEntity player) { + public void onClosed(Player player) { INetwork network = getNetwork(); if (network != null) { diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/com/refinedmods/refinedstorage/tile/grid/WirelessGrid.java index 2a1c0cfa0..743a0f210 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/grid/WirelessGrid.java @@ -19,18 +19,18 @@ import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.screen.grid.GridScreen; import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.CraftResultInventory; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceKey; import net.minecraft.server.MinecraftServer; -import net.minecraft.util.RegistryKey; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.inventory.ResultContainer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nullable; @@ -38,13 +38,22 @@ import java.util.ArrayList; import java.util.List; public class WirelessGrid implements INetworkAwareGrid { - private ItemStack stack; @Nullable private final MinecraftServer server; - private final RegistryKey nodeDimension; + private final ResourceKey nodeDimension; private final BlockPos nodePos; private final PlayerSlot slot; + private final List filters = new ArrayList<>(); + private final List tabs = new ArrayList<>(); + private ItemStack stack; + private final FilterItemHandler filter = (FilterItemHandler) new FilterItemHandler(filters, tabs) + .addListener((handler, slot, reading) -> { + if (!stack.hasTag()) { + stack.setTag(new CompoundTag()); + } + StackUtils.writeItems(handler, 0, stack.getTag()); + }); private int viewType; private int sortingType; private int sortingDirection; @@ -53,17 +62,6 @@ public class WirelessGrid implements INetworkAwareGrid { private int tabPage; private int size; - private final List filters = new ArrayList<>(); - private final List tabs = new ArrayList<>(); - private final FilterItemHandler filter = (FilterItemHandler) new FilterItemHandler(filters, tabs) - .addListener((handler, slot, reading) -> { - if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); - } - - StackUtils.writeItems(handler, 0, stack.getTag()); - }); - public WirelessGrid(ItemStack stack, @Nullable MinecraftServer server, PlayerSlot slot) { this.stack = stack; this.server = server; @@ -96,7 +94,7 @@ public class WirelessGrid implements INetworkAwareGrid { @Override @Nullable public INetwork getNetwork() { - World world = server.getLevel(nodeDimension); + Level world = server.getLevel(nodeDimension); if (world != null) { return NetworkUtils.getNetworkFromNode(NetworkUtils.getNodeFromTile(world.getBlockEntity(nodePos))); } @@ -105,7 +103,7 @@ public class WirelessGrid implements INetworkAwareGrid { } @Override - public IStorageCacheListener createListener(ServerPlayerEntity player) { + public IStorageCacheListener createListener(ServerPlayer player) { return new ItemGridStorageCacheListener(player, getNetwork()); } @@ -142,8 +140,8 @@ public class WirelessGrid implements INetworkAwareGrid { } @Override - public ITextComponent getTitle() { - return new TranslationTextComponent("gui.refinedstorage.grid"); + public Component getTitle() { + return new TranslatableComponent("gui.refinedstorage.grid"); } @Override @@ -263,12 +261,12 @@ public class WirelessGrid implements INetworkAwareGrid { } @Override - public CraftingInventory getCraftingMatrix() { + public CraftingContainer getCraftingMatrix() { return null; } @Override - public CraftResultInventory getCraftingResult() { + public ResultContainer getCraftingResult() { return null; } @@ -278,22 +276,22 @@ public class WirelessGrid implements INetworkAwareGrid { } @Override - public void onCrafted(PlayerEntity player, @Nullable IStackList availableItems, @Nullable IStackList usedItems) { + public void onCrafted(Player player, @Nullable IStackList availableItems, @Nullable IStackList usedItems) { // NO OP } @Override - public void onClear(PlayerEntity player) { + public void onClear(Player player) { // NO OP } @Override - public void onCraftedShift(PlayerEntity player) { + public void onCraftedShift(Player player) { // NO OP } @Override - public void onRecipeTransfer(PlayerEntity player, ItemStack[][] recipe) { + public void onRecipeTransfer(Player player, ItemStack[][] recipe) { // NO OP } @@ -308,7 +306,7 @@ public class WirelessGrid implements INetworkAwareGrid { } @Override - public void onClosed(PlayerEntity player) { + public void onClosed(Player player) { INetwork network = getNetwork(); if (network != null) { diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/IPortableGrid.java b/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/IPortableGrid.java index 37130dfda..643ec8eee 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/IPortableGrid.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/IPortableGrid.java @@ -4,7 +4,7 @@ import com.refinedmods.refinedstorage.api.storage.cache.IStorageCache; import com.refinedmods.refinedstorage.api.storage.disk.IStorageDisk; import com.refinedmods.refinedstorage.api.storage.tracker.IStorageTracker; import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.IItemHandlerModifiable; diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/PortableGrid.java b/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/PortableGrid.java index e0c5e1e70..387abede3 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/PortableGrid.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/PortableGrid.java @@ -40,16 +40,16 @@ import com.refinedmods.refinedstorage.network.grid.PortableGridSettingsUpdateMes import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.screen.grid.GridScreen; import com.refinedmods.refinedstorage.util.StackUtils; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.CraftResultInventory; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.server.ServerWorld; -import net.minecraftforge.common.util.Constants; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.inventory.ResultContainer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.nbt.Tag; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.items.IItemHandlerModifiable; @@ -64,45 +64,82 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer static final String NBT_ITEM_STORAGE_TRACKER_ID = "ItemStorageTrackerId"; static final String NBT_FLUID_STORAGE_TRACKER = "FluidStorageTracker"; // TODO: remove next version static final String NBT_FLUID_STORAGE_TRACKER_ID = "FluidStorageTrackerId"; - + private final PortableItemGridHandler itemHandler = new PortableItemGridHandler(this, this); + private final PortableFluidGridHandler fluidHandler = new PortableFluidGridHandler(this); + private final PlayerSlot slot; + private final List filters = new ArrayList<>(); + private final List tabs = new ArrayList<>(); @Nullable private IStorageDisk storage; @Nullable private IStorageCache cache; - - private final PortableItemGridHandler itemHandler = new PortableItemGridHandler(this, this); - private final PortableFluidGridHandler fluidHandler = new PortableFluidGridHandler(this); - @Nullable - private PlayerEntity player; + private Player player; private ItemStack stack; - private final PlayerSlot slot; + private final FilterItemHandler filter = (FilterItemHandler) new FilterItemHandler(filters, tabs) + .addListener((handler, slot, reading) -> { + if (!stack.hasTag()) { + stack.setTag(new CompoundTag()); + } + StackUtils.writeItems(handler, 0, stack.getTag()); + }); private int sortingType; private int sortingDirection; private int searchBoxMode; private int tabSelected; private int tabPage; private int size; - private ItemStorageTracker itemStorageTracker; private UUID itemStorageTrackerId; private FluidStorageTracker fluidStorageTracker; private UUID fluidStorageTrackerId; - private final List filters = new ArrayList<>(); - private final List tabs = new ArrayList<>(); + public PortableGrid(@Nullable Player player, ItemStack stack, PlayerSlot slot) { + this.player = player; + this.stack = stack; + this.slot = slot; - private final FilterItemHandler filter = (FilterItemHandler) new FilterItemHandler(filters, tabs) - .addListener((handler, slot, reading) -> { - if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); + this.sortingType = WirelessGridItem.getSortingType(stack); + this.sortingDirection = WirelessGridItem.getSortingDirection(stack); + this.searchBoxMode = WirelessGridItem.getSearchBoxMode(stack); + this.tabSelected = WirelessGridItem.getTabSelected(stack); + this.tabPage = WirelessGridItem.getTabPage(stack); + this.size = WirelessGridItem.getSize(stack); + + if (!stack.hasTag()) { + stack.setTag(new CompoundTag()); + } + if (player != null) { //baked model does not need a storage tracker + if (stack.getTag().contains(NBT_ITEM_STORAGE_TRACKER_ID)) { + itemStorageTrackerId = stack.getTag().getUUID(NBT_ITEM_STORAGE_TRACKER_ID); + } else { + if (stack.getTag().contains(NBT_STORAGE_TRACKER)) { //TODO: remove next version + getItemStorageTracker().readFromNbt(stack.getTag().getList(NBT_STORAGE_TRACKER, Tag.TAG_COMPOUND)); + } + + UUID id = UUID.randomUUID(); + stack.getTag().putUUID(NBT_ITEM_STORAGE_TRACKER_ID, id); + itemStorageTrackerId = id; } - StackUtils.writeItems(handler, 0, stack.getTag()); - }); + if (stack.getTag().contains(NBT_FLUID_STORAGE_TRACKER_ID)) { + fluidStorageTrackerId = stack.getTag().getUUID(NBT_FLUID_STORAGE_TRACKER_ID); + } else { + if (stack.getTag().contains(NBT_FLUID_STORAGE_TRACKER)) { //TODO: remove next version + getFluidStorageTracker().readFromNbt(stack.getTag().getList(NBT_FLUID_STORAGE_TRACKER, Tag.TAG_COMPOUND)); + } - private final BaseItemHandler disk = new BaseItemHandler(1) + UUID id = UUID.randomUUID(); + stack.getTag().putUUID(NBT_FLUID_STORAGE_TRACKER_ID, id); + fluidStorageTrackerId = id; + } + } + + + StackUtils.readItems(disk, 4, stack.getTag()); + StackUtils.readItems(filter, 0, stack.getTag()); + } private final BaseItemHandler disk = new BaseItemHandler(1) .addValidator(new StorageDiskItemValidator()) .addListener(((handler, slot, reading) -> { if (player != null && !player.level.isClientSide) { @@ -112,7 +149,7 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer storage = null; cache = null; } else { - IStorageDisk diskInSlot = API.instance().getStorageDiskManager((ServerWorld) player.level).getByStack(getDiskInventory().getStackInSlot(0)); + IStorageDisk diskInSlot = API.instance().getStorageDiskManager((ServerLevel) player.level).getByStack(getDiskInventory().getStackInSlot(0)); if (diskInSlot != null) { StorageType type = ((IStorageDiskProvider) getDiskInventory().getStackInSlot(0).getItem()).getType(); @@ -140,52 +177,6 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer } })); - public PortableGrid(@Nullable PlayerEntity player, ItemStack stack, PlayerSlot slot) { - this.player = player; - this.stack = stack; - this.slot = slot; - - this.sortingType = WirelessGridItem.getSortingType(stack); - this.sortingDirection = WirelessGridItem.getSortingDirection(stack); - this.searchBoxMode = WirelessGridItem.getSearchBoxMode(stack); - this.tabSelected = WirelessGridItem.getTabSelected(stack); - this.tabPage = WirelessGridItem.getTabPage(stack); - this.size = WirelessGridItem.getSize(stack); - - if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); - } - if (player != null) { //baked model does not need a storage tracker - if (stack.getTag().contains(NBT_ITEM_STORAGE_TRACKER_ID)) { - itemStorageTrackerId = stack.getTag().getUUID(NBT_ITEM_STORAGE_TRACKER_ID); - } else { - if (stack.getTag().contains(NBT_STORAGE_TRACKER)) { //TODO: remove next version - getItemStorageTracker().readFromNbt(stack.getTag().getList(NBT_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND)); - } - - UUID id = UUID.randomUUID(); - stack.getTag().putUUID(NBT_ITEM_STORAGE_TRACKER_ID, id); - itemStorageTrackerId = id; - } - - if (stack.getTag().contains(NBT_FLUID_STORAGE_TRACKER_ID)) { - fluidStorageTrackerId = stack.getTag().getUUID(NBT_FLUID_STORAGE_TRACKER_ID); - } else { - if (stack.getTag().contains(NBT_FLUID_STORAGE_TRACKER)) { //TODO: remove next version - getFluidStorageTracker().readFromNbt(stack.getTag().getList(NBT_FLUID_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND)); - } - - UUID id = UUID.randomUUID(); - stack.getTag().putUUID(NBT_FLUID_STORAGE_TRACKER_ID, id); - fluidStorageTrackerId = id; - } - } - - - StackUtils.readItems(disk, 4, stack.getTag()); - StackUtils.readItems(filter, 0, stack.getTag()); - } - public void onOpen() { drainEnergy(RS.SERVER_CONFIG.getPortableGrid().getOpenUsage()); } @@ -230,7 +221,7 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer return disk; } - public PlayerEntity getPlayer() { + public Player getPlayer() { return player; } @@ -246,7 +237,7 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer } @Override - public IStorageCacheListener createListener(ServerPlayerEntity player) { + public IStorageCacheListener createListener(ServerPlayer player) { return getGridType() == GridType.FLUID ? new PortableFluidGridStorageCacheListener(this, player) : new PortableItemGridStorageCacheListener(this, player); } @@ -273,8 +264,8 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer } @Override - public ITextComponent getTitle() { - return new TranslationTextComponent("gui.refinedstorage.portable_grid"); + public Component getTitle() { + return new TranslatableComponent("gui.refinedstorage.portable_grid"); } @Override @@ -397,7 +388,7 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer this.itemStorageTrackerId = UUID.randomUUID(); } - this.itemStorageTracker = (ItemStorageTracker) API.instance().getStorageTrackerManager((ServerWorld) player.level).getOrCreate(itemStorageTrackerId, StorageType.ITEM); + this.itemStorageTracker = (ItemStorageTracker) API.instance().getStorageTrackerManager((ServerLevel) player.level).getOrCreate(itemStorageTrackerId, StorageType.ITEM); } } @@ -412,7 +403,7 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer this.fluidStorageTrackerId = UUID.randomUUID(); } - this.fluidStorageTracker = (FluidStorageTracker) API.instance().getStorageTrackerManager((ServerWorld) player.level).getOrCreate(fluidStorageTrackerId, StorageType.FLUID); + this.fluidStorageTracker = (FluidStorageTracker) API.instance().getStorageTrackerManager((ServerLevel) player.level).getOrCreate(fluidStorageTrackerId, StorageType.FLUID); } } @@ -420,12 +411,12 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer } @Override - public CraftingInventory getCraftingMatrix() { + public CraftingContainer getCraftingMatrix() { return null; } @Override - public CraftResultInventory getCraftingResult() { + public ResultContainer getCraftingResult() { return null; } @@ -435,27 +426,27 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer } @Override - public void onCrafted(PlayerEntity player, @Nullable IStackList availableItems, @Nullable IStackList usedItems) { + public void onCrafted(Player player, @Nullable IStackList availableItems, @Nullable IStackList usedItems) { // NO OP } @Override - public void onClear(PlayerEntity player) { + public void onClear(Player player) { // NO OP } @Override - public void onCraftedShift(PlayerEntity player) { + public void onCraftedShift(Player player) { // NO OP } @Override - public void onRecipeTransfer(PlayerEntity player, ItemStack[][] recipe) { + public void onRecipeTransfer(Player player, ItemStack[][] recipe) { // NO OP } @Override - public void onClosed(PlayerEntity player) { + public void onClosed(Player player) { if (!player.getCommandSenderWorld().isClientSide) { StackUtils.writeItems(disk, 4, stack.getTag()); } @@ -528,4 +519,6 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer public AccessType getAccessType() { return AccessType.INSERT_EXTRACT; } + + } diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/PortableGridDiskState.java b/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/PortableGridDiskState.java index 1b058bd9f..fb7397270 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/PortableGridDiskState.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/PortableGridDiskState.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.tile.grid.portable; -import net.minecraft.util.IStringSerializable; +import net.minecraft.util.StringRepresentable; -public enum PortableGridDiskState implements IStringSerializable { +public enum PortableGridDiskState implements StringRepresentable { NORMAL(0, "normal"), NEAR_CAPACITY(1, "near_capacity"), FULL(2, "full"), diff --git a/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/PortableGridTile.java b/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/PortableGridTile.java index 867e8d6ca..460896d3b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/PortableGridTile.java +++ b/src/main/java/com/refinedmods/refinedstorage/tile/grid/portable/PortableGridTile.java @@ -49,29 +49,30 @@ import com.refinedmods.refinedstorage.tile.data.TileDataParameter; import com.refinedmods.refinedstorage.tile.grid.GridTile; import com.refinedmods.refinedstorage.util.StackUtils; import com.refinedmods.refinedstorage.util.WorldUtils; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.CraftResultInventory; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.tileentity.ITickableTileEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.Tag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.inventory.ResultContainer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.EnergyStorage; import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.server.ServerLifecycleHooks; import net.minecraftforge.items.IItemHandlerModifiable; +import net.minecraftforge.server.ServerLifecycleHooks; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -79,37 +80,37 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; -public class PortableGridTile extends BaseTile implements ITickableTileEntity, IGrid, IPortableGrid, IRedstoneConfigurable, IStorageDiskContainerContext { +public class PortableGridTile extends BaseTile implements IGrid, IPortableGrid, IRedstoneConfigurable, IStorageDiskContainerContext { public static final TileDataParameter REDSTONE_MODE = RedstoneMode.createParameter(); - private static final TileDataParameter SORTING_DIRECTION = new TileDataParameter<>(DataSerializers.INT, 0, PortableGridTile::getSortingDirection, (t, v) -> { + private static final TileDataParameter SORTING_DIRECTION = new TileDataParameter<>(EntityDataSerializers.INT, 0, PortableGridTile::getSortingDirection, (t, v) -> { if (IGrid.isValidSortingDirection(v)) { t.setSortingDirection(v); t.setChanged(); } }, (initial, p) -> GridTile.trySortGrid(initial)); - private static final TileDataParameter SORTING_TYPE = new TileDataParameter<>(DataSerializers.INT, 0, PortableGridTile::getSortingType, (t, v) -> { + private static final TileDataParameter SORTING_TYPE = new TileDataParameter<>(EntityDataSerializers.INT, 0, PortableGridTile::getSortingType, (t, v) -> { if (IGrid.isValidSortingType(v)) { t.setSortingType(v); t.setChanged(); } }, (initial, p) -> GridTile.trySortGrid(initial)); - private static final TileDataParameter SEARCH_BOX_MODE = new TileDataParameter<>(DataSerializers.INT, 0, PortableGridTile::getSearchBoxMode, (t, v) -> { + private static final TileDataParameter SEARCH_BOX_MODE = new TileDataParameter<>(EntityDataSerializers.INT, 0, PortableGridTile::getSearchBoxMode, (t, v) -> { if (IGrid.isValidSearchBoxMode(v)) { t.setSearchBoxMode(v); t.setChanged(); } }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, grid -> grid.getSearchField().setMode(p))); - private static final TileDataParameter SIZE = new TileDataParameter<>(DataSerializers.INT, 0, PortableGridTile::getSize, (t, v) -> { + private static final TileDataParameter SIZE = new TileDataParameter<>(EntityDataSerializers.INT, 0, PortableGridTile::getSize, (t, v) -> { if (IGrid.isValidSize(v)) { t.setSize(v); t.setChanged(); } }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, BaseScreen::init)); - private static final TileDataParameter TAB_SELECTED = new TileDataParameter<>(DataSerializers.INT, 0, PortableGridTile::getTabSelected, (t, v) -> { + private static final TileDataParameter TAB_SELECTED = new TileDataParameter<>(EntityDataSerializers.INT, 0, PortableGridTile::getTabSelected, (t, v) -> { t.setTabSelected(v == t.getTabSelected() ? -1 : v); t.setChanged(); }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort())); - private static final TileDataParameter TAB_PAGE = new TileDataParameter<>(DataSerializers.INT, 0, PortableGridTile::getTabPage, (t, v) -> { + private static final TileDataParameter TAB_PAGE = new TileDataParameter<>(EntityDataSerializers.INT, 0, PortableGridTile::getTabPage, (t, v) -> { if (v >= 0 && v <= t.getTotalTabPages()) { t.setTabPage(v); t.setChanged(); @@ -124,26 +125,29 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I private static final String NBT_ENERGY = "Energy"; private static final String NBT_ENCHANTMENTS = "Enchantments"; // @Volatile: Minecraft specific nbt key, see EnchantmentHelper + private final PortableGridBlockItem.Type type; + private final List filters = new ArrayList<>(); + private final List tabs = new ArrayList<>(); + private final FilterItemHandler filter = (FilterItemHandler) new FilterItemHandler(filters, tabs).addListener(new TileInventoryListener(this)); + private final PortableItemGridHandler itemHandler = new PortableItemGridHandler(this, this); + private final PortableFluidGridHandler fluidHandler = new PortableFluidGridHandler(this); private EnergyStorage energyStorage = createEnergyStorage(0); private final LazyOptional energyStorageCap = LazyOptional.of(() -> energyStorage); - - private final PortableGridBlockItem.Type type; - private RedstoneMode redstoneMode = RedstoneMode.IGNORE; - private int sortingType; private int sortingDirection; private int searchBoxMode; private int tabSelected; private int tabPage; private int size; - private GridType clientGridType; - - private final List filters = new ArrayList<>(); - private final List tabs = new ArrayList<>(); - - private final FilterItemHandler filter = (FilterItemHandler) new FilterItemHandler(filters, tabs).addListener(new TileInventoryListener(this)); + @Nullable + private IStorageDisk storage; + @Nullable + private IStorageCache cache; + private PortableGridDiskState diskState = PortableGridDiskState.NONE; + private boolean active; + private ItemStorageTracker itemStorageTracker; private final BaseItemHandler disk = new BaseItemHandler(1) .addValidator(new StorageDiskItemValidator()) .addListener(new TileInventoryListener(this)) @@ -158,29 +162,14 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I } } }); - - @Nullable - private IStorageDisk storage; - @Nullable - private IStorageCache cache; - - private final PortableItemGridHandler itemHandler = new PortableItemGridHandler(this, this); - private final PortableFluidGridHandler fluidHandler = new PortableFluidGridHandler(this); - - private PortableGridDiskState diskState = PortableGridDiskState.NONE; - private boolean active; - - private ItemStorageTracker itemStorageTracker; private UUID itemStorageTrackerId; private FluidStorageTracker fluidStorageTracker; private UUID fluidStorageTrackerId; - - private ListNBT enchants = null; - + private ListTag enchants = null; private boolean loadNextTick; - public PortableGridTile(PortableGridBlockItem.Type type) { - super(type == PortableGridBlockItem.Type.CREATIVE ? RSTiles.CREATIVE_PORTABLE_GRID : RSTiles.PORTABLE_GRID); + public PortableGridTile(PortableGridBlockItem.Type type, BlockPos pos, BlockState state) { + super(type == PortableGridBlockItem.Type.CREATIVE ? RSTiles.CREATIVE_PORTABLE_GRID : RSTiles.PORTABLE_GRID, pos, state); this.type = type; @@ -200,7 +189,7 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I this.storage = null; this.cache = null; } else { - IStorageDisk diskInSlot = API.instance().getStorageDiskManager((ServerWorld) level).getByStack(getDiskInventory().getStackInSlot(0)); + IStorageDisk diskInSlot = API.instance().getStorageDiskManager((ServerLevel) level).getByStack(getDiskInventory().getStackInSlot(0)); if (diskInSlot != null) { StorageType diskType = ((IStorageDiskProvider) getDiskInventory().getStackInSlot(0).getItem()).getType(); @@ -256,7 +245,7 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I itemStorageTrackerId = stack.getTag().getUUID(NBT_ITEM_STORAGE_TRACKER_ID); } else { if (stack.getTag().contains(PortableGrid.NBT_STORAGE_TRACKER)) { //TODO: remove next version - getItemStorageTracker().readFromNbt(stack.getTag().getList(PortableGrid.NBT_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND)); + getItemStorageTracker().readFromNbt(stack.getTag().getList(PortableGrid.NBT_STORAGE_TRACKER, Tag.TAG_COMPOUND)); } } @@ -264,12 +253,12 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I fluidStorageTrackerId = stack.getTag().getUUID(NBT_FLUID_STORAGE_TRACKER_ID); } else { if (stack.getTag().contains(PortableGrid.NBT_FLUID_STORAGE_TRACKER)) { //TODO: remove next version - getFluidStorageTracker().readFromNbt(stack.getTag().getList(PortableGrid.NBT_FLUID_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND)); + getFluidStorageTracker().readFromNbt(stack.getTag().getList(PortableGrid.NBT_FLUID_STORAGE_TRACKER, Tag.TAG_COMPOUND)); } } if (stack.getTag().contains(NBT_ENCHANTMENTS)) { - enchants = stack.getTag().getList(NBT_ENCHANTMENTS, Constants.NBT.TAG_COMPOUND); + enchants = stack.getTag().getList(NBT_ENCHANTMENTS, Tag.TAG_COMPOUND); } } @@ -277,7 +266,7 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I } public void applyDataFromTileToItem(ItemStack stack) { - stack.setTag(new CompoundNBT()); + stack.setTag(new CompoundTag()); stack.getTag().putInt(GridNetworkNode.NBT_SORTING_DIRECTION, sortingDirection); stack.getTag().putInt(GridNetworkNode.NBT_SORTING_TYPE, sortingType); @@ -333,7 +322,7 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I } @Override - public IStorageCacheListener createListener(ServerPlayerEntity player) { + public IStorageCacheListener createListener(ServerPlayer player) { return getServerGridType() == GridType.FLUID ? new PortableFluidGridStorageCacheListener(this, player) : new PortableItemGridStorageCacheListener(this, player); } @@ -360,8 +349,8 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I } @Override - public ITextComponent getTitle() { - return new TranslationTextComponent("gui.refinedstorage.portable_grid"); + public Component getTitle() { + return new TranslatableComponent("gui.refinedstorage.portable_grid"); } @Override @@ -374,26 +363,46 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I return level.isClientSide ? SORTING_TYPE.getValue() : sortingType; } + public void setSortingType(int sortingType) { + this.sortingType = sortingType; + } + @Override public int getSortingDirection() { return level.isClientSide ? SORTING_DIRECTION.getValue() : sortingDirection; } + public void setSortingDirection(int sortingDirection) { + this.sortingDirection = sortingDirection; + } + @Override public int getSearchBoxMode() { return level.isClientSide ? SEARCH_BOX_MODE.getValue() : searchBoxMode; } + public void setSearchBoxMode(int searchBoxMode) { + this.searchBoxMode = searchBoxMode; + } + @Override public int getTabSelected() { return level.isClientSide ? TAB_SELECTED.getValue() : tabSelected; } + public void setTabSelected(int tabSelected) { + this.tabSelected = tabSelected; + } + @Override public int getTabPage() { return level.isClientSide ? TAB_PAGE.getValue() : Math.min(tabPage, getTotalTabPages()); } + public void setTabPage(int page) { + this.tabPage = page; + } + @Override public int getTotalTabPages() { return (int) Math.floor((float) Math.max(0, tabs.size() - 1) / (float) IGrid.TABS_PER_PAGE); @@ -404,26 +413,6 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I return level.isClientSide ? SIZE.getValue() : size; } - public void setSortingType(int sortingType) { - this.sortingType = sortingType; - } - - public void setSortingDirection(int sortingDirection) { - this.sortingDirection = sortingDirection; - } - - public void setSearchBoxMode(int searchBoxMode) { - this.searchBoxMode = searchBoxMode; - } - - public void setTabSelected(int tabSelected) { - this.tabSelected = tabSelected; - } - - public void setTabPage(int page) { - this.tabPage = page; - } - public void setSize(int size) { this.size = size; } @@ -507,12 +496,12 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I } @Override - public CraftingInventory getCraftingMatrix() { + public CraftingContainer getCraftingMatrix() { return null; } @Override - public CraftResultInventory getCraftingResult() { + public ResultContainer getCraftingResult() { return null; } @@ -522,27 +511,27 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I } @Override - public void onCrafted(PlayerEntity player, @Nullable IStackList availableItems, @Nullable IStackList usedItems) { + public void onCrafted(Player player, @Nullable IStackList availableItems, @Nullable IStackList usedItems) { // NO OP } @Override - public void onClear(PlayerEntity player) { + public void onClear(Player player) { // NO OP } @Override - public void onCraftedShift(PlayerEntity player) { + public void onCraftedShift(Player player) { // NO OP } @Override - public void onRecipeTransfer(PlayerEntity player, ItemStack[][] recipe) { + public void onRecipeTransfer(Player player, ItemStack[][] recipe) { // NO OP } @Override - public void onClosed(PlayerEntity player) { + public void onClosed(Player player) { // NO OP } @@ -658,8 +647,8 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I } @Override - public CompoundNBT save(CompoundNBT tag) { - super.save(tag); + public void saveAdditional(CompoundTag tag) { + super.saveAdditional(tag); tag.putInt(GridNetworkNode.NBT_SORTING_DIRECTION, sortingDirection); tag.putInt(GridNetworkNode.NBT_SORTING_TYPE, sortingType); @@ -685,13 +674,11 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I if (enchants != null) { tag.put(NBT_ENCHANTMENTS, enchants); } - - return tag; } @Override - public void load(BlockState blockState, CompoundNBT tag) { - super.load(blockState, tag); + public void load(CompoundTag tag) { + super.load(tag); if (tag.contains(GridNetworkNode.NBT_SORTING_DIRECTION)) { sortingDirection = tag.getInt(GridNetworkNode.NBT_SORTING_DIRECTION); @@ -730,7 +717,7 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I itemStorageTrackerId = tag.getUUID(NBT_ITEM_STORAGE_TRACKER_ID); } else { if (tag.contains(NBT_STORAGE_TRACKER)) { //TODO: remove next version - getItemStorageTracker().readFromNbt(tag.getList(NBT_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND)); + getItemStorageTracker().readFromNbt(tag.getList(NBT_STORAGE_TRACKER, Tag.TAG_COMPOUND)); } } @@ -738,24 +725,24 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I fluidStorageTrackerId = tag.getUUID(NBT_FLUID_STORAGE_TRACKER_ID); } else { if (tag.contains(NBT_FLUID_STORAGE_TRACKER)) { //TODO: remove next version - getFluidStorageTracker().readFromNbt(tag.getList(NBT_FLUID_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND)); + getFluidStorageTracker().readFromNbt(tag.getList(NBT_FLUID_STORAGE_TRACKER, Tag.TAG_COMPOUND)); } } if (tag.contains(NBT_ENCHANTMENTS)) { - enchants = tag.getList(NBT_ENCHANTMENTS, Constants.NBT.TAG_COMPOUND); + enchants = tag.getList(NBT_ENCHANTMENTS, Tag.TAG_COMPOUND); } } @Override - public CompoundNBT writeUpdate(CompoundNBT tag) { + public CompoundTag writeUpdate(CompoundTag tag) { tag.putInt(NBT_TYPE, getServerGridType().ordinal()); return super.writeUpdate(tag); } @Override - public void readUpdate(CompoundNBT tag) { + public void readUpdate(CompoundTag tag) { super.readUpdate(tag); clientGridType = GridType.values()[tag.getInt(NBT_TYPE)]; @@ -792,12 +779,11 @@ public class PortableGridTile extends BaseTile implements ITickableTileEntity, I return AccessType.INSERT_EXTRACT; } - @Override - public void tick() { - if (loadNextTick) { - active = isGridActive(); - diskState = getDiskState(); - loadNextTick = false; + public static void serverTick(PortableGridTile tile) { + if (tile.loadNextTick) { + tile.active = tile.isGridActive(); + tile.diskState = tile.getDiskState(); + tile.loadNextTick = false; } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/util/AccessTypeUtils.java b/src/main/java/com/refinedmods/refinedstorage/util/AccessTypeUtils.java index d0fc915ec..3e5d09642 100644 --- a/src/main/java/com/refinedmods/refinedstorage/util/AccessTypeUtils.java +++ b/src/main/java/com/refinedmods/refinedstorage/util/AccessTypeUtils.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.util; import com.refinedmods.refinedstorage.api.storage.AccessType; -import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.CompoundTag; public final class AccessTypeUtils { private static final String NBT_ACCESS_TYPE = "AccessType"; @@ -9,11 +9,11 @@ public final class AccessTypeUtils { private AccessTypeUtils() { } - public static void writeAccessType(CompoundNBT tag, AccessType type) { + public static void writeAccessType(CompoundTag tag, AccessType type) { tag.putInt(NBT_ACCESS_TYPE, type.getId()); } - public static AccessType readAccessType(CompoundNBT tag) { + public static AccessType readAccessType(CompoundTag tag) { return tag.contains(NBT_ACCESS_TYPE) ? getAccessType(tag.getInt(NBT_ACCESS_TYPE)) : AccessType.INSERT_EXTRACT; } diff --git a/src/main/java/com/refinedmods/refinedstorage/util/BlockUtils.java b/src/main/java/com/refinedmods/refinedstorage/util/BlockUtils.java index 93d908302..13f78c796 100644 --- a/src/main/java/com/refinedmods/refinedstorage/util/BlockUtils.java +++ b/src/main/java/com/refinedmods/refinedstorage/util/BlockUtils.java @@ -1,21 +1,21 @@ package com.refinedmods.refinedstorage.util; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.material.Material; public final class BlockUtils { - public static final AbstractBlock.Properties DEFAULT_ROCK_PROPERTIES = AbstractBlock.Properties.of(Material.STONE).strength(1.9F).sound(SoundType.STONE); - public static final AbstractBlock.Properties DEFAULT_GLASS_PROPERTIES = AbstractBlock.Properties.of(Material.GLASS).sound(SoundType.GLASS).strength(0.35F); + public static final BlockBehaviour.Properties DEFAULT_ROCK_PROPERTIES = BlockBehaviour.Properties.of(Material.STONE).strength(1.9F).sound(SoundType.STONE); + public static final BlockBehaviour.Properties DEFAULT_GLASS_PROPERTIES = BlockBehaviour.Properties.of(Material.GLASS).sound(SoundType.GLASS).strength(0.35F); private BlockUtils() { } // Block#getTranslatedName is client only - public static ITextComponent getBlockTranslation(Block block) { - return new TranslationTextComponent(block.getDescriptionId()); + public static Component getBlockTranslation(Block block) { + return new TranslatableComponent(block.getDescriptionId()); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/util/CollisionUtils.java b/src/main/java/com/refinedmods/refinedstorage/util/CollisionUtils.java index 60a99b790..ee023911a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/util/CollisionUtils.java +++ b/src/main/java/com/refinedmods/refinedstorage/util/CollisionUtils.java @@ -1,16 +1,16 @@ package com.refinedmods.refinedstorage.util; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.vector.Vector3d; +import net.minecraft.core.BlockPos; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.VoxelShape; public final class CollisionUtils { private CollisionUtils() { } - public static boolean isInBounds(VoxelShape shape, BlockPos pos, Vector3d hit) { - AxisAlignedBB aabb = shape.bounds().move(pos); + public static boolean isInBounds(VoxelShape shape, BlockPos pos, Vec3 hit) { + AABB aabb = shape.bounds().move(pos); return hit.x >= aabb.minX && hit.x <= aabb.maxX @@ -20,8 +20,8 @@ public final class CollisionUtils { && hit.z <= aabb.maxZ; } - public static AxisAlignedBB getBounds(int fromX, int fromY, int fromZ, int toX, int toY, int toZ) { - return new AxisAlignedBB((float) fromX / 16F, (float) fromY / 16F, (float) fromZ / 16F, (float) toX / 16F, (float) toY / 16F, (float) toZ / 16F); + public static AABB getBounds(int fromX, int fromY, int fromZ, int toX, int toY, int toZ) { + return new AABB((float) fromX / 16F, (float) fromY / 16F, (float) fromZ / 16F, (float) toX / 16F, (float) toY / 16F, (float) toZ / 16F); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/util/ColorMap.java b/src/main/java/com/refinedmods/refinedstorage/util/ColorMap.java index faf742c49..f3d604037 100644 --- a/src/main/java/com/refinedmods/refinedstorage/util/ColorMap.java +++ b/src/main/java/com/refinedmods/refinedstorage/util/ColorMap.java @@ -7,23 +7,23 @@ import com.refinedmods.refinedstorage.block.BaseBlock; import com.refinedmods.refinedstorage.block.BlockDirection; import com.refinedmods.refinedstorage.block.NetworkNodeBlock; import com.refinedmods.refinedstorage.item.blockitem.ColoredBlockItem; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.BlockItem; -import net.minecraft.item.DyeColor; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; import net.minecraft.tags.ItemTags; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.GameType; -import net.minecraft.world.World; -import net.minecraftforge.fml.RegistryObject; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.GameType; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.IForgeRegistryEntry; +import net.minecraftforge.registries.RegistryObject; import java.util.Collection; import java.util.EnumMap; @@ -102,10 +102,10 @@ public class ColorMap> { ); } - public ActionResultType changeBlockColor(BlockState state, ItemStack heldItem, World world, BlockPos pos, PlayerEntity player) { + public InteractionResult changeBlockColor(BlockState state, ItemStack heldItem, Level world, BlockPos pos, Player player) { DyeColor color = DyeColor.getColor(heldItem); if (color == null || state.getBlock().equals(map.get(color).get())) { - return ActionResultType.PASS; + return InteractionResult.PASS; } return setBlockState(getNewState((RegistryObject) map.get(color), state), heldItem, world, pos, player); @@ -124,14 +124,14 @@ public class ColorMap> { return newState; } - public ActionResultType setBlockState(BlockState newState, ItemStack heldItem, World world, BlockPos pos, PlayerEntity player) { + public InteractionResult setBlockState(BlockState newState, ItemStack heldItem, Level world, BlockPos pos, Player player) { if (!world.isClientSide) { world.setBlockAndUpdate(pos, newState); - if (((ServerPlayerEntity) player).gameMode.getGameModeForPlayer() != GameType.CREATIVE) { + if (((ServerPlayer) player).gameMode.getGameModeForPlayer() != GameType.CREATIVE) { heldItem.shrink(1); } } - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/util/DirectionUtils.java b/src/main/java/com/refinedmods/refinedstorage/util/DirectionUtils.java index 17f2fda38..a5a182e8a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/util/DirectionUtils.java +++ b/src/main/java/com/refinedmods/refinedstorage/util/DirectionUtils.java @@ -1,8 +1,8 @@ package com.refinedmods.refinedstorage.util; -import net.minecraft.entity.LivingEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.LivingEntity; public final class DirectionUtils { private DirectionUtils() { diff --git a/src/main/java/com/refinedmods/refinedstorage/util/ItemStackKey.java b/src/main/java/com/refinedmods/refinedstorage/util/ItemStackKey.java index c4b461a94..124e2d3d2 100644 --- a/src/main/java/com/refinedmods/refinedstorage/util/ItemStackKey.java +++ b/src/main/java/com/refinedmods/refinedstorage/util/ItemStackKey.java @@ -1,7 +1,7 @@ package com.refinedmods.refinedstorage.util; import com.refinedmods.refinedstorage.apiimpl.API; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.ItemStack; public final class ItemStackKey { private final ItemStack stack; diff --git a/src/main/java/com/refinedmods/refinedstorage/util/NetworkUtils.java b/src/main/java/com/refinedmods/refinedstorage/util/NetworkUtils.java index 96b6dc247..ec9e7ca52 100644 --- a/src/main/java/com/refinedmods/refinedstorage/util/NetworkUtils.java +++ b/src/main/java/com/refinedmods/refinedstorage/util/NetworkUtils.java @@ -7,12 +7,12 @@ import com.refinedmods.refinedstorage.api.network.security.Permission; import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.capability.NetworkNodeProxyCapability; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nullable; import java.util.function.Consumer; @@ -22,7 +22,7 @@ public final class NetworkUtils { } @Nullable - public static INetworkNode getNodeFromTile(@Nullable TileEntity tile) { + public static INetworkNode getNodeFromTile(@Nullable BlockEntity tile) { if (tile != null) { INetworkNodeProxy proxy = tile.getCapability(NetworkNodeProxyCapability.NETWORK_NODE_PROXY_CAPABILITY).orElse(null); if (proxy != null) { @@ -42,13 +42,13 @@ public final class NetworkUtils { return null; } - public static ActionResultType attemptModify(World world, BlockPos pos, PlayerEntity player, Runnable action) { + public static InteractionResult attemptModify(Level world, BlockPos pos, Player player, Runnable action) { return attempt(world, pos, player, action, Permission.MODIFY); } - public static ActionResultType attempt(World world, BlockPos pos, PlayerEntity player, Runnable action, Permission... permissionsRequired) { + public static InteractionResult attempt(Level world, BlockPos pos, Player player, Runnable action, Permission... permissionsRequired) { if (world.isClientSide) { - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } INetwork network = getNetworkFromNode(getNodeFromTile(world.getBlockEntity(pos))); @@ -58,22 +58,22 @@ public final class NetworkUtils { if (!network.getSecurityManager().hasPermission(permission, player)) { WorldUtils.sendNoPermissionMessage(player); - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } } } action.run(); - return ActionResultType.SUCCESS; + return InteractionResult.SUCCESS; } - public static void extractBucketFromPlayerInventoryOrNetwork(PlayerEntity player, INetwork network, Consumer onBucketFound) { - for (int i = 0; i < player.inventory.getContainerSize(); ++i) { - ItemStack slot = player.inventory.getItem(i); + public static void extractBucketFromPlayerInventoryOrNetwork(Player player, INetwork network, Consumer onBucketFound) { + for (int i = 0; i < player.getInventory().getContainerSize(); ++i) { + ItemStack slot = player.getInventory().getItem(i); if (API.instance().getComparer().isEqualNoQuantity(StackUtils.EMPTY_BUCKET, slot)) { - player.inventory.removeItem(i, 1); + player.getInventory().removeItem(i, 1); onBucketFound.accept(StackUtils.EMPTY_BUCKET.copy()); diff --git a/src/main/java/com/refinedmods/refinedstorage/util/PacketBufferUtils.java b/src/main/java/com/refinedmods/refinedstorage/util/PacketBufferUtils.java index 5b5315344..f20ff37b7 100644 --- a/src/main/java/com/refinedmods/refinedstorage/util/PacketBufferUtils.java +++ b/src/main/java/com/refinedmods/refinedstorage/util/PacketBufferUtils.java @@ -1,13 +1,13 @@ package com.refinedmods.refinedstorage.util; -import net.minecraft.network.PacketBuffer; +import net.minecraft.network.FriendlyByteBuf; public final class PacketBufferUtils { private PacketBufferUtils() { } // @Volatile: From PacketBuffer#readString, this exists because SideOnly - public static String readString(PacketBuffer buffer) { + public static String readString(FriendlyByteBuf buffer) { return buffer.readUtf(32767); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/util/PlayerUtils.java b/src/main/java/com/refinedmods/refinedstorage/util/PlayerUtils.java index 538347f4b..ac3bc147a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/util/PlayerUtils.java +++ b/src/main/java/com/refinedmods/refinedstorage/util/PlayerUtils.java @@ -1,18 +1,17 @@ package com.refinedmods.refinedstorage.util; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.network.play.server.SSetSlotPacket; +import net.minecraft.network.protocol.game.ClientboundContainerSetSlotPacket; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Inventory; public class PlayerUtils { - - - public static void updateHeldItems(ServerPlayerEntity player) { - int mainHandSlot = player.inventory.selected; - int offHandSlot = 40; //TODO: @Volatile In 1.17 there is a global variable for this + public static void updateHeldItems(ServerPlayer player) { + int mainHandSlot = player.getInventory().selected; + int offHandSlot = Inventory.SLOT_OFFHAND; //See ClientPlayNetHandler#HandleSetSlot for the awful vanilla code that makes this necessary // -2 as that directly sets the inventory slots - player.connection.send(new SSetSlotPacket(-2, mainHandSlot, player.inventory.getItem(mainHandSlot))); - player.connection.send(new SSetSlotPacket(-2, offHandSlot, player.inventory.getItem(offHandSlot))); + player.connection.send(new ClientboundContainerSetSlotPacket(-2, player.containerMenu.incrementStateId(), mainHandSlot, player.getInventory().getItem(mainHandSlot))); + player.connection.send(new ClientboundContainerSetSlotPacket(-2, player.containerMenu.incrementStateId(), offHandSlot, player.getInventory().getItem(offHandSlot))); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/util/RenderUtils.java b/src/main/java/com/refinedmods/refinedstorage/util/RenderUtils.java index b5c99b0ef..a463f425a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/util/RenderUtils.java +++ b/src/main/java/com/refinedmods/refinedstorage/util/RenderUtils.java @@ -2,47 +2,44 @@ package com.refinedmods.refinedstorage.util; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.mojang.blaze3d.matrix.MatrixStack; -import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexFormat; +import com.mojang.blaze3d.vertex.VertexFormatElement; +import com.mojang.math.Quaternion; +import com.mojang.math.Transformation; +import com.mojang.math.Vector3f; import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.render.Styles; -import com.refinedmods.refinedstorage.screen.BaseScreen; -import net.minecraft.block.BlockState; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.client.gui.Font; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.model.BakedQuad; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.client.renderer.model.ItemCameraTransforms; -import net.minecraft.client.renderer.model.ItemTransformVec3f; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.client.renderer.vertex.VertexFormat; -import net.minecraft.client.renderer.vertex.VertexFormatElement; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Direction; -import net.minecraft.util.math.vector.Matrix4f; -import net.minecraft.util.math.vector.Quaternion; -import net.minecraft.util.math.vector.TransformationMatrix; -import net.minecraft.util.math.vector.Vector3f; -import net.minecraft.util.text.*; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.FormattedText; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.ForgeHooksClient; import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.client.event.RenderTooltipEvent; -import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.ModList; -import net.minecraftforge.fml.client.gui.GuiUtils; import javax.annotation.Nonnull; -import java.util.*; -import java.util.function.Consumer; +import java.util.HashSet; +import java.util.List; +import java.util.Random; +import java.util.Set; public final class RenderUtils { + private static ImmutableMap DEFAULT_BLOCK_TRANSFORM; + private RenderUtils() { } @@ -59,14 +56,14 @@ public final class RenderUtils { return (int) multiplier; } - public static void addCombinedItemsToTooltip(List tooltip, boolean displayAmount, List stacks) { + public static void addCombinedItemsToTooltip(List tooltip, boolean displayAmount, List stacks) { Set combinedIndices = new HashSet<>(); for (int i = 0; i < stacks.size(); ++i) { if (!stacks.get(i).isEmpty() && !combinedIndices.contains(i)) { ItemStack stack = stacks.get(i); - IFormattableTextComponent data = stack.getHoverName().plainCopy(); + MutableComponent data = stack.getHoverName().plainCopy(); int amount = stack.getCount(); @@ -79,7 +76,7 @@ public final class RenderUtils { } if (displayAmount) { - data = new StringTextComponent(amount + "x ").append(data); + data = new TextComponent(amount + "x ").append(data); } tooltip.add(data.setStyle(Styles.GRAY)); @@ -87,14 +84,14 @@ public final class RenderUtils { } } - public static void addCombinedFluidsToTooltip(List tooltip, boolean displayMb, List stacks) { + public static void addCombinedFluidsToTooltip(List tooltip, boolean displayMb, List stacks) { Set combinedIndices = new HashSet<>(); for (int i = 0; i < stacks.size(); ++i) { if (!stacks.get(i).isEmpty() && !combinedIndices.contains(i)) { FluidStack stack = stacks.get(i); - IFormattableTextComponent data = stack.getDisplayName().plainCopy(); + MutableComponent data = stack.getDisplayName().plainCopy(); int amount = stack.getAmount(); @@ -107,7 +104,7 @@ public final class RenderUtils { } if (displayMb) { - data = new StringTextComponent(API.instance().getQuantityFormatter().formatInBucketForm(amount) + " ").append(data); + data = new TextComponent(API.instance().getQuantityFormatter().formatInBucketForm(amount) + " ").append(data); } tooltip.add(data.setStyle(Styles.GRAY)); @@ -116,201 +113,14 @@ public final class RenderUtils { } // @Volatile: Copied with some tweaks from GuiUtils#drawHoveringText(@Nonnull final ItemStack stack, List textLines, int mouseX, int mouseY, int screenWidth, int screenHeight, int maxTextWidth, FontRenderer font) - public static void drawTooltipWithSmallText(MatrixStack matrixStack, List textLines, List smallTextLines, boolean showSmallText, @Nonnull ItemStack stack, int mouseX, int mouseY, int screenWidth, int screenHeight, FontRenderer fontRenderer) { - // RS begin - definitions - int maxTextWidth = -1; - FontRenderer font = Minecraft.getInstance().font; - float textScale = Minecraft.getInstance().isEnforceUnicode() ? 1F : 0.7F; - // RS end - - if (!textLines.isEmpty()) { - RenderTooltipEvent.Pre event = new RenderTooltipEvent.Pre(stack, textLines, matrixStack, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, font); - if (MinecraftForge.EVENT_BUS.post(event)) - return; - mouseX = event.getX(); - mouseY = event.getY(); - screenWidth = event.getScreenWidth(); - screenHeight = event.getScreenHeight(); - maxTextWidth = event.getMaxWidth(); - font = event.getFontRenderer(); - - RenderSystem.disableRescaleNormal(); - RenderSystem.disableDepthTest(); - int tooltipTextWidth = 0; - - for (ITextProperties textLine : textLines) { - int textLineWidth = font.width(textLine.getString()); - if (textLineWidth > tooltipTextWidth) - tooltipTextWidth = textLineWidth; - } - - // RS BEGIN - if (showSmallText) { - for (String smallText : smallTextLines) { - int size = (int) (font.width(smallText) * textScale); - - if (size > tooltipTextWidth) { - tooltipTextWidth = size; - } - } - } - // RS END - - boolean needsWrap = false; - - int titleLinesCount = 1; - int tooltipX = mouseX + 12; - if (tooltipX + tooltipTextWidth + 4 > screenWidth) { - tooltipX = mouseX - 16 - tooltipTextWidth; - if (tooltipX < 4) // if the tooltip doesn't fit on the screen - { - if (mouseX > screenWidth / 2) - tooltipTextWidth = mouseX - 12 - 8; - else - tooltipTextWidth = screenWidth - 16 - mouseX; - needsWrap = true; - } - } - - if (maxTextWidth > 0 && tooltipTextWidth > maxTextWidth) { - tooltipTextWidth = maxTextWidth; - needsWrap = true; - } - - if (needsWrap) { - int wrappedTooltipWidth = 0; - List wrappedTextLines = new ArrayList<>(); - for (int i = 0; i < textLines.size(); i++) { - ITextProperties textLine = textLines.get(i); - List wrappedLine = font.getSplitter().splitLines(textLine, tooltipTextWidth, Style.EMPTY); - if (i == 0) - titleLinesCount = wrappedLine.size(); - - for (ITextProperties line : wrappedLine) { - int lineWidth = font.width(line.getString()); - if (lineWidth > wrappedTooltipWidth) - wrappedTooltipWidth = lineWidth; - wrappedTextLines.add(line); - } - } - tooltipTextWidth = wrappedTooltipWidth; - textLines = wrappedTextLines; - - if (mouseX > screenWidth / 2) - tooltipX = mouseX - 16 - tooltipTextWidth; - else - tooltipX = mouseX + 12; - } - - int tooltipY = mouseY - 12; - int tooltipHeight = 8; - - if (textLines.size() > 1) { - tooltipHeight += (textLines.size() - 1) * 10; - if (textLines.size() > titleLinesCount) - tooltipHeight += 2; // gap between title lines and next lines - } - - // RS BEGIN - if (showSmallText) { - tooltipHeight += smallTextLines.size() * 10; - } - // RS END - - if (tooltipY < 4) - tooltipY = 4; - else if (tooltipY + tooltipHeight + 4 > screenHeight) - tooltipY = screenHeight - tooltipHeight - 4; - - final int zLevel = BaseScreen.Z_LEVEL_TOOLTIPS; - int backgroundColor = 0xF0100010; - int borderColorStart = 0x505000FF; - int borderColorEnd = (borderColorStart & 0xFEFEFE) >> 1 | borderColorStart & 0xFF000000; - RenderTooltipEvent.Color colorEvent = new RenderTooltipEvent.Color(stack, textLines, matrixStack, tooltipX, tooltipY, font, backgroundColor, borderColorStart, borderColorEnd); - MinecraftForge.EVENT_BUS.post(colorEvent); - backgroundColor = colorEvent.getBackground(); - borderColorStart = colorEvent.getBorderStart(); - borderColorEnd = colorEvent.getBorderEnd(); - Matrix4f matrix = matrixStack.last().pose(); - - GuiUtils.drawGradientRect(matrix, zLevel, tooltipX - 3, tooltipY - 4, tooltipX + tooltipTextWidth + 3, tooltipY - 3, backgroundColor, backgroundColor); - GuiUtils.drawGradientRect(matrix, zLevel, tooltipX - 3, tooltipY + tooltipHeight + 3, tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 4, backgroundColor, backgroundColor); - GuiUtils.drawGradientRect(matrix, zLevel, tooltipX - 3, tooltipY - 3, tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 3, backgroundColor, backgroundColor); - GuiUtils.drawGradientRect(matrix, zLevel, tooltipX - 4, tooltipY - 3, tooltipX - 3, tooltipY + tooltipHeight + 3, backgroundColor, backgroundColor); - GuiUtils.drawGradientRect(matrix, zLevel, tooltipX + tooltipTextWidth + 3, tooltipY - 3, tooltipX + tooltipTextWidth + 4, tooltipY + tooltipHeight + 3, backgroundColor, backgroundColor); - GuiUtils.drawGradientRect(matrix, zLevel, tooltipX - 3, tooltipY - 3 + 1, tooltipX - 3 + 1, tooltipY + tooltipHeight + 3 - 1, borderColorStart, borderColorEnd); - GuiUtils.drawGradientRect(matrix, zLevel, tooltipX + tooltipTextWidth + 2, tooltipY - 3 + 1, tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 3 - 1, borderColorStart, borderColorEnd); - GuiUtils.drawGradientRect(matrix, zLevel, tooltipX - 3, tooltipY - 3, tooltipX + tooltipTextWidth + 3, tooltipY - 3 + 1, borderColorStart, borderColorStart); - GuiUtils.drawGradientRect(matrix, zLevel, tooltipX - 3, tooltipY + tooltipHeight + 2, tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 3, borderColorEnd, borderColorEnd); - - MinecraftForge.EVENT_BUS.post(new RenderTooltipEvent.PostBackground(stack, textLines, matrixStack, tooltipX, tooltipY, font, tooltipTextWidth, tooltipHeight)); - - IRenderTypeBuffer.Impl renderType = IRenderTypeBuffer.immediate(Tessellator.getInstance().getBuilder()); - MatrixStack textStack = new MatrixStack(); - textStack.translate(0.0D, 0.0D, zLevel); - Matrix4f textLocation = textStack.last().pose(); - - int tooltipTop = tooltipY; - - for (int lineNumber = 0; lineNumber < textLines.size(); ++lineNumber) { - ITextProperties line = textLines.get(lineNumber); - if (line != null) - font.drawInBatch(LanguageMap.getInstance().getVisualOrder(line), (float) tooltipX, (float) tooltipY, -1, true, textLocation, renderType, false, 0, 15728880); - - if (lineNumber + 1 == titleLinesCount) - tooltipY += 2; - - tooltipY += 10; - } - - renderType.endBatch(); - - MinecraftForge.EVENT_BUS.post(new RenderTooltipEvent.PostText(stack, textLines, matrixStack, tooltipX, tooltipTop, font, tooltipTextWidth, tooltipHeight)); - - // RS BEGIN - if (showSmallText) { - int y = tooltipTop + tooltipHeight - 6; - - for (int i = smallTextLines.size() - 1; i >= 0; --i) { - // This is FontRenderer#drawStringWithShadow but with a custom MatrixStack - - RenderSystem.enableAlphaTest(); - - // FontRenderer#drawStringWithShadow - call to renderString (private) - MatrixStack smallTextStack = new MatrixStack(); - smallTextStack.translate(0.0D, 0.0D, zLevel); - smallTextStack.scale(textScale, textScale, 1); - - IRenderTypeBuffer.Impl renderTypeBuffer = IRenderTypeBuffer.immediate(Tessellator.getInstance().getBuilder()); - font.drawInBatch( - TextFormatting.GRAY + smallTextLines.get(i), - RenderUtils.getOffsetOnScale(tooltipX, textScale), - RenderUtils.getOffsetOnScale(y - (Minecraft.getInstance().isEnforceUnicode() ? 2 : 0), textScale), - -1, - true, - smallTextStack.last().pose(), - renderTypeBuffer, - false, - 0, - 15728880 - ); - - renderTypeBuffer.endBatch(); - - y -= 9; - } - } - // RS END - - RenderSystem.enableDepthTest(); - RenderSystem.enableRescaleNormal(); - } + public static void drawTooltipWithSmallText(PoseStack matrixStack, List textLines, List smallTextLines, boolean showSmallText, @Nonnull ItemStack stack, int mouseX, int mouseY, int screenWidth, int screenHeight, Font fontRenderer) { + // TODO } // @Volatile: From Screen#getTooltipFromItem - public static List getTooltipFromItem(ItemStack stack) { + public static List getTooltipFromItem(ItemStack stack) { Minecraft minecraft = Minecraft.getInstance(); - return stack.getTooltipLines(minecraft.player, minecraft.options.advancedItemTooltips ? ITooltipFlag.TooltipFlags.ADVANCED : ITooltipFlag.TooltipFlags.NORMAL); + return stack.getTooltipLines(minecraft.player, minecraft.options.advancedItemTooltips ? TooltipFlag.Default.ADVANCED : TooltipFlag.Default.NORMAL); } public static boolean inBounds(int x, int y, int w, int h, double ox, double oy) { @@ -326,23 +136,23 @@ public final class RenderUtils { return format; } - if (format == DefaultVertexFormats.BLOCK) { - return DefaultVertexFormats.BLOCK; - } else if (!format.hasUV(1)) { ; - return new VertexFormat(ImmutableList.builder().addAll(format.getElements()).add(DefaultVertexFormats.ELEMENT_UV1).build()); + if (format == DefaultVertexFormat.BLOCK) { + return DefaultVertexFormat.BLOCK; + } else if (!format.hasUV(1)) { + // TODO return new VertexFormat(ImmutableList.builder().addAll(format.getElements()).add(DefaultVertexFormat.ELEMENT_UV1).build()); } return format; } - public static TextureAtlasSprite getSprite(IBakedModel coverModel, BlockState coverState, Direction facing, Random rand) { + public static TextureAtlasSprite getSprite(BakedModel coverModel, BlockState coverState, Direction facing, Random rand) { TextureAtlasSprite sprite = null; - RenderType originalLayer = MinecraftForgeClient.getRenderLayer(); + RenderType originalType = MinecraftForgeClient.getRenderType(); try { for (RenderType layer : RenderType.chunkBufferLayers()) { - ForgeHooksClient.setRenderLayer(layer); + ForgeHooksClient.setRenderType(layer); for (BakedQuad bakedQuad : coverModel.getQuads(coverState, facing, rand)) { return bakedQuad.getSprite(); @@ -361,7 +171,7 @@ public final class RenderUtils { } catch (Exception e) { // NO OP } finally { - ForgeHooksClient.setRenderLayer(originalLayer); + ForgeHooksClient.setRenderType(originalType); } if (sprite == null) { @@ -381,37 +191,34 @@ public final class RenderUtils { return sprite; } - private static ImmutableMap DEFAULT_BLOCK_TRANSFORM; - - public static ImmutableMap getDefaultBlockTransforms() { + public static ImmutableMap getDefaultBlockTransforms() { if (DEFAULT_BLOCK_TRANSFORM != null) { return DEFAULT_BLOCK_TRANSFORM; } - TransformationMatrix thirdperson = getTransform(0, 2.5f, 0, 75, 45, 0, 0.375f); + Transformation thirdperson = getTransform(0, 2.5f, 0, 75, 45, 0, 0.375f); - return DEFAULT_BLOCK_TRANSFORM = ImmutableMap.builder() - .put(ItemCameraTransforms.TransformType.GUI, getTransform(0, 0, 0, 30, 225, 0, 0.625f)) - .put(ItemCameraTransforms.TransformType.GROUND, getTransform(0, 3, 0, 0, 0, 0, 0.25f)) - .put(ItemCameraTransforms.TransformType.FIXED, getTransform(0, 0, 0, 0, 0, 0, 0.5f)) - .put(ItemCameraTransforms.TransformType.THIRD_PERSON_RIGHT_HAND, thirdperson) - .put(ItemCameraTransforms.TransformType.THIRD_PERSON_LEFT_HAND, leftifyTransform(thirdperson)) - .put(ItemCameraTransforms.TransformType.FIRST_PERSON_RIGHT_HAND, getTransform(0, 0, 0, 0, 45, 0, 0.4f)) - .put(ItemCameraTransforms.TransformType.FIRST_PERSON_LEFT_HAND, getTransform(0, 0, 0, 0, 225, 0, 0.4f)) - .build(); + return DEFAULT_BLOCK_TRANSFORM = ImmutableMap.builder() + .put(ItemTransforms.TransformType.GUI, getTransform(0, 0, 0, 30, 225, 0, 0.625f)) + .put(ItemTransforms.TransformType.GROUND, getTransform(0, 3, 0, 0, 0, 0, 0.25f)) + .put(ItemTransforms.TransformType.FIXED, getTransform(0, 0, 0, 0, 0, 0, 0.5f)) + .put(ItemTransforms.TransformType.THIRD_PERSON_RIGHT_HAND, thirdperson) + .put(ItemTransforms.TransformType.THIRD_PERSON_LEFT_HAND, leftifyTransform(thirdperson)) + .put(ItemTransforms.TransformType.FIRST_PERSON_RIGHT_HAND, getTransform(0, 0, 0, 0, 45, 0, 0.4f)) + .put(ItemTransforms.TransformType.FIRST_PERSON_LEFT_HAND, getTransform(0, 0, 0, 0, 225, 0, 0.4f)) + .build(); } - private static TransformationMatrix leftifyTransform(TransformationMatrix transform) { + private static Transformation leftifyTransform(Transformation transform) { return transform.blockCornerToCenter().blockCenterToCorner(); } - private static TransformationMatrix getTransform(float tx, float ty, float tz, float ax, float ay, float az, float s) { - return new TransformationMatrix( - new Vector3f(tx / 16, ty / 16, tz / 16), - new Quaternion(ax, ay, az, true), - new Vector3f(s, s, s), - null + private static Transformation getTransform(float tx, float ty, float tz, float ax, float ay, float az, float s) { + return new Transformation( + new Vector3f(tx / 16, ty / 16, tz / 16), + new Quaternion(ax, ay, az, true), + new Vector3f(s, s, s), + null ); } - } diff --git a/src/main/java/com/refinedmods/refinedstorage/util/StackUtils.java b/src/main/java/com/refinedmods/refinedstorage/util/StackUtils.java index 28a3cf7fe..1c4aa32fe 100644 --- a/src/main/java/com/refinedmods/refinedstorage/util/StackUtils.java +++ b/src/main/java/com/refinedmods/refinedstorage/util/StackUtils.java @@ -8,16 +8,16 @@ import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler; import com.refinedmods.refinedstorage.screen.grid.stack.FluidGridStack; import com.refinedmods.refinedstorage.screen.grid.stack.ItemGridStack; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.server.ServerWorld; -import net.minecraftforge.common.util.Constants; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.Container; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.nbt.Tag; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; @@ -44,12 +44,16 @@ public final class StackUtils { private static final String NBT_FORGE_CAPS = "ForgeCaps"; // @Volatile private static final Logger LOGGER = LogManager.getLogger(StackUtils.class); + private static final String NBT_ITEM_ID = "Id"; + private static final String NBT_ITEM_QUANTITY = "Quantity"; + private static final String NBT_ITEM_NBT = "NBT"; + private static final String NBT_ITEM_CAPS = "Caps"; private StackUtils() { } // @Volatile: from PacketBuffer#writeItemStack, with some tweaks to allow int stack counts - public static void writeItemStack(PacketBuffer buf, @Nonnull ItemStack stack) { + public static void writeItemStack(FriendlyByteBuf buf, @Nonnull ItemStack stack) { if (stack.isEmpty()) { buf.writeBoolean(false); } else { @@ -60,7 +64,7 @@ public final class StackUtils { buf.writeVarInt(Item.getId(item)); buf.writeInt(stack.getCount()); - CompoundNBT tag = null; + CompoundTag tag = null; if (item.canBeDepleted() || item.shouldOverrideMultiplayerNbt()) { tag = stack.getTag(); @@ -71,7 +75,7 @@ public final class StackUtils { } // @Volatile: from PacketBuffer#readItemStack, with some tweaks to allow int stack counts - public static ItemStack readItemStack(PacketBuffer buf) { + public static ItemStack readItemStack(FriendlyByteBuf buf) { if (!buf.readBoolean()) { return ItemStack.EMPTY; } else { @@ -86,7 +90,7 @@ public final class StackUtils { } } - public static void writeItemGridStack(PacketBuffer buf, ItemStack stack, UUID id, @Nullable UUID otherId, boolean craftable, @Nullable StorageTrackerEntry entry) { + public static void writeItemGridStack(FriendlyByteBuf buf, ItemStack stack, UUID id, @Nullable UUID otherId, boolean craftable, @Nullable StorageTrackerEntry entry) { writeItemStack(buf, stack); buf.writeBoolean(craftable); @@ -107,7 +111,7 @@ public final class StackUtils { } } - public static ItemGridStack readItemGridStack(PacketBuffer buf) { + public static ItemGridStack readItemGridStack(FriendlyByteBuf buf) { ItemStack stack = readItemStack(buf); boolean craftable = buf.readBoolean(); @@ -126,7 +130,7 @@ public final class StackUtils { return new ItemGridStack(id, otherId, stack, craftable, entry); } - public static void writeFluidGridStack(PacketBuffer buf, FluidStack stack, UUID id, @Nullable UUID otherId, boolean craftable, @Nullable StorageTrackerEntry entry) { + public static void writeFluidGridStack(FriendlyByteBuf buf, FluidStack stack, UUID id, @Nullable UUID otherId, boolean craftable, @Nullable StorageTrackerEntry entry) { stack.writeToPacket(buf); buf.writeBoolean(craftable); @@ -147,7 +151,7 @@ public final class StackUtils { } } - public static FluidGridStack readFluidGridStack(PacketBuffer buf) { + public static FluidGridStack readFluidGridStack(FriendlyByteBuf buf) { FluidStack stack = FluidStack.readFromPacket(buf); boolean craftable = buf.readBoolean(); UUID id = buf.readUUID(); @@ -166,7 +170,7 @@ public final class StackUtils { } @SuppressWarnings("unchecked") - public static void createStorages(ServerWorld world, ItemStack diskStack, int slot, IStorageDisk[] itemDisks, IStorageDisk[] fluidDisks, Function, IStorageDisk> itemDiskWrapper, Function, IStorageDisk> fluidDiskWrapper) { + public static void createStorages(ServerLevel world, ItemStack diskStack, int slot, IStorageDisk[] itemDisks, IStorageDisk[] fluidDisks, Function, IStorageDisk> itemDiskWrapper, Function, IStorageDisk> fluidDiskWrapper) { if (diskStack.isEmpty()) { itemDisks[slot] = null; fluidDisks[slot] = null; @@ -188,12 +192,12 @@ public final class StackUtils { } } - public static void writeItems(IItemHandler handler, int id, CompoundNBT tag, Function serializer) { - ListNBT tagList = new ListNBT(); + public static void writeItems(IItemHandler handler, int id, CompoundTag tag, Function serializer) { + ListTag tagList = new ListTag(); for (int i = 0; i < handler.getSlots(); i++) { if (!handler.getStackInSlot(i).isEmpty()) { - CompoundNBT stackTag = serializer.apply(handler.getStackInSlot(i)); + CompoundTag stackTag = serializer.apply(handler.getStackInSlot(i)); stackTag.putInt(NBT_SLOT, i); @@ -204,15 +208,15 @@ public final class StackUtils { tag.put(String.format(NBT_INVENTORY, id), tagList); } - public static void writeItems(IItemHandler handler, int id, CompoundNBT tag) { - writeItems(handler, id, tag, stack -> stack.save(new CompoundNBT())); + public static void writeItems(IItemHandler handler, int id, CompoundTag tag) { + writeItems(handler, id, tag, stack -> stack.save(new CompoundTag())); } - public static void readItems(IItemHandlerModifiable handler, int id, CompoundNBT tag, Function deserializer) { + public static void readItems(IItemHandlerModifiable handler, int id, CompoundTag tag, Function deserializer) { String name = String.format(NBT_INVENTORY, id); if (tag.contains(name)) { - ListNBT tagList = tag.getList(name, Constants.NBT.TAG_COMPOUND); + ListTag tagList = tag.getList(name, Tag.TAG_COMPOUND); for (int i = 0; i < tagList.size(); i++) { int slot = tagList.getCompound(i).getInt(NBT_SLOT); @@ -224,11 +228,11 @@ public final class StackUtils { } } - public static void readItems(IItemHandlerModifiable handler, int id, CompoundNBT tag) { + public static void readItems(IItemHandlerModifiable handler, int id, CompoundTag tag) { readItems(handler, id, tag, ItemStack::of); } - public static void readItems(BaseItemHandler handler, int id, CompoundNBT tag) { + public static void readItems(BaseItemHandler handler, int id, CompoundTag tag) { handler.setReading(true); readItems(handler, id, tag, ItemStack::of); @@ -236,12 +240,12 @@ public final class StackUtils { handler.setReading(false); } - public static void writeItems(IInventory inventory, int id, CompoundNBT tag) { - ListNBT tagList = new ListNBT(); + public static void writeItems(Container inventory, int id, CompoundTag tag) { + ListTag tagList = new ListTag(); for (int i = 0; i < inventory.getContainerSize(); i++) { if (!inventory.getItem(i).isEmpty()) { - CompoundNBT stackTag = new CompoundNBT(); + CompoundTag stackTag = new CompoundTag(); stackTag.putInt(NBT_SLOT, i); @@ -254,11 +258,11 @@ public final class StackUtils { tag.put(String.format(NBT_INVENTORY, id), tagList); } - public static void readItems(IInventory inventory, int id, CompoundNBT tag) { + public static void readItems(Container inventory, int id, CompoundTag tag) { String name = String.format(NBT_INVENTORY, id); if (tag.contains(name)) { - ListNBT tagList = tag.getList(name, Constants.NBT.TAG_COMPOUND); + ListTag tagList = tag.getList(name, Tag.TAG_COMPOUND); for (int i = 0; i < tagList.size(); i++) { int slot = tagList.getCompound(i).getInt(NBT_SLOT); @@ -301,15 +305,10 @@ public final class StackUtils { return Pair.of(ItemStack.EMPTY, FluidStack.EMPTY); } - private static final String NBT_ITEM_ID = "Id"; - private static final String NBT_ITEM_QUANTITY = "Quantity"; - private static final String NBT_ITEM_NBT = "NBT"; - private static final String NBT_ITEM_CAPS = "Caps"; + public static CompoundTag serializeStackToNbt(@Nonnull ItemStack stack) { + CompoundTag dummy = new CompoundTag(); - public static CompoundNBT serializeStackToNbt(@Nonnull ItemStack stack) { - CompoundNBT dummy = new CompoundNBT(); - - CompoundNBT itemTag = new CompoundNBT(); + CompoundTag itemTag = new CompoundTag(); itemTag.putString(NBT_ITEM_ID, stack.getItem().getRegistryName().toString()); itemTag.putInt(NBT_ITEM_QUANTITY, stack.getCount()); @@ -329,7 +328,7 @@ public final class StackUtils { } @Nonnull - public static ItemStack deserializeStackFromNbt(CompoundNBT tag) { + public static ItemStack deserializeStackFromNbt(CompoundTag tag) { Item item; if (tag.contains(NBT_ITEM_ID)) { item = ForgeRegistries.ITEMS.getValue(new ResourceLocation(tag.getString(NBT_ITEM_ID))); diff --git a/src/main/java/com/refinedmods/refinedstorage/util/TimeUtils.java b/src/main/java/com/refinedmods/refinedstorage/util/TimeUtils.java index c4520d7a6..97ca9bf95 100644 --- a/src/main/java/com/refinedmods/refinedstorage/util/TimeUtils.java +++ b/src/main/java/com/refinedmods/refinedstorage/util/TimeUtils.java @@ -1,6 +1,6 @@ package com.refinedmods.refinedstorage.util; -import net.minecraft.client.resources.I18n; +import net.minecraft.client.resources.language.I18n; public final class TimeUtils { private static final long SECOND = 1000; diff --git a/src/main/java/com/refinedmods/refinedstorage/util/WorldUtils.java b/src/main/java/com/refinedmods/refinedstorage/util/WorldUtils.java index df1b072ab..f8b223709 100644 --- a/src/main/java/com/refinedmods/refinedstorage/util/WorldUtils.java +++ b/src/main/java/com/refinedmods/refinedstorage/util/WorldUtils.java @@ -2,20 +2,20 @@ package com.refinedmods.refinedstorage.util; import com.mojang.authlib.GameProfile; import com.refinedmods.refinedstorage.render.Styles; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.server.management.PlayerProfileCache; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceContext; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.players.GameProfileCache; +import net.minecraft.world.Container; +import net.minecraft.world.WorldlyContainer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; import net.minecraftforge.common.ForgeMod; import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.FakePlayerFactory; @@ -27,13 +27,14 @@ import net.minecraftforge.items.wrapper.InvWrapper; import net.minecraftforge.items.wrapper.SidedInvWrapper; import javax.annotation.Nullable; +import java.util.Optional; import java.util.UUID; public final class WorldUtils { private WorldUtils() { } - public static void updateBlock(@Nullable World world, BlockPos pos) { + public static void updateBlock(@Nullable Level world, BlockPos pos) { if (world != null && world.isLoaded(pos)) { BlockState state = world.getBlockState(pos); @@ -41,24 +42,24 @@ public final class WorldUtils { } } - public static IItemHandler getItemHandler(@Nullable TileEntity tile, Direction side) { + public static IItemHandler getItemHandler(@Nullable BlockEntity tile, Direction side) { if (tile == null) { return null; } IItemHandler handler = tile.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, side).orElse(null); if (handler == null) { - if (side != null && tile instanceof ISidedInventory) { - handler = new SidedInvWrapper((ISidedInventory) tile, side); - } else if (tile instanceof IInventory) { - handler = new InvWrapper((IInventory) tile); + if (side != null && tile instanceof WorldlyContainer) { + handler = new SidedInvWrapper((WorldlyContainer) tile, side); + } else if (tile instanceof Container) { + handler = new InvWrapper((Container) tile); } } return handler; } - public static IFluidHandler getFluidHandler(@Nullable TileEntity tile, Direction side) { + public static IFluidHandler getFluidHandler(@Nullable BlockEntity tile, Direction side) { if (tile != null) { return tile.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, side).orElse(null); } @@ -66,31 +67,31 @@ public final class WorldUtils { return null; } - public static FakePlayer getFakePlayer(ServerWorld world, @Nullable UUID owner) { + public static FakePlayer getFakePlayer(ServerLevel world, @Nullable UUID owner) { if (owner != null) { - PlayerProfileCache profileCache = world.getServer().getProfileCache(); + GameProfileCache profileCache = world.getServer().getProfileCache(); - GameProfile profile = profileCache.get(owner); + Optional profile = profileCache.get(owner); - if (profile != null) { - return FakePlayerFactory.get(world, profile); + if (profile.isPresent()) { + return FakePlayerFactory.get(world, profile.get()); } } return FakePlayerFactory.getMinecraft(world); } - public static void sendNoPermissionMessage(PlayerEntity player) { - player.sendMessage(new TranslationTextComponent("misc.refinedstorage.security.no_permission").setStyle(Styles.RED), player.getUUID()); + public static void sendNoPermissionMessage(Player player) { + player.sendMessage(new TranslatableComponent("misc.refinedstorage.security.no_permission").setStyle(Styles.RED), player.getUUID()); } - public static RayTraceResult rayTracePlayer(World world, PlayerEntity player) { + public static HitResult rayTracePlayer(Level world, Player player) { double reachDistance = player.getAttribute(ForgeMod.REACH_DISTANCE.get()).getValue(); - Vector3d base = player.getEyePosition(1.0F); - Vector3d look = player.getLookAngle(); - Vector3d target = base.add(look.x * reachDistance, look.y * reachDistance, look.z * reachDistance); + Vec3 base = player.getEyePosition(1.0F); + Vec3 look = player.getLookAngle(); + Vec3 target = base.add(look.x * reachDistance, look.y * reachDistance, look.z * reachDistance); - return world.clip(new RayTraceContext(base, target, RayTraceContext.BlockMode.OUTLINE, RayTraceContext.FluidMode.NONE, player)); + return world.clip(new ClipContext(base, target, ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)); } } diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index 64cad406f..0cc06c922 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -1,5 +1,5 @@ -protected net.minecraft.inventory.container.Container field_75153_a # inventoryItemStacks -protected net.minecraft.inventory.container.Container field_75149_d # listeners -protected net.minecraft.client.gui.widget.TextFieldWidget field_146212_n # canLoseFocus -public net.minecraft.client.gui.widget.button.CheckboxButton field_212943_a # checked -public-f net.minecraft.inventory.container.Slot field_75221_f # yPos \ No newline at end of file +protected net.minecraft.world.inventory.AbstractContainerMenu f_38841_ # inventoryItemStacks +protected net.minecraft.world.inventory.AbstractContainerMenu f_38848_ # listeners +protected net.minecraft.client.gui.components.EditBox f_94097_ # canLoseFocus +public net.minecraft.client.gui.components.Checkbox f_93822_ # checked +public-f net.minecraft.world.inventory.Slot f_40221_ # yPos \ No newline at end of file diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index a7829368f..d7ea86f2c 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader = "javafml" -loaderVersion = "[36,)" +loaderVersion = "[39,)" issueTrackerURL = "https://github.com/refinedmods/refinedstorage" license="MIT" [[mods]] diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta index e2c225a3e..b9d2c5b42 100644 --- a/src/main/resources/pack.mcmeta +++ b/src/main/resources/pack.mcmeta @@ -1,6 +1,6 @@ { "pack": { "description": "Refined Storage resources", - "pack_format": 6 + "pack_format": 8 } } diff --git a/src/test/java/com/refinedmods/refinedstorage/apiimpl/util/ItemStackListTest.java b/src/test/java/com/refinedmods/refinedstorage/apiimpl/util/ItemStackListTest.java deleted file mode 100644 index 062074bdc..000000000 --- a/src/test/java/com/refinedmods/refinedstorage/apiimpl/util/ItemStackListTest.java +++ /dev/null @@ -1,195 +0,0 @@ -package com.refinedmods.refinedstorage.apiimpl.util; - -import com.refinedmods.refinedstorage.api.util.StackListResult; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.nbt.CompoundNBT; -import org.junit.jupiter.api.Test; - -import java.util.UUID; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.assertThrows; - -class ItemStackListTest extends MinecraftTest { - private final ItemStackList list = new ItemStackList(); - - @Test - void Test_adding_a_stack_without_any_existing_stack_present() { - // Arrange - ItemStack toAdd = new ItemStack(Items.DIRT); - - // Act - StackListResult result = list.add(toAdd, 10); - - // Assert - assertThat(result.getChange()).isEqualTo(10); - assertThat(result.getId()).isNotNull(); - assertThat(result.getStack().getItem()).isEqualTo(Items.DIRT); - assertThat(result.getStack().getCount()).isEqualTo(10); - assertThat(result.getStack().getTag()).isNull(); - assertThat(result.getStack()).isNotSameAs(toAdd); - - assertThat(list.size()).isEqualTo(1); - } - - @Test - void Test_adding_a_stack_with_an_existing_stack_present_should_merge_if_same_stack() { - // Arrange - ItemStack toAdd1 = new ItemStack(Items.DIRT); - ItemStack toAdd2 = new ItemStack(Items.DIRT); - - // Act - UUID id = list.add(toAdd1, 10).getId(); - StackListResult result = list.add(toAdd2, 10); - - // Assert - assertThat(result.getStack()).isNotSameAs(toAdd1).isNotSameAs(toAdd2); - assertThat(result.getChange()).isEqualTo(10); - assertThat(result.getId()).isNotNull(); - assertThat(result.getStack().getItem()).isEqualTo(Items.DIRT); - assertThat(result.getStack().getCount()).isEqualTo(20); - assertThat(result.getStack().getTag()).isNull(); - - assertThat(list.size()).isEqualTo(1); - } - - @Test - void Test_adding_a_stack_with_an_existing_stack_present_should_not_merge_if_different_item() { - // Arrange - ItemStack toAdd1 = new ItemStack(Items.DIRT, 1); - ItemStack toAdd2 = new ItemStack(Items.GLASS); - ItemStack toAdd3 = new ItemStack(Items.DIRT, 5); - - // Act - list.add(toAdd1, 10); - list.add(toAdd2, 10); - list.add(toAdd3, 10); - - // Assert - assertThat(list.size()).isEqualTo(2); - } - - @Test - void Test_adding_a_stack_with_an_existing_stack_present_should_not_merge_if_same_item_but_different_tag() { - // Arrange - ItemStack toAdd1 = new ItemStack(Items.DIRT); - ItemStack toAdd2 = new ItemStack(Items.GLASS); - ItemStack toAdd3 = new ItemStack(Items.DIRT); - CompoundNBT testTag = new CompoundNBT(); - testTag.putInt("a", 1); - toAdd3.setTag(testTag); - - // Act - list.add(toAdd1, 10); - list.add(toAdd2, 10); - list.add(toAdd3, 10); - - // Assert - assertThat(list.size()).isEqualTo(3); - } - - @Test - void Test_adding_invalid_stacks_should_fail() { - assertThrows(IllegalArgumentException.class, () -> list.add(ItemStack.EMPTY)); - assertThrows(IllegalArgumentException.class, () -> list.add(new ItemStack(Items.DIRT), -1)); - assertThrows(IllegalArgumentException.class, () -> list.add(new ItemStack(Items.DIRT), 0)); - } - - @Test - void Test_adding_too_big_stacks_should_not_overflow() { - ItemStack current = list.add(new ItemStack(Items.DIRT), Integer.MAX_VALUE - 5).getStack(); - assertThat(current.getCount()).isEqualTo(Integer.MAX_VALUE - 5); - - current = list.add(new ItemStack(Items.DIRT), 4).getStack(); - assertThat(current.getCount()).isEqualTo(Integer.MAX_VALUE - 1); - - current = list.add(new ItemStack(Items.DIRT), 1).getStack(); - assertThat(current.getCount()).isEqualTo(Integer.MAX_VALUE); - - current = list.add(new ItemStack(Items.DIRT), 1).getStack(); - assertThat(current.getCount()).isEqualTo(Integer.MAX_VALUE); - } - - @Test - void Test_removing_non_existent_item_should_give_back_nothing() { - // Arrange - ItemStack toAdd = new ItemStack(Items.GLASS); - ItemStack toRemove = new ItemStack(Items.DIRT); - - // Act - list.add(toAdd); - StackListResult result = list.remove(toRemove, 10); - - // Assert - assertThat(list.size()).isEqualTo(1); - assertThat(result).isNull(); - } - - @Test - void Test_removing_half_of_an_existing_item() { - // Arrange - ItemStack toAdd1 = new ItemStack(Items.DIRT, 10); - ItemStack toAdd2 = new ItemStack(Items.GLASS, 10); - ItemStack toRemove = new ItemStack(Items.DIRT, 2); - - // Act - list.add(toAdd1); - list.add(toAdd2); - - StackListResult result = list.remove(toRemove); - - // Assert - assertThat(result.getStack().getItem()).isEqualTo(Items.DIRT); - assertThat(result.getStack().getCount()).isEqualTo(8); - assertThat(result.getStack().getTag()).isNull(); - assertThat(result.getId()).isNotNull(); - assertThat(result.getChange()).isEqualTo(-2); - - assertThat(list.size()).isEqualTo(2); - } - - @Test - void Test_removing_an_existing_item_completely() { - // Arrange - ItemStack toAdd1 = new ItemStack(Items.DIRT, 10); - ItemStack toAdd2 = new ItemStack(Items.GLASS, 10); - ItemStack toRemove = new ItemStack(Items.DIRT, 10); - - // Act - list.add(toAdd1); - list.add(toAdd2); - - StackListResult result = list.remove(toRemove); - - // Assert - assertThat(result.getStack().getItem()).isEqualTo(Items.DIRT); - assertThat(result.getStack().getCount()).isEqualTo(10); - assertThat(result.getStack().getTag()).isNull(); - assertThat(result.getId()).isNotNull(); - assertThat(result.getChange()).isEqualTo(-10); - - assertThat(list.size()).isEqualTo(1); - } - - @Test - void Test_removing_an_existing_item_with_more_than_is_available() { - // Arrange - ItemStack toAdd = new ItemStack(Items.DIRT, 10); - ItemStack toRemove = new ItemStack(Items.DIRT, 100); - - // Act - list.add(toAdd); - - StackListResult result = list.remove(toRemove); - - // Assert - assertThat(result.getStack().getItem()).isEqualTo(Items.DIRT); - assertThat(result.getStack().getCount()).isEqualTo(10); - assertThat(result.getStack().getTag()).isNull(); - assertThat(result.getId()).isNotNull(); - assertThat(result.getChange()).isEqualTo(-10); - - assertThat(list.isEmpty()).isTrue(); - } -} diff --git a/src/test/java/com/refinedmods/refinedstorage/apiimpl/util/MinecraftTest.java b/src/test/java/com/refinedmods/refinedstorage/apiimpl/util/MinecraftTest.java deleted file mode 100644 index ccdfe9294..000000000 --- a/src/test/java/com/refinedmods/refinedstorage/apiimpl/util/MinecraftTest.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.refinedmods.refinedstorage.apiimpl.util; - -import net.minecraft.util.registry.Bootstrap; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.DisplayNameGeneration; -import org.junit.jupiter.api.DisplayNameGenerator; - -@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class) -public abstract class MinecraftTest { - @BeforeAll - static void register() { - Bootstrap.register(); - } -}