diff --git a/build.gradle b/build.gradle index b64bca428..ddae95fb7 100644 --- a/build.gradle +++ b/build.gradle @@ -53,8 +53,8 @@ configurations { dependencies { minecraft "com.mojang:minecraft:${mc_version}" mappings "net.fabricmc:yarn:${mc_version}+build.${mappings_version}" - modCompile "net.fabricmc:fabric-loader:0.4.8+build.153" - modCompile "net.fabricmc.fabric-api:fabric-api:0.3.0+build.175" + modCompile "net.fabricmc:fabric-loader:0.4.8+build.159" + modCompile "net.fabricmc.fabric-api:fabric-api:0.3.1+build.208" implementation 'com.google.code.findbugs:jsr305:3.0.2' diff --git a/gradle.properties b/gradle.properties index c08f2432b..385810a08 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,5 +2,5 @@ mod_version=1.83.1 # Minecraft properties -mc_version=1.14.2 -mappings_version=2 +mc_version=1.14.4 +mappings_version=9 diff --git a/src/main/java/dan200/computercraft/api/turtle/event/FakePlayer.java b/src/main/java/dan200/computercraft/api/turtle/event/FakePlayer.java index d7163b32f..c9627309b 100644 --- a/src/main/java/dan200/computercraft/api/turtle/event/FakePlayer.java +++ b/src/main/java/dan200/computercraft/api/turtle/event/FakePlayer.java @@ -22,11 +22,10 @@ import net.minecraft.entity.passive.HorseBaseEntity; import net.minecraft.inventory.Inventory; import net.minecraft.item.ItemStack; import net.minecraft.network.ClientConnection; +import net.minecraft.network.MessageType; import net.minecraft.network.NetworkSide; import net.minecraft.network.NetworkState; import net.minecraft.network.Packet; -import net.minecraft.network.chat.ChatMessageType; -import net.minecraft.network.chat.Component; import net.minecraft.recipe.Recipe; import net.minecraft.server.network.ServerPlayNetworkHandler; import net.minecraft.server.network.ServerPlayerEntity; @@ -36,6 +35,7 @@ import net.minecraft.server.network.packet.VehicleMoveC2SPacket; import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvent; +import net.minecraft.text.Text; import net.minecraft.util.DefaultedList; import net.minecraft.util.Hand; import net.minecraft.util.math.ChunkPos; @@ -108,7 +108,7 @@ public class FakePlayer extends ServerPlayerEntity } @Override - public void sendTradeOffers( int id, TraderOfferList list, int level, int experience, boolean levelled ) { } + public void sendTradeOffers( int id, TraderOfferList list, int level, int experience, boolean levelled, boolean refreshable ) { } @Override public void openHorseInventory( HorseBaseEntity horse, Inventory inventory ) { } @@ -135,7 +135,7 @@ public class FakePlayer extends ServerPlayerEntity public void method_14241() { } @Override - public void addChatMessage( Component textComponent, boolean status ) { } + public void addChatMessage( Text textComponent, boolean status ) { } @Override protected void method_6040() { } @@ -162,7 +162,7 @@ public class FakePlayer extends ServerPlayerEntity public void setGameMode( GameMode gameMode ) { } @Override - public void sendChatMessage( Component textComponent, ChatMessageType chatMessageType ) { } + public void sendChatMessage( Text textComponent, MessageType chatMessageType ) { } @Override public String getServerBrand() @@ -214,7 +214,7 @@ public class FakePlayer extends ServerPlayerEntity } @Override - public void disconnect( Component message ) { } + public void disconnect( Text message ) { } @Override public void onRequestCommandCompletions( RequestCommandCompletionsC2SPacket packet ) { } @@ -244,7 +244,7 @@ public class FakePlayer extends ServerPlayerEntity } @Override - public void disconnect( Component message ) + public void disconnect( Text message ) { } diff --git a/src/main/java/dan200/computercraft/client/ClientTableFormatter.java b/src/main/java/dan200/computercraft/client/ClientTableFormatter.java index 2410d57b5..0ae9eb33a 100644 --- a/src/main/java/dan200/computercraft/client/ClientTableFormatter.java +++ b/src/main/java/dan200/computercraft/client/ClientTableFormatter.java @@ -10,12 +10,12 @@ import dan200.computercraft.shared.command.text.ChatHelpers; import dan200.computercraft.shared.command.text.TableBuilder; import dan200.computercraft.shared.command.text.TableFormatter; import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; -import net.minecraft.ChatFormat; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.hud.ChatHud; import net.minecraft.client.util.TextComponentUtil; -import net.minecraft.network.chat.Component; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; import net.minecraft.util.math.MathHelper; import org.apache.commons.lang3.StringUtils; @@ -35,7 +35,7 @@ public class ClientTableFormatter implements TableFormatter @Override @Nullable - public Component getPadding( Component component, int width ) + public Text getPadding( Text component, int width ) { int extraWidth = width - getWidth( component ); if( extraWidth <= 0 ) return null; @@ -46,7 +46,7 @@ public class ClientTableFormatter implements TableFormatter int spaces = MathHelper.floor( extraWidth / spaceWidth ); int extra = extraWidth - (int) (spaces * spaceWidth); - return ChatHelpers.coloured( StringUtils.repeat( ' ', spaces ) + StringUtils.repeat( (char) 712, extra ), ChatFormat.GRAY ); + return ChatHelpers.coloured( StringUtils.repeat( ' ', spaces ) + StringUtils.repeat( (char) 712, extra ), Formatting.GRAY ); } @Override @@ -56,20 +56,20 @@ public class ClientTableFormatter implements TableFormatter } @Override - public int getWidth( Component component ) + public int getWidth( Text component ) { - return renderer().getStringWidth( component.getFormattedText() ); + return renderer().getStringWidth( component.asFormattedString() ); } @Override - public void writeLine( int id, Component component ) + public void writeLine( int id, Text component ) { MinecraftClient mc = MinecraftClient.getInstance(); ChatHud chat = mc.inGameHud.getChatHud(); // Trim the text if it goes over the allowed length - int maxWidth = MathHelper.floor( chat.getWidth() / chat.getScale() ); - List list = TextComponentUtil.wrapLines( component, maxWidth, mc.textRenderer, false, false ); + int maxWidth = MathHelper.floor( chat.getWidth() / chat.getChatScale() ); + List list = TextComponentUtil.wrapLines( component, maxWidth, mc.textRenderer, false, false ); if( !list.isEmpty() ) chat.addMessage( list.get( 0 ), id ); } diff --git a/src/main/java/dan200/computercraft/client/gui/GuiComputer.java b/src/main/java/dan200/computercraft/client/gui/GuiComputer.java index 172149e14..e25455574 100644 --- a/src/main/java/dan200/computercraft/client/gui/GuiComputer.java +++ b/src/main/java/dan200/computercraft/client/gui/GuiComputer.java @@ -17,7 +17,7 @@ import dan200.computercraft.shared.computer.inventory.ContainerComputer; import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; import net.minecraft.container.Container; import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.text.LiteralText; import net.minecraft.util.Identifier; import org.lwjgl.glfw.GLFW; @@ -39,7 +39,7 @@ public class GuiComputer extends AbstractContainerScreen public GuiComputer( T container, PlayerInventory player, ComputerFamily family, ClientComputer computer, int termWidth, int termHeight ) { - super( container, player, new TextComponent( "" ) ); + super( container, player, new LiteralText( "" ) ); m_family = family; m_computer = computer; diff --git a/src/main/java/dan200/computercraft/client/gui/GuiDiskDrive.java b/src/main/java/dan200/computercraft/client/gui/GuiDiskDrive.java index 663a5bc27..d430c66e2 100644 --- a/src/main/java/dan200/computercraft/client/gui/GuiDiskDrive.java +++ b/src/main/java/dan200/computercraft/client/gui/GuiDiskDrive.java @@ -20,13 +20,13 @@ public class GuiDiskDrive extends AbstractContainerScreen public GuiDiskDrive( ContainerDiskDrive container, PlayerInventory inventory ) { - super( container, inventory, ComputerCraft.Blocks.diskDrive.getTextComponent() ); + super( container, inventory, ComputerCraft.Blocks.diskDrive.getName() ); } @Override protected void drawForeground( int par1, int par2 ) { - String title = getTitle().getFormattedText(); + String title = getTitle().asFormattedString(); font.draw( title, (containerWidth - font.getStringWidth( title )) / 2.0f, 6, 0x404040 ); font.draw( I18n.translate( "container.inventory" ), 8, (containerHeight - 96) + 2, 0x404040 ); } diff --git a/src/main/java/dan200/computercraft/client/gui/GuiPrinter.java b/src/main/java/dan200/computercraft/client/gui/GuiPrinter.java index 1c8f688c8..78f31b0ce 100644 --- a/src/main/java/dan200/computercraft/client/gui/GuiPrinter.java +++ b/src/main/java/dan200/computercraft/client/gui/GuiPrinter.java @@ -20,13 +20,13 @@ public class GuiPrinter extends AbstractContainerScreen public GuiPrinter( ContainerPrinter container, PlayerInventory player ) { - super( container, player, ComputerCraft.Blocks.printer.getTextComponent() ); + super( container, player, ComputerCraft.Blocks.printer.getName() ); } @Override protected void drawForeground( int mouseX, int mouseY ) { - String title = getTitle().getFormattedText(); + String title = getTitle().asFormattedString(); font.draw( title, (containerWidth - font.getStringWidth( title )) / 2.0f, 6, 0x404040 ); font.draw( I18n.translate( "container.inventory" ), 8, containerHeight - 96 + 2, 0x404040 ); } diff --git a/src/main/java/dan200/computercraft/client/gui/GuiPrintout.java b/src/main/java/dan200/computercraft/client/gui/GuiPrintout.java index 9ec3adeee..7381ad08a 100644 --- a/src/main/java/dan200/computercraft/client/gui/GuiPrintout.java +++ b/src/main/java/dan200/computercraft/client/gui/GuiPrintout.java @@ -26,7 +26,7 @@ public class GuiPrintout extends AbstractContainerScreen public GuiPrintout( ContainerHeldItem container, PlayerInventory player ) { - super( container, player, container.getStack().getDisplayName() ); + super( container, player, container.getStack().getName() ); containerHeight = Y_SIZE; diff --git a/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java b/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java index 49600da1b..3c1fa9f68 100644 --- a/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java +++ b/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java @@ -26,6 +26,7 @@ import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry; import net.fabricmc.fabric.api.client.render.BlockEntityRendererRegistry; import net.fabricmc.fabric.api.event.client.ClientSpriteRegistryCallback; import net.fabricmc.fabric.api.event.client.ClientTickCallback; +import net.minecraft.client.texture.SpriteAtlasTexture; import net.minecraft.container.ArrayPropertyDelegate; import net.minecraft.inventory.BasicInventory; @@ -41,7 +42,7 @@ public final class ComputerCraftProxyClient BlockEntityRendererRegistry.INSTANCE.register( TileTurtle.class, new TileEntityTurtleRenderer() ); ClientRegistry.onItemColours(); - ClientSpriteRegistryCallback.registerBlockAtlas( ClientRegistry::onTextureStitchEvent ); + ClientSpriteRegistryCallback.event( SpriteAtlasTexture.BLOCK_ATLAS_TEX ).register( ClientRegistry::onTextureStitchEvent ); ModelLoadingRegistry.INSTANCE.registerAppender( ClientRegistry::onModelBakeEvent ); ModelLoadingRegistry.INSTANCE.registerResourceProvider( loader -> ( name, context ) -> TurtleModelLoader.INSTANCE.accepts( name ) ? TurtleModelLoader.INSTANCE.loadModel( name ) : null diff --git a/src/main/java/dan200/computercraft/client/render/ItemMapLikeRenderer.java b/src/main/java/dan200/computercraft/client/render/ItemMapLikeRenderer.java index 7549bf394..aa690857a 100644 --- a/src/main/java/dan200/computercraft/client/render/ItemMapLikeRenderer.java +++ b/src/main/java/dan200/computercraft/client/render/ItemMapLikeRenderer.java @@ -12,7 +12,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.FirstPersonRenderer; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; -import net.minecraft.util.AbsoluteHand; +import net.minecraft.util.Arm; import net.minecraft.util.Hand; import net.minecraft.util.math.MathHelper; @@ -38,7 +38,7 @@ public abstract class ItemMapLikeRenderer else { renderItemFirstPersonSide( - hand == Hand.MAIN_HAND ? player.getMainHand() : player.getMainHand().getOpposite(), + hand == Hand.MAIN_HAND ? player.getMainArm() : player.getMainArm().getOpposite(), equipProgress, swingProgress, stack ); } @@ -52,12 +52,12 @@ public abstract class ItemMapLikeRenderer * @param equipProgress The equip progress of this item * @param swingProgress The swing progress of this item * @param stack The stack to render - * @see FirstPersonRenderer#method_3222(float, AbsoluteHand, float, ItemStack) // renderMapFirstPersonSide + * @see FirstPersonRenderer#method_3222(float, Arm, float, ItemStack) // renderMapFirstPersonSide */ - private void renderItemFirstPersonSide( AbsoluteHand side, float equipProgress, float swingProgress, ItemStack stack ) + private void renderItemFirstPersonSide( Arm side, float equipProgress, float swingProgress, ItemStack stack ) { MinecraftClient minecraft = MinecraftClient.getInstance(); - float offset = side == AbsoluteHand.RIGHT ? 1f : -1f; + float offset = side == Arm.RIGHT ? 1f : -1f; GlStateManager.translatef( offset * 0.125f, -0.125f, 0f ); // If the player is not invisible then render a single arm diff --git a/src/main/java/dan200/computercraft/shared/Registry.java b/src/main/java/dan200/computercraft/shared/Registry.java index d4ea3f64e..40b987463 100644 --- a/src/main/java/dan200/computercraft/shared/Registry.java +++ b/src/main/java/dan200/computercraft/shared/Registry.java @@ -184,7 +184,7 @@ public final class Registry private static Item.Settings defaultItem() { - return new Item.Settings().itemGroup( mainItemGroup ); + return new Item.Settings().group( mainItemGroup ); } public static void registerItems( MutableRegistry registry ) @@ -206,23 +206,23 @@ public final class Registry registerItemBlock( registry, ComputerCraft.Items.turtleAdvanced ); // Pocket computer - ComputerCraft.Items.pocketComputerNormal = new ItemPocketComputer( defaultItem().stackSize( 1 ), ComputerFamily.Normal ); - ComputerCraft.Items.pocketComputerAdvanced = new ItemPocketComputer( defaultItem().stackSize( 1 ), ComputerFamily.Advanced ); + ComputerCraft.Items.pocketComputerNormal = new ItemPocketComputer( defaultItem().maxCount( 1 ), ComputerFamily.Normal ); + ComputerCraft.Items.pocketComputerAdvanced = new ItemPocketComputer( defaultItem().maxCount( 1 ), ComputerFamily.Advanced ); registry.add( new Identifier( ComputerCraft.MOD_ID, "pocket_computer_normal" ), ComputerCraft.Items.pocketComputerNormal ); registry.add( new Identifier( ComputerCraft.MOD_ID, "pocket_computer_advanced" ), ComputerCraft.Items.pocketComputerAdvanced ); // Floppy disk - ComputerCraft.Items.disk = new ItemDisk( defaultItem().stackSize( 1 ) ); - ComputerCraft.Items.treasureDisk = new ItemTreasureDisk( defaultItem().stackSize( 1 ) ); + ComputerCraft.Items.disk = new ItemDisk( defaultItem().maxCount( 1 ) ); + ComputerCraft.Items.treasureDisk = new ItemTreasureDisk( defaultItem().maxCount( 1 ) ); registry.add( new Identifier( ComputerCraft.MOD_ID, "disk" ), ComputerCraft.Items.disk ); registry.add( new Identifier( ComputerCraft.MOD_ID, "treasure_disk" ), ComputerCraft.Items.treasureDisk ); // Printouts - ComputerCraft.Items.printedPage = new ItemPrintout( defaultItem().stackSize( 1 ), ItemPrintout.Type.PAGE ); - ComputerCraft.Items.printedPages = new ItemPrintout( defaultItem().stackSize( 1 ), ItemPrintout.Type.PAGES ); - ComputerCraft.Items.printedBook = new ItemPrintout( defaultItem().stackSize( 1 ), ItemPrintout.Type.BOOK ); + ComputerCraft.Items.printedPage = new ItemPrintout( defaultItem().maxCount( 1 ), ItemPrintout.Type.PAGE ); + ComputerCraft.Items.printedPages = new ItemPrintout( defaultItem().maxCount( 1 ), ItemPrintout.Type.PAGES ); + ComputerCraft.Items.printedBook = new ItemPrintout( defaultItem().maxCount( 1 ), ItemPrintout.Type.BOOK ); registry.add( new Identifier( ComputerCraft.MOD_ID, "printed_page" ), ComputerCraft.Items.printedPage ); registry.add( new Identifier( ComputerCraft.MOD_ID, "printed_pages" ), ComputerCraft.Items.printedPages ); diff --git a/src/main/java/dan200/computercraft/shared/command/CommandComputerCraft.java b/src/main/java/dan200/computercraft/shared/command/CommandComputerCraft.java index 304ec0ed2..ae29a9c12 100644 --- a/src/main/java/dan200/computercraft/shared/command/CommandComputerCraft.java +++ b/src/main/java/dan200/computercraft/shared/command/CommandComputerCraft.java @@ -23,8 +23,8 @@ import dan200.computercraft.shared.computer.core.ServerComputer; import dan200.computercraft.shared.network.Containers; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; @@ -256,9 +256,9 @@ public final class CommandComputerCraft ); } - private static Component linkComputer( ServerCommandSource source, ServerComputer serverComputer, int computerId ) + private static Text linkComputer( ServerCommandSource source, ServerComputer serverComputer, int computerId ) { - TextComponent out = new TextComponent( "" ); + LiteralText out = new LiteralText( "" ); // Append the computer instance if( serverComputer == null ) @@ -298,7 +298,7 @@ public final class CommandComputerCraft return out; } - private static Component linkPosition( ServerCommandSource context, ServerComputer computer ) + private static Text linkPosition( ServerCommandSource context, ServerComputer computer ) { if( UserLevel.OP.test( context ) ) { @@ -344,7 +344,7 @@ public final class CommandComputerCraft timings.sort( Comparator.comparing( x -> x.get( sortField ) ).reversed() ); - Component[] headers = new Component[1 + fields.size()]; + Text[] headers = new Text[1 + fields.size()]; headers[0] = translate( "commands.computercraft.track.dump.computer" ); for( int i = 0; i < fields.size(); i++ ) headers[i + 1] = translate( fields.get( i ).translationKey() ); TableBuilder table = new TableBuilder( TRACK_ID, headers ); @@ -354,9 +354,9 @@ public final class CommandComputerCraft Computer computer = entry.getComputer(); ServerComputer serverComputer = computer == null ? null : lookup.get( computer ); - Component computerComponent = linkComputer( source, serverComputer, entry.getComputerId() ); + Text computerComponent = linkComputer( source, serverComputer, entry.getComputerId() ); - Component[] row = new Component[1 + fields.size()]; + Text[] row = new Text[1 + fields.size()]; row[0] = computerComponent; for( int i = 0; i < fields.size(); i++ ) row[i + 1] = text( entry.getFormatted( fields.get( i ) ) ); table.row( row ); diff --git a/src/main/java/dan200/computercraft/shared/command/CommandCopy.java b/src/main/java/dan200/computercraft/shared/command/CommandCopy.java index dd4871c3c..75c91bcd9 100644 --- a/src/main/java/dan200/computercraft/shared/command/CommandCopy.java +++ b/src/main/java/dan200/computercraft/shared/command/CommandCopy.java @@ -9,10 +9,10 @@ package dan200.computercraft.shared.command; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.arguments.StringArgumentType; import net.minecraft.client.MinecraftClient; -import net.minecraft.network.chat.ClickEvent; -import net.minecraft.network.chat.HoverEvent; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.text.ClickEvent; +import net.minecraft.text.HoverEvent; +import net.minecraft.text.LiteralText; +import net.minecraft.text.TranslatableText; import net.minecraft.server.command.ServerCommandSource; import static net.minecraft.server.command.CommandManager.argument; @@ -50,12 +50,12 @@ public final class CommandCopy return false; } - public static TextComponent createCopyText( String text ) + public static LiteralText createCopyText( String text ) { - TextComponent name = new TextComponent( text ); + LiteralText name = new LiteralText( text ); name.getStyle() .setClickEvent( new ClickEvent( ClickEvent.Action.RUN_COMMAND, PREFIX + text ) ) - .setHoverEvent( new HoverEvent( HoverEvent.Action.SHOW_TEXT, new TranslatableComponent( "gui.computercraft.tooltip.copy" ) ) ); + .setHoverEvent( new HoverEvent( HoverEvent.Action.SHOW_TEXT, new TranslatableText( "gui.computercraft.tooltip.copy" ) ) ); return name; } } diff --git a/src/main/java/dan200/computercraft/shared/command/Exceptions.java b/src/main/java/dan200/computercraft/shared/command/Exceptions.java index 756d5e1da..0368ff932 100644 --- a/src/main/java/dan200/computercraft/shared/command/Exceptions.java +++ b/src/main/java/dan200/computercraft/shared/command/Exceptions.java @@ -9,7 +9,7 @@ package dan200.computercraft.shared.command; import com.mojang.brigadier.exceptions.Dynamic2CommandExceptionType; import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.text.TranslatableText; public final class Exceptions { @@ -28,16 +28,16 @@ public final class Exceptions private static SimpleCommandExceptionType translated( String key ) { - return new SimpleCommandExceptionType( new TranslatableComponent( key ) ); + return new SimpleCommandExceptionType( new TranslatableText( key ) ); } private static DynamicCommandExceptionType translated1( String key ) { - return new DynamicCommandExceptionType( x -> new TranslatableComponent( key, x ) ); + return new DynamicCommandExceptionType( x -> new TranslatableText( key, x ) ); } private static Dynamic2CommandExceptionType translated2( String key ) { - return new Dynamic2CommandExceptionType( ( x, y ) -> new TranslatableComponent( key, x, y ) ); + return new Dynamic2CommandExceptionType( ( x, y ) -> new TranslatableText( key, x, y ) ); } } diff --git a/src/main/java/dan200/computercraft/shared/command/arguments/RepeatArgumentType.java b/src/main/java/dan200/computercraft/shared/command/arguments/RepeatArgumentType.java index 3648f19e9..84110ad16 100644 --- a/src/main/java/dan200/computercraft/shared/command/arguments/RepeatArgumentType.java +++ b/src/main/java/dan200/computercraft/shared/command/arguments/RepeatArgumentType.java @@ -17,8 +17,8 @@ import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; import net.minecraft.command.arguments.ArgumentTypes; import net.minecraft.command.arguments.serialize.ArgumentSerializer; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import net.minecraft.util.PacketByteBuf; import javax.annotation.Nonnull; @@ -133,7 +133,7 @@ public final class RepeatArgumentType implements ArgumentType> { buf.writeBoolean( arg.flatten ); ArgumentTypes.toPacket( buf, arg.child ); - buf.writeTextComponent( getMessage( arg ) ); + buf.writeText( getMessage( arg ) ); } @Nonnull @@ -143,7 +143,7 @@ public final class RepeatArgumentType implements ArgumentType> { boolean isList = buf.readBoolean(); ArgumentType child = ArgumentTypes.fromPacket( buf ); - Component message = buf.readTextComponent(); + Text message = buf.readText(); BiConsumer, ?> appender = isList ? ( list, x ) -> list.addAll( (Collection) x ) : List::add; return new RepeatArgumentType( child, appender, isList, new SimpleCommandExceptionType( message ) ); } @@ -153,14 +153,14 @@ public final class RepeatArgumentType implements ArgumentType> { json.addProperty( "flatten", arg.flatten ); json.addProperty( "child", "<>" ); // TODO: Potentially serialize this using reflection. - json.addProperty( "error", TextComponent.Serializer.toJsonString( getMessage( arg ) ) ); + json.addProperty( "error", LiteralText.Serializer.toJson( getMessage( arg ) ) ); } - private static TextComponent getMessage( RepeatArgumentType arg ) + private static LiteralText getMessage( RepeatArgumentType arg ) { Message message = arg.some.create().getRawMessage(); - if( message instanceof TextComponent ) return (TextComponent) message; - return new TextComponent( message.getString() ); + if( message instanceof LiteralText ) return (LiteralText) message; + return new LiteralText( message.getString() ); } } } diff --git a/src/main/java/dan200/computercraft/shared/command/builder/HelpingArgumentBuilder.java b/src/main/java/dan200/computercraft/shared/command/builder/HelpingArgumentBuilder.java index 9d676f50e..032e456bc 100644 --- a/src/main/java/dan200/computercraft/shared/command/builder/HelpingArgumentBuilder.java +++ b/src/main/java/dan200/computercraft/shared/command/builder/HelpingArgumentBuilder.java @@ -13,10 +13,10 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.tree.CommandNode; import com.mojang.brigadier.tree.LiteralCommandNode; -import net.minecraft.ChatFormat; -import net.minecraft.network.chat.ClickEvent; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.text.ClickEvent; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; import net.minecraft.server.command.ServerCommandSource; import javax.annotation.Nonnull; @@ -133,9 +133,9 @@ public final class HelpingArgumentBuilder extends LiteralArgumentBuilder { @@ -165,7 +165,7 @@ public final class HelpingArgumentBuilder extends LiteralArgumentBuilder context, CommandNode node, String id, String command ) + private static Text getHelp( CommandContext context, CommandNode node, String id, String command ) { // An ugly hack to extract usage information from the dispatcher. We generate a temporary node, generate // the shorthand usage, and emit that. @@ -174,7 +174,7 @@ public final class HelpingArgumentBuilder extends LiteralArgumentBuilder T coloured( T component, ChatFormat colour ) + public static T coloured( T component, Formatting colour ) { component.getStyle().setColor( colour ); return component; } - public static Component text( String text ) + public static Text text( String text ) { - return new TextComponent( text == null ? "" : text ); + return new LiteralText( text == null ? "" : text ); } - public static Component translate( String text ) + public static Text translate( String text ) { - return new TranslatableComponent( text == null ? "" : text ); + return new TranslatableText( text == null ? "" : text ); } - public static Component translate( String text, Object... args ) + public static Text translate( String text, Object... args ) { - return new TranslatableComponent( text == null ? "" : text, args ); + return new TranslatableText( text == null ? "" : text, args ); } - public static Component list( Component... children ) + public static Text list( Text... children ) { - Component component = new TextComponent( "" ); - for( Component child : children ) + Text component = new LiteralText( "" ); + for( Text child : children ) { component.append( child ); } return component; } - public static Component position( BlockPos pos ) + public static Text position( BlockPos pos ) { if( pos == null ) return translate( "commands.computercraft.generic.no_position" ); return translate( "commands.computercraft.generic.position", pos.getX(), pos.getY(), pos.getZ() ); } - public static Component bool( boolean value ) + public static Text bool( boolean value ) { return value - ? coloured( translate( "commands.computercraft.generic.yes" ), ChatFormat.GREEN ) - : coloured( translate( "commands.computercraft.generic.no" ), ChatFormat.RED ); + ? coloured( translate( "commands.computercraft.generic.yes" ), Formatting.GREEN ) + : coloured( translate( "commands.computercraft.generic.no" ), Formatting.RED ); } - public static Component link( Component component, String command, Component toolTip ) + public static Text link( Text component, String command, Text toolTip ) { Style style = component.getStyle(); - if( style.getColor() == null ) style.setColor( ChatFormat.YELLOW ); + if( style.getColor() == null ) style.setColor( Formatting.YELLOW ); style.setClickEvent( new ClickEvent( ClickEvent.Action.RUN_COMMAND, command ) ); style.setHoverEvent( new HoverEvent( HoverEvent.Action.SHOW_TEXT, toolTip ) ); return component; } - public static Component header( String text ) + public static Text header( String text ) { return coloured( text, HEADER ); } diff --git a/src/main/java/dan200/computercraft/shared/command/text/ServerTableFormatter.java b/src/main/java/dan200/computercraft/shared/command/text/ServerTableFormatter.java index 9762920bd..14ffc2e04 100644 --- a/src/main/java/dan200/computercraft/shared/command/text/ServerTableFormatter.java +++ b/src/main/java/dan200/computercraft/shared/command/text/ServerTableFormatter.java @@ -6,9 +6,9 @@ package dan200.computercraft.shared.command.text; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.server.command.ServerCommandSource; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import org.apache.commons.lang3.StringUtils; import javax.annotation.Nullable; @@ -24,11 +24,11 @@ public class ServerTableFormatter implements TableFormatter @Override @Nullable - public Component getPadding( Component component, int width ) + public Text getPadding( Text component, int width ) { int extraWidth = width - getWidth( component ); if( extraWidth <= 0 ) return null; - return new TextComponent( StringUtils.repeat( ' ', extraWidth ) ); + return new LiteralText( StringUtils.repeat( ' ', extraWidth ) ); } @Override @@ -38,13 +38,13 @@ public class ServerTableFormatter implements TableFormatter } @Override - public int getWidth( Component component ) + public int getWidth( Text component ) { - return component.getText().length(); + return component.asString().length(); } @Override - public void writeLine( int id, Component component ) + public void writeLine( int id, Text component ) { source.sendFeedback( component, false ); } diff --git a/src/main/java/dan200/computercraft/shared/command/text/TableBuilder.java b/src/main/java/dan200/computercraft/shared/command/text/TableBuilder.java index d3d73beb5..1b163f6a7 100644 --- a/src/main/java/dan200/computercraft/shared/command/text/TableBuilder.java +++ b/src/main/java/dan200/computercraft/shared/command/text/TableBuilder.java @@ -9,9 +9,9 @@ package dan200.computercraft.shared.command.text; import dan200.computercraft.shared.command.CommandUtils; import dan200.computercraft.shared.network.NetworkHandler; import dan200.computercraft.shared.network.client.ChatTableClientMessage; -import net.minecraft.network.chat.Component; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.text.Text; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -22,11 +22,11 @@ public class TableBuilder { private final int id; private int columns = -1; - private final Component[] headers; - private final ArrayList rows = new ArrayList<>(); + private final Text[] headers; + private final ArrayList rows = new ArrayList<>(); private int additional; - public TableBuilder( int id, @Nonnull Component... headers ) + public TableBuilder( int id, @Nonnull Text... headers ) { if( id < 0 ) throw new IllegalArgumentException( "ID must be positive" ); this.id = id; @@ -45,13 +45,13 @@ public class TableBuilder { if( id < 0 ) throw new IllegalArgumentException( "ID must be positive" ); this.id = id; - this.headers = new Component[headers.length]; + this.headers = new Text[headers.length]; columns = headers.length; for( int i = 0; i < headers.length; i++ ) this.headers[i] = ChatHelpers.header( headers[i] ); } - public void row( @Nonnull Component... row ) + public void row( @Nonnull Text... row ) { if( columns == -1 ) columns = row.length; if( row.length != columns ) throw new IllegalArgumentException( "Row is the incorrect length" ); @@ -85,13 +85,13 @@ public class TableBuilder } @Nullable - public Component[] getHeaders() + public Text[] getHeaders() { return headers; } @Nonnull - public List getRows() + public List getRows() { return rows; } diff --git a/src/main/java/dan200/computercraft/shared/command/text/TableFormatter.java b/src/main/java/dan200/computercraft/shared/command/text/TableFormatter.java index eb244eaea..f5040fc00 100644 --- a/src/main/java/dan200/computercraft/shared/command/text/TableFormatter.java +++ b/src/main/java/dan200/computercraft/shared/command/text/TableFormatter.java @@ -6,9 +6,9 @@ package dan200.computercraft.shared.command.text; -import net.minecraft.ChatFormat; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; import org.apache.commons.lang3.StringUtils; import javax.annotation.Nullable; @@ -18,8 +18,8 @@ import static dan200.computercraft.shared.command.text.ChatHelpers.translate; public interface TableFormatter { - Component SEPARATOR = coloured( "| ", ChatFormat.GRAY ); - Component HEADER = coloured( "=", ChatFormat.GRAY ); + Text SEPARATOR = coloured( "| ", Formatting.GRAY ); + Text HEADER = coloured( "=", Formatting.GRAY ); /** * Get additional padding for the component @@ -29,7 +29,7 @@ public interface TableFormatter * @return The padding for this component, or {@code null} if none is needed. */ @Nullable - Component getPadding( Component component, int width ); + Text getPadding( Text component, int width ); /** * Get the minimum padding between each column @@ -38,9 +38,9 @@ public interface TableFormatter */ int getColumnPadding(); - int getWidth( Component component ); + int getWidth( Text component ); - void writeLine( int id, Component component ); + void writeLine( int id, Text component ); default int display( TableBuilder table ) { @@ -50,13 +50,13 @@ public interface TableFormatter int columns = table.getColumns(); int[] maxWidths = new int[columns]; - Component[] headers = table.getHeaders(); + Text[] headers = table.getHeaders(); if( headers != null ) { for( int i = 0; i < columns; i++ ) maxWidths[i] = getWidth( headers[i] ); } - for( Component[] row : table.getRows() ) + for( Text[] row : table.getRows() ) { for( int i = 0; i < row.length; i++ ) { @@ -77,11 +77,11 @@ public interface TableFormatter if( headers != null ) { - TextComponent line = new TextComponent( "" ); + LiteralText line = new LiteralText( "" ); for( int i = 0; i < columns - 1; i++ ) { line.append( headers[i] ); - Component padding = getPadding( headers[i], maxWidths[i] ); + Text padding = getPadding( headers[i], maxWidths[i] ); if( padding != null ) line.append( padding ); line.append( SEPARATOR ); } @@ -93,16 +93,16 @@ public interface TableFormatter // it a tad prettier. int rowCharWidth = getWidth( HEADER ); int rowWidth = totalWidth / rowCharWidth + (totalWidth % rowCharWidth == 0 ? 0 : 1); - writeLine( rowId++, coloured( StringUtils.repeat( HEADER.getText(), rowWidth ), ChatFormat.GRAY ) ); + writeLine( rowId++, coloured( StringUtils.repeat( HEADER.asString(), rowWidth ), Formatting.GRAY ) ); } - for( Component[] row : table.getRows() ) + for( Text[] row : table.getRows() ) { - TextComponent line = new TextComponent( "" ); + LiteralText line = new LiteralText( "" ); for( int i = 0; i < columns - 1; i++ ) { line.append( row[i] ); - Component padding = getPadding( row[i], maxWidths[i] ); + Text padding = getPadding( row[i], maxWidths[i] ); if( padding != null ) line.append( padding ); line.append( SEPARATOR ); } @@ -112,7 +112,7 @@ public interface TableFormatter if( table.getAdditional() > 0 ) { - writeLine( rowId++, coloured( translate( "commands.computercraft.generic.additional_rows", table.getAdditional() ), ChatFormat.AQUA ) ); + writeLine( rowId++, coloured( translate( "commands.computercraft.generic.additional_rows", table.getAdditional() ), Formatting.AQUA ) ); } return rowId - table.getId(); diff --git a/src/main/java/dan200/computercraft/shared/common/TileGeneric.java b/src/main/java/dan200/computercraft/shared/common/TileGeneric.java index c5d7adac2..7fb9179bd 100644 --- a/src/main/java/dan200/computercraft/shared/common/TileGeneric.java +++ b/src/main/java/dan200/computercraft/shared/common/TileGeneric.java @@ -34,7 +34,6 @@ public abstract class TileGeneric extends BlockEntity implements BlockEntityClie markDirty(); BlockPos pos = getPos(); BlockState state = getCachedState(); - getWorld().scheduleBlockRender( pos ); getWorld().updateListeners( pos, state, state, 3 ); } diff --git a/src/main/java/dan200/computercraft/shared/computer/apis/CommandAPI.java b/src/main/java/dan200/computercraft/shared/computer/apis/CommandAPI.java index e1d8b7fb1..bbf2eb886 100644 --- a/src/main/java/dan200/computercraft/shared/computer/apis/CommandAPI.java +++ b/src/main/java/dan200/computercraft/shared/computer/apis/CommandAPI.java @@ -123,7 +123,7 @@ public class CommandAPI implements ILuaAPI private static Object getPropertyValue( Property property, Comparable value ) { if( value instanceof String || value instanceof Number || value instanceof Boolean ) return value; - return property.getValueAsString( value ); + return property.getName( value ); } @Override diff --git a/src/main/java/dan200/computercraft/shared/computer/blocks/BlockComputer.java b/src/main/java/dan200/computercraft/shared/computer/blocks/BlockComputer.java index db3c55380..51b70e424 100644 --- a/src/main/java/dan200/computercraft/shared/computer/blocks/BlockComputer.java +++ b/src/main/java/dan200/computercraft/shared/computer/blocks/BlockComputer.java @@ -25,8 +25,8 @@ import javax.annotation.Nullable; public class BlockComputer extends BlockComputerBase { - public static final EnumProperty STATE = EnumProperty.create( "state", ComputerState.class ); - public static final DirectionProperty FACING = Properties.FACING_HORIZONTAL; + public static final EnumProperty STATE = EnumProperty.of( "state", ComputerState.class ); + public static final DirectionProperty FACING = Properties.HORIZONTAL_FACING; public BlockComputer( Settings settings, ComputerFamily family, NamedBlockEntityType type ) { @@ -47,7 +47,7 @@ public class BlockComputer extends BlockComputerBase @Override public BlockState getPlacementState( ItemPlacementContext placement ) { - return getDefaultState().with( FACING, placement.getPlayerHorizontalFacing().getOpposite() ); + return getDefaultState().with( FACING, placement.getPlayerFacing().getOpposite() ); } @Nonnull diff --git a/src/main/java/dan200/computercraft/shared/computer/blocks/TileCommandComputer.java b/src/main/java/dan200/computercraft/shared/computer/blocks/TileCommandComputer.java index b92844091..3a315cf71 100644 --- a/src/main/java/dan200/computercraft/shared/computer/blocks/TileCommandComputer.java +++ b/src/main/java/dan200/computercraft/shared/computer/blocks/TileCommandComputer.java @@ -13,16 +13,17 @@ import dan200.computercraft.shared.computer.core.ServerComputer; import dan200.computercraft.shared.util.NamedBlockEntityType; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.server.MinecraftServer; import net.minecraft.server.command.CommandOutput; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.world.ServerWorld; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; +import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import net.minecraft.util.math.Vec2f; import net.minecraft.util.math.Vec3d; +import net.minecraft.world.GameRules; import java.util.HashMap; import java.util.Map; @@ -54,15 +55,15 @@ public class TileCommandComputer extends TileComputer } @Override - public void sendMessage( Component textComponent ) + public void sendMessage( Text textComponent ) { - output.put( output.size() + 1, textComponent.getText() ); + output.put( output.size() + 1, textComponent.asString() ); } @Override public boolean sendCommandFeedback() { - return getWorld().getGameRules().getBoolean( "sendCommandFeedback" ); + return getWorld().getGameRules().getBoolean( GameRules.SEND_COMMAND_FEEDBACK ); } @Override @@ -74,7 +75,7 @@ public class TileCommandComputer extends TileComputer @Override public boolean shouldBroadcastConsoleToOps() { - return getWorld().getGameRules().getBoolean( "commandBlockOutput" ); + return getWorld().getGameRules().getBoolean( GameRules.COMMAND_BLOCK_OUTPUT ); } } @@ -104,7 +105,7 @@ public class TileCommandComputer extends TileComputer return new ServerCommandSource( receiver, new Vec3d( pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5 ), Vec2f.ZERO, (ServerWorld) getWorld(), 2, - name, new TextComponent( name ), + name, new LiteralText( name ), getWorld().getServer(), null ); } @@ -123,12 +124,12 @@ public class TileCommandComputer extends TileComputer MinecraftServer server = player.getServer(); if( server == null || !server.areCommandBlocksEnabled() ) { - player.addChatMessage( new TranslatableComponent( "advMode.notEnabled" ), true ); + player.addChatMessage( new TranslatableText( "advMode.notEnabled" ), true ); return false; } else if( !player.isCreativeLevelTwoOp() ) { - player.addChatMessage( new TranslatableComponent( "advMode.notAllowed" ), true ); + player.addChatMessage( new TranslatableText( "advMode.notAllowed" ), true ); return false; } else diff --git a/src/main/java/dan200/computercraft/shared/computer/blocks/TileComputerBase.java b/src/main/java/dan200/computercraft/shared/computer/blocks/TileComputerBase.java index d7d380c2e..7ee92f093 100644 --- a/src/main/java/dan200/computercraft/shared/computer/blocks/TileComputerBase.java +++ b/src/main/java/dan200/computercraft/shared/computer/blocks/TileComputerBase.java @@ -28,8 +28,8 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import net.minecraft.util.Hand; import net.minecraft.util.Nameable; import net.minecraft.util.Tickable; @@ -109,13 +109,13 @@ public abstract class TileComputerBase extends TileGeneric implements IComputerT public boolean onActivate( PlayerEntity player, Hand hand, BlockHitResult hit ) { ItemStack currentItem = player.getStackInHand( hand ); - if( !currentItem.isEmpty() && currentItem.getItem() == Items.NAME_TAG && canNameWithTag( player ) && currentItem.hasDisplayName() ) + if( !currentItem.isEmpty() && currentItem.getItem() == Items.NAME_TAG && canNameWithTag( player ) && currentItem.hasCustomName() ) { // Label to rename computer if( !getWorld().isClient ) { - setLabel( currentItem.getDisplayName().getText() ); - currentItem.subtractAmount( 1 ); + setLabel( currentItem.getName().asString() ); + currentItem.decrement( 1 ); } return true; } @@ -439,9 +439,9 @@ public abstract class TileComputerBase extends TileGeneric implements IComputerT @Nonnull @Override - public Component getName() + public Text getName() { - return hasCustomName() ? new TextComponent( m_label ) : getCachedState().getBlock().getTextComponent(); + return hasCustomName() ? new LiteralText( m_label ) : getCachedState().getBlock().getName(); } @Override @@ -452,8 +452,8 @@ public abstract class TileComputerBase extends TileGeneric implements IComputerT @Nullable @Override - public Component getCustomName() + public Text getCustomName() { - return hasCustomName() ? new TextComponent( m_label ) : null; + return hasCustomName() ? new LiteralText( m_label ) : null; } } diff --git a/src/main/java/dan200/computercraft/shared/computer/inventory/ContainerViewComputer.java b/src/main/java/dan200/computercraft/shared/computer/inventory/ContainerViewComputer.java index b28a7bea2..737dd8673 100644 --- a/src/main/java/dan200/computercraft/shared/computer/inventory/ContainerViewComputer.java +++ b/src/main/java/dan200/computercraft/shared/computer/inventory/ContainerViewComputer.java @@ -10,8 +10,8 @@ import dan200.computercraft.ComputerCraft; import dan200.computercraft.shared.computer.core.*; import net.minecraft.container.Container; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.server.MinecraftServer; +import net.minecraft.text.TranslatableText; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -53,12 +53,12 @@ public class ContainerViewComputer extends Container implements IContainerComput MinecraftServer server = player.getServer(); if( server == null || !server.areCommandBlocksEnabled() ) { - player.addChatMessage( new TranslatableComponent( "advMode.notEnabled" ), false ); + player.addChatMessage( new TranslatableText( "advMode.notEnabled" ), false ); return false; } else if( !player.isCreativeLevelTwoOp() ) { - player.addChatMessage( new TranslatableComponent( "advMode.notAllowed" ), false ); + player.addChatMessage( new TranslatableText( "advMode.notAllowed" ), false ); return false; } } diff --git a/src/main/java/dan200/computercraft/shared/computer/items/IComputerItem.java b/src/main/java/dan200/computercraft/shared/computer/items/IComputerItem.java index 71e18b294..abf66da00 100644 --- a/src/main/java/dan200/computercraft/shared/computer/items/IComputerItem.java +++ b/src/main/java/dan200/computercraft/shared/computer/items/IComputerItem.java @@ -24,7 +24,7 @@ public interface IComputerItem default String getLabel( @Nonnull ItemStack stack ) { - return stack.hasDisplayName() ? stack.getDisplayName().getString() : null; + return stack.hasCustomName() ? stack.getName().getString() : null; } ComputerFamily getFamily(); diff --git a/src/main/java/dan200/computercraft/shared/computer/items/ItemComputer.java b/src/main/java/dan200/computercraft/shared/computer/items/ItemComputer.java index 3411b4760..8c1d3450f 100644 --- a/src/main/java/dan200/computercraft/shared/computer/items/ItemComputer.java +++ b/src/main/java/dan200/computercraft/shared/computer/items/ItemComputer.java @@ -9,7 +9,7 @@ package dan200.computercraft.shared.computer.items; import dan200.computercraft.shared.computer.blocks.BlockComputer; import dan200.computercraft.shared.computer.core.ComputerFamily; import net.minecraft.item.ItemStack; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.text.LiteralText; import javax.annotation.Nonnull; @@ -24,7 +24,7 @@ public class ItemComputer extends ItemComputerBase { ItemStack result = new ItemStack( this ); if( id >= 0 ) result.getOrCreateTag().putInt( NBT_ID, id ); - if( label != null ) result.setDisplayName( new TextComponent( label ) ); + if( label != null ) result.setCustomName( new LiteralText( label ) ); return result; } @@ -32,7 +32,7 @@ public class ItemComputer extends ItemComputerBase public ItemStack withFamily( @Nonnull ItemStack stack, @Nonnull ComputerFamily family ) { ItemStack result = ComputerItemFactory.create( getComputerID( stack ), null, family ); - if( stack.hasDisplayName() ) result.setDisplayName( stack.getDisplayName() ); + if( stack.hasCustomName() ) result.setCustomName( stack.getName() ); return result; } } diff --git a/src/main/java/dan200/computercraft/shared/computer/items/ItemComputerBase.java b/src/main/java/dan200/computercraft/shared/computer/items/ItemComputerBase.java index 273647416..e0d1acd2e 100644 --- a/src/main/java/dan200/computercraft/shared/computer/items/ItemComputerBase.java +++ b/src/main/java/dan200/computercraft/shared/computer/items/ItemComputerBase.java @@ -12,13 +12,13 @@ import dan200.computercraft.api.filesystem.IMount; import dan200.computercraft.api.media.IMedia; import dan200.computercraft.shared.computer.blocks.BlockComputerBase; import dan200.computercraft.shared.computer.core.ComputerFamily; -import net.minecraft.ChatFormat; import net.minecraft.client.item.TooltipContext; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; +import net.minecraft.text.TranslatableText; +import net.minecraft.util.Formatting; import net.minecraft.world.World; import javax.annotation.Nonnull; @@ -36,15 +36,15 @@ public abstract class ItemComputerBase extends BlockItem implements IComputerIte } @Override - public void buildTooltip( @Nonnull ItemStack stack, @Nullable World world, @Nonnull List list, @Nonnull TooltipContext options ) + public void appendTooltip( @Nonnull ItemStack stack, @Nullable World world, @Nonnull List list, @Nonnull TooltipContext options ) { if( options.isAdvanced() ) { int id = getComputerID( stack ); if( id >= 0 ) { - list.add( new TranslatableComponent( "gui.computercraft.tooltip.computer_id", id ) - .applyFormat( ChatFormat.GRAY ) ); + list.add( new TranslatableText( "gui.computercraft.tooltip.computer_id", id ) + .formatted( Formatting.GRAY ) ); } } } @@ -52,7 +52,7 @@ public abstract class ItemComputerBase extends BlockItem implements IComputerIte @Override public String getLabel( @Nonnull ItemStack stack ) { - return stack.hasDisplayName() ? stack.getDisplayName().getString() : null; + return stack.hasCustomName() ? stack.getName().getString() : null; } @Override @@ -68,11 +68,11 @@ public abstract class ItemComputerBase extends BlockItem implements IComputerIte { if( label != null ) { - stack.setDisplayName( new TextComponent( label ) ); + stack.setCustomName( new LiteralText( label ) ); } else { - stack.removeDisplayName(); + stack.removeCustomName(); } return true; } diff --git a/src/main/java/dan200/computercraft/shared/computer/recipe/ComputerFamilyRecipe.java b/src/main/java/dan200/computercraft/shared/computer/recipe/ComputerFamilyRecipe.java index 2637b83df..081f062d0 100644 --- a/src/main/java/dan200/computercraft/shared/computer/recipe/ComputerFamilyRecipe.java +++ b/src/main/java/dan200/computercraft/shared/computer/recipe/ComputerFamilyRecipe.java @@ -60,7 +60,7 @@ public abstract class ComputerFamilyRecipe extends ComputerConvertRecipe int height = buf.readVarInt(); String group = buf.readString( Short.MAX_VALUE ); - DefaultedList ingredients = DefaultedList.create( width * height, Ingredient.EMPTY ); + DefaultedList ingredients = DefaultedList.ofSize( width * height, Ingredient.EMPTY ); for( int i = 0; i < ingredients.size(); i++ ) ingredients.set( i, Ingredient.fromPacket( buf ) ); ItemStack result = buf.readItemStack(); diff --git a/src/main/java/dan200/computercraft/shared/media/items/ItemDisk.java b/src/main/java/dan200/computercraft/shared/media/items/ItemDisk.java index 10dcb24d3..0e5e24c2b 100644 --- a/src/main/java/dan200/computercraft/shared/media/items/ItemDisk.java +++ b/src/main/java/dan200/computercraft/shared/media/items/ItemDisk.java @@ -12,16 +12,16 @@ import dan200.computercraft.api.filesystem.IMount; import dan200.computercraft.api.media.IMedia; import dan200.computercraft.shared.common.IColouredItem; import dan200.computercraft.shared.util.Colour; -import net.minecraft.ChatFormat; import net.minecraft.client.item.TooltipContext; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; 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.text.LiteralText; +import net.minecraft.text.Text; +import net.minecraft.text.TranslatableText; import net.minecraft.util.DefaultedList; +import net.minecraft.util.Formatting; import net.minecraft.world.World; import javax.annotation.Nonnull; @@ -48,9 +48,9 @@ public class ItemDisk extends Item implements IMedia, IColouredItem } @Override - public void appendItemsForGroup( @Nonnull ItemGroup tabs, @Nonnull DefaultedList list ) + public void appendStacks( @Nonnull ItemGroup tabs, @Nonnull DefaultedList list ) { - if( !isInItemGroup( tabs ) ) return; + if( !isIn( tabs ) ) return; for( int colour = 0; colour < 16; colour++ ) { list.add( createFromIDAndColour( -1, null, Colour.VALUES[colour].getHex() ) ); @@ -58,15 +58,15 @@ public class ItemDisk extends Item implements IMedia, IColouredItem } @Override - public void buildTooltip( ItemStack stack, @Nullable World world, List list, TooltipContext options ) + public void appendTooltip( ItemStack stack, @Nullable World world, List list, TooltipContext options ) { if( options.isAdvanced() ) { int id = getDiskID( stack ); if( id >= 0 ) { - list.add( new TranslatableComponent( "gui.computercraft.tooltip.disk_id", id ) - .applyFormat( ChatFormat.GRAY ) ); + list.add( new TranslatableText( "gui.computercraft.tooltip.disk_id", id ) + .formatted( Formatting.GRAY ) ); } } } @@ -74,7 +74,7 @@ public class ItemDisk extends Item implements IMedia, IColouredItem @Override public String getLabel( @Nonnull ItemStack stack ) { - return stack.hasDisplayName() ? stack.getDisplayName().getString() : null; + return stack.hasCustomName() ? stack.getName().getString() : null; } @Override @@ -82,11 +82,11 @@ public class ItemDisk extends Item implements IMedia, IColouredItem { if( label != null ) { - stack.setDisplayName( new TextComponent( label ) ); + stack.setCustomName( new LiteralText( label ) ); } else { - stack.removeDisplayName(); + stack.removeCustomName(); } return true; } diff --git a/src/main/java/dan200/computercraft/shared/media/items/ItemPrintout.java b/src/main/java/dan200/computercraft/shared/media/items/ItemPrintout.java index cba9d1aa6..133f66e96 100644 --- a/src/main/java/dan200/computercraft/shared/media/items/ItemPrintout.java +++ b/src/main/java/dan200/computercraft/shared/media/items/ItemPrintout.java @@ -13,8 +13,8 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import net.minecraft.util.TypedActionResult; @@ -50,10 +50,10 @@ public class ItemPrintout extends Item } @Override - public void buildTooltip( @Nonnull ItemStack stack, World world, List list, TooltipContext options ) + public void appendTooltip( @Nonnull ItemStack stack, World world, List list, TooltipContext options ) { String title = getTitle( stack ); - if( title != null && !title.isEmpty() ) list.add( new TextComponent( title ) ); + if( title != null && !title.isEmpty() ) list.add( new LiteralText( title ) ); } @Override diff --git a/src/main/java/dan200/computercraft/shared/media/items/ItemTreasureDisk.java b/src/main/java/dan200/computercraft/shared/media/items/ItemTreasureDisk.java index c2b84fba4..67b9800b7 100644 --- a/src/main/java/dan200/computercraft/shared/media/items/ItemTreasureDisk.java +++ b/src/main/java/dan200/computercraft/shared/media/items/ItemTreasureDisk.java @@ -17,11 +17,10 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import net.minecraft.util.DefaultedList; import net.minecraft.world.World; - import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.io.IOException; @@ -39,15 +38,15 @@ public class ItemTreasureDisk extends Item implements IMedia } @Override - public void appendItemsForGroup( @Nonnull ItemGroup group, @Nonnull DefaultedList stacks ) + public void appendStacks( @Nonnull ItemGroup group, @Nonnull DefaultedList stacks ) { } @Override - public void buildTooltip( ItemStack stack, @Nullable World world, List list, TooltipContext context ) + public void appendTooltip( ItemStack stack, @Nullable World world, List list, TooltipContext context ) { String label = getTitle( stack ); - if( !label.isEmpty() ) list.add( new TextComponent( label ) ); + if( !label.isEmpty() ) list.add( new LiteralText( label ) ); } @Override diff --git a/src/main/java/dan200/computercraft/shared/mixed/MixedFirstPersonRenderer.java b/src/main/java/dan200/computercraft/shared/mixed/MixedFirstPersonRenderer.java index d5c065f27..464818962 100644 --- a/src/main/java/dan200/computercraft/shared/mixed/MixedFirstPersonRenderer.java +++ b/src/main/java/dan200/computercraft/shared/mixed/MixedFirstPersonRenderer.java @@ -6,13 +6,13 @@ package dan200.computercraft.shared.mixed; -import net.minecraft.util.AbsoluteHand; +import net.minecraft.util.Arm; public interface MixedFirstPersonRenderer { void renderArms_CC(); - void renderArmFirstPerson_CC( float equip, float swing, AbsoluteHand hand ); + void renderArmFirstPerson_CC( float equip, float swing, Arm hand ); float getMapAngleFromPitch_CC( float pitch ); } diff --git a/src/main/java/dan200/computercraft/shared/mixin/MixinFirstPersonRenderer.java b/src/main/java/dan200/computercraft/shared/mixin/MixinFirstPersonRenderer.java index 35702b427..2482e247d 100644 --- a/src/main/java/dan200/computercraft/shared/mixin/MixinFirstPersonRenderer.java +++ b/src/main/java/dan200/computercraft/shared/mixin/MixinFirstPersonRenderer.java @@ -14,7 +14,7 @@ import dan200.computercraft.shared.pocket.items.ItemPocketComputer; import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.FirstPersonRenderer; import net.minecraft.item.ItemStack; -import net.minecraft.util.AbsoluteHand; +import net.minecraft.util.Arm; import net.minecraft.util.Hand; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -37,7 +37,7 @@ public class MixinFirstPersonRenderer implements MixedFirstPersonRenderer } @Shadow - private void renderArmHoldingItem( float equip, float swing, AbsoluteHand hand ) + private void renderArmHoldingItem( float equip, float swing, Arm hand ) { } @@ -48,7 +48,7 @@ public class MixinFirstPersonRenderer implements MixedFirstPersonRenderer } @Override - public void renderArmFirstPerson_CC( float equip, float swing, AbsoluteHand hand ) + public void renderArmFirstPerson_CC( float equip, float swing, Arm hand ) { renderArmHoldingItem( equip, swing, hand ); } diff --git a/src/main/java/dan200/computercraft/shared/network/client/ChatTableClientMessage.java b/src/main/java/dan200/computercraft/shared/network/client/ChatTableClientMessage.java index bd0817f50..61cd0b2ab 100644 --- a/src/main/java/dan200/computercraft/shared/network/client/ChatTableClientMessage.java +++ b/src/main/java/dan200/computercraft/shared/network/client/ChatTableClientMessage.java @@ -12,7 +12,7 @@ import dan200.computercraft.shared.network.NetworkMessage; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.network.PacketContext; -import net.minecraft.network.chat.Component; +import net.minecraft.text.Text; import net.minecraft.util.PacketByteBuf; import javax.annotation.Nonnull; @@ -39,13 +39,13 @@ public class ChatTableClientMessage implements NetworkMessage buf.writeBoolean( table.getHeaders() != null ); if( table.getHeaders() != null ) { - for( Component header : table.getHeaders() ) buf.writeTextComponent( header ); + for( Text header : table.getHeaders() ) buf.writeText( header ); } buf.writeVarInt( table.getRows().size() ); - for( Component[] row : table.getRows() ) + for( Text[] row : table.getRows() ) { - for( Component column : row ) buf.writeTextComponent( column ); + for( Text column : row ) buf.writeText( column ); } buf.writeVarInt( table.getAdditional() ); @@ -59,8 +59,8 @@ public class ChatTableClientMessage implements NetworkMessage TableBuilder table; if( buf.readBoolean() ) { - Component[] headers = new Component[columns]; - for( int i = 0; i < columns; i++ ) headers[i] = buf.readTextComponent(); + Text[] headers = new Text[columns]; + for( int i = 0; i < columns; i++ ) headers[i] = buf.readText(); table = new TableBuilder( id, headers ); } else @@ -71,8 +71,8 @@ public class ChatTableClientMessage implements NetworkMessage int rows = buf.readVarInt(); for( int i = 0; i < rows; i++ ) { - Component[] row = new Component[columns]; - for( int j = 0; j < columns; j++ ) row[j] = buf.readTextComponent(); + Text[] row = new Text[columns]; + for( int j = 0; j < columns; j++ ) row[j] = buf.readText(); table.row( row ); } diff --git a/src/main/java/dan200/computercraft/shared/peripheral/diskdrive/BlockDiskDrive.java b/src/main/java/dan200/computercraft/shared/peripheral/diskdrive/BlockDiskDrive.java index 18946c288..093470234 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/diskdrive/BlockDiskDrive.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/diskdrive/BlockDiskDrive.java @@ -25,8 +25,8 @@ import javax.annotation.Nullable; public class BlockDiskDrive extends BlockGeneric { - static final DirectionProperty FACING = Properties.FACING_HORIZONTAL; - static final EnumProperty STATE = EnumProperty.create( "state", DiskDriveState.class ); + static final DirectionProperty FACING = Properties.HORIZONTAL_FACING; + static final EnumProperty STATE = EnumProperty.of( "state", DiskDriveState.class ); public BlockDiskDrive( Settings settings ) { @@ -46,16 +46,16 @@ public class BlockDiskDrive extends BlockGeneric @Override public BlockState getPlacementState( ItemPlacementContext placement ) { - return getDefaultState().with( FACING, placement.getPlayerHorizontalFacing().getOpposite() ); + return getDefaultState().with( FACING, placement.getPlayerFacing().getOpposite() ); } @Override public void onPlaced( World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack ) { - if( stack.hasDisplayName() ) + if( stack.hasCustomName() ) { BlockEntity tileentity = world.getBlockEntity( pos ); - if( tileentity instanceof TileDiskDrive ) ((TileDiskDrive) tileentity).customName = stack.getDisplayName(); + if( tileentity instanceof TileDiskDrive ) ((TileDiskDrive) tileentity).customName = stack.getName(); } } } diff --git a/src/main/java/dan200/computercraft/shared/peripheral/diskdrive/ContainerDiskDrive.java b/src/main/java/dan200/computercraft/shared/peripheral/diskdrive/ContainerDiskDrive.java index bd5c01071..78f128894 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/diskdrive/ContainerDiskDrive.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/diskdrive/ContainerDiskDrive.java @@ -81,7 +81,7 @@ public class ContainerDiskDrive extends Container slot.markDirty(); } - if( existing.getAmount() == result.getAmount() ) return ItemStack.EMPTY; + if( existing.getCount() == result.getCount() ) return ItemStack.EMPTY; slot.onTakeItem( player, existing ); return result; diff --git a/src/main/java/dan200/computercraft/shared/peripheral/diskdrive/TileDiskDrive.java b/src/main/java/dan200/computercraft/shared/peripheral/diskdrive/TileDiskDrive.java index ea636823a..7a9dd0c42 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/diskdrive/TileDiskDrive.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/diskdrive/TileDiskDrive.java @@ -26,9 +26,9 @@ import net.minecraft.entity.ItemEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.sound.SoundEvent; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import net.minecraft.util.Hand; import net.minecraft.util.Identifier; import net.minecraft.util.Nameable; @@ -60,7 +60,7 @@ public final class TileDiskDrive extends TileGeneric implements DefaultInventory String mountPath; } - Component customName; + Text customName; private final Map m_computers = new HashMap<>(); @@ -116,7 +116,7 @@ public final class TileDiskDrive extends TileGeneric implements DefaultInventory public void fromTag( CompoundTag nbt ) { super.fromTag( nbt ); - customName = nbt.containsKey( NBT_NAME ) ? TextComponent.Serializer.fromJsonString( nbt.getString( NBT_NAME ) ) : null; + customName = nbt.containsKey( NBT_NAME ) ? LiteralText.Serializer.fromJson( nbt.getString( NBT_NAME ) ) : null; if( nbt.containsKey( NBT_ITEM ) ) { CompoundTag item = nbt.getCompound( NBT_ITEM ); @@ -129,7 +129,7 @@ public final class TileDiskDrive extends TileGeneric implements DefaultInventory @Override public CompoundTag toTag( CompoundTag nbt ) { - if( customName != null ) nbt.putString( NBT_NAME, TextComponent.Serializer.toJsonString( customName ) ); + if( customName != null ) nbt.putString( NBT_NAME, LiteralText.Serializer.toJson( customName ) ); if( !m_diskStack.isEmpty() ) { @@ -216,7 +216,7 @@ public final class TileDiskDrive extends TileGeneric implements DefaultInventory { if( m_diskStack.isEmpty() ) return ItemStack.EMPTY; - if( m_diskStack.getAmount() <= count ) + if( m_diskStack.getCount() <= count ) { ItemStack disk = m_diskStack; setInvStack( slot, ItemStack.EMPTY ); @@ -496,7 +496,7 @@ public final class TileDiskDrive extends TileGeneric implements DefaultInventory protected void readDescription( @Nonnull CompoundTag nbt ) { super.readDescription( nbt ); - customName = nbt.containsKey( NBT_NAME ) ? TextComponent.Serializer.fromJsonString( nbt.getString( NBT_NAME ) ) : null; + customName = nbt.containsKey( NBT_NAME ) ? LiteralText.Serializer.fromJson( nbt.getString( NBT_NAME ) ) : null; m_diskStack = nbt.containsKey( NBT_ITEM ) ? ItemStack.fromTag( nbt.getCompound( NBT_ITEM ) ) : ItemStack.EMPTY; updateBlock(); } @@ -505,7 +505,7 @@ public final class TileDiskDrive extends TileGeneric implements DefaultInventory protected void writeDescription( @Nonnull CompoundTag nbt ) { super.writeDescription( nbt ); - if( customName != null ) nbt.putString( NBT_NAME, TextComponent.Serializer.toJsonString( customName ) ); + if( customName != null ) nbt.putString( NBT_NAME, LiteralText.Serializer.toJson( customName ) ); if( !m_diskStack.isEmpty() ) { CompoundTag item = new CompoundTag(); @@ -543,15 +543,15 @@ public final class TileDiskDrive extends TileGeneric implements DefaultInventory @Nullable @Override - public Component getCustomName() + public Text getCustomName() { return customName; } @Nonnull @Override - public Component getName() + public Text getName() { - return customName != null ? customName : getCachedState().getBlock().getTextComponent(); + return customName != null ? customName : getCachedState().getBlock().getName(); } } diff --git a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockCable.java b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockCable.java index 49e13e08f..ba2362513 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockCable.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockCable.java @@ -41,15 +41,15 @@ import java.util.EnumMap; public class BlockCable extends BlockGeneric implements WaterloggableBlock { - public static final EnumProperty MODEM = EnumProperty.create( "modem", CableModemVariant.class ); - public static final BooleanProperty CABLE = BooleanProperty.create( "cable" ); + public static final EnumProperty MODEM = EnumProperty.of( "modem", CableModemVariant.class ); + public static final BooleanProperty CABLE = BooleanProperty.of( "cable" ); - private static final BooleanProperty NORTH = BooleanProperty.create( "north" ); - private static final BooleanProperty SOUTH = BooleanProperty.create( "south" ); - private static final BooleanProperty EAST = BooleanProperty.create( "east" ); - private static final BooleanProperty WEST = BooleanProperty.create( "west" ); - private static final BooleanProperty UP = BooleanProperty.create( "up" ); - private static final BooleanProperty DOWN = BooleanProperty.create( "down" ); + private static final BooleanProperty NORTH = BooleanProperty.of( "north" ); + private static final BooleanProperty SOUTH = BooleanProperty.of( "south" ); + private static final BooleanProperty EAST = BooleanProperty.of( "east" ); + private static final BooleanProperty WEST = BooleanProperty.of( "west" ); + private static final BooleanProperty UP = BooleanProperty.of( "up" ); + private static final BooleanProperty DOWN = BooleanProperty.of( "down" ); static final EnumMap CONNECTIONS = new EnumMap<>( new ImmutableMap.Builder() @@ -217,7 +217,7 @@ public class BlockCable extends BlockGeneric implements WaterloggableBlock BlockState state = getDefaultState() .with( WATERLOGGED, getWaterloggedStateForPlacement( context ) ); - if( context.getItemStack().getItem() instanceof ItemBlockCable.Cable ) + if( context.getStack().getItem() instanceof ItemBlockCable.Cable ) { World world = context.getWorld(); BlockPos pos = context.getBlockPos(); @@ -225,7 +225,7 @@ public class BlockCable extends BlockGeneric implements WaterloggableBlock } else { - return state.with( MODEM, CableModemVariant.from( context.getFacing().getOpposite() ) ); + return state.with( MODEM, CableModemVariant.from( context.getSide().getOpposite() ) ); } } diff --git a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockWiredModemFull.java b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockWiredModemFull.java index d290a08d0..08bc88c77 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockWiredModemFull.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockWiredModemFull.java @@ -14,8 +14,8 @@ import net.minecraft.state.property.BooleanProperty; public class BlockWiredModemFull extends BlockGeneric { - public static final BooleanProperty MODEM_ON = BooleanProperty.create( "modem" ); - public static final BooleanProperty PERIPHERAL_ON = BooleanProperty.create( "peripheral" ); + public static final BooleanProperty MODEM_ON = BooleanProperty.of( "modem" ); + public static final BooleanProperty PERIPHERAL_ON = BooleanProperty.of( "peripheral" ); public BlockWiredModemFull( Settings settings ) { diff --git a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/ItemBlockCable.java b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/ItemBlockCable.java index cc48eac6a..db4ac4ef7 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/ItemBlockCable.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/ItemBlockCable.java @@ -58,9 +58,9 @@ public abstract class ItemBlockCable extends BlockItem } @Override - public void appendItemsForGroup( ItemGroup group, DefaultedList list ) + public void appendStacks( ItemGroup group, DefaultedList list ) { - if( isInItemGroup( group ) ) list.add( new ItemStack( this ) ); + if( isIn( group ) ) list.add( new ItemStack( this ) ); } @Override @@ -84,7 +84,7 @@ public abstract class ItemBlockCable extends BlockItem @Override public ActionResult place( ItemPlacementContext context ) { - ItemStack stack = context.getItemStack(); + ItemStack stack = context.getStack(); if( stack.isEmpty() ) return ActionResult.FAIL; World world = context.getWorld(); @@ -94,13 +94,13 @@ public abstract class ItemBlockCable extends BlockItem // Try to add a modem to a cable if( existingState.getBlock() == ComputerCraft.Blocks.cable && existingState.get( MODEM ) == CableModemVariant.None ) { - Direction side = context.getFacing().getOpposite(); + Direction side = context.getSide().getOpposite(); BlockState newState = existingState .with( MODEM, CableModemVariant.from( side ) ) .with( CONNECTIONS.get( side ), existingState.get( CABLE ) ); if( placeAt( world, pos, newState ) ) { - stack.subtractAmount( 1 ); + stack.decrement( 1 ); return ActionResult.SUCCESS; } } @@ -120,19 +120,19 @@ public abstract class ItemBlockCable extends BlockItem @Override public ActionResult place( ItemPlacementContext context ) { - ItemStack stack = context.getItemStack(); + ItemStack stack = context.getStack(); if( stack.isEmpty() ) return ActionResult.FAIL; World world = context.getWorld(); BlockPos pos = context.getBlockPos(); // Try to add a cable to a modem inside the block we're clicking on. - BlockPos insidePos = pos.offset( context.getFacing().getOpposite() ); + BlockPos insidePos = pos.offset( context.getSide().getOpposite() ); BlockState insideState = world.getBlockState( insidePos ); if( insideState.getBlock() == ComputerCraft.Blocks.cable && !insideState.get( BlockCable.CABLE ) && placeAtCorrected( world, insidePos, insideState.with( BlockCable.CABLE, true ) ) ) { - stack.subtractAmount( 1 ); + stack.decrement( 1 ); return ActionResult.SUCCESS; } @@ -141,7 +141,7 @@ public abstract class ItemBlockCable extends BlockItem if( existingState.getBlock() == ComputerCraft.Blocks.cable && !existingState.get( BlockCable.CABLE ) && placeAtCorrected( world, pos, existingState.with( BlockCable.CABLE, true ) ) ) { - stack.subtractAmount( 1 ); + stack.decrement( 1 ); return ActionResult.SUCCESS; } diff --git a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/TileCable.java b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/TileCable.java index 01cd25017..8173642c8 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/TileCable.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/TileCable.java @@ -24,7 +24,7 @@ import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.text.TranslatableText; import net.minecraft.util.Hand; import net.minecraft.util.Identifier; import net.minecraft.util.hit.BlockHitResult; @@ -238,12 +238,12 @@ public class TileCable extends TileGeneric implements IPeripheralTile { if( oldName != null ) { - player.addChatMessage( new TranslatableComponent( "chat.computercraft.wired_modem.peripheral_disconnected", + player.addChatMessage( new TranslatableText( "chat.computercraft.wired_modem.peripheral_disconnected", CommandCopy.createCopyText( oldName ) ), false ); } if( newName != null ) { - player.addChatMessage( new TranslatableComponent( "chat.computercraft.wired_modem.peripheral_connected", + player.addChatMessage( new TranslatableText( "chat.computercraft.wired_modem.peripheral_connected", CommandCopy.createCopyText( newName ) ), false ); } } diff --git a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/TileWiredModemFull.java b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/TileWiredModemFull.java index e909cfa8f..ce773f940 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/TileWiredModemFull.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/TileWiredModemFull.java @@ -22,8 +22,8 @@ import dan200.computercraft.shared.util.TickScheduler; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.text.LiteralText; +import net.minecraft.text.TranslatableText; import net.minecraft.util.Hand; import net.minecraft.util.Identifier; import net.minecraft.util.hit.BlockHitResult; @@ -194,14 +194,14 @@ public class TileWiredModemFull extends TileGeneric implements IPeripheralTile List names = new ArrayList<>( peripherals ); names.sort( Comparator.naturalOrder() ); - TextComponent base = new TextComponent( "" ); + LiteralText base = new LiteralText( "" ); for( int i = 0; i < names.size(); i++ ) { if( i > 0 ) base.append( ", " ); base.append( CommandCopy.createCopyText( names.get( i ) ) ); } - player.addChatMessage( new TranslatableComponent( kind, base ), false ); + player.addChatMessage( new TranslatableText( kind, base ), false ); } @Override diff --git a/src/main/java/dan200/computercraft/shared/peripheral/modem/wireless/BlockWirelessModem.java b/src/main/java/dan200/computercraft/shared/peripheral/modem/wireless/BlockWirelessModem.java index ee21d44d4..2ed0f54ba 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/modem/wireless/BlockWirelessModem.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/modem/wireless/BlockWirelessModem.java @@ -32,7 +32,7 @@ import javax.annotation.Nullable; public class BlockWirelessModem extends BlockGeneric implements WaterloggableBlock { public static final DirectionProperty FACING = Properties.FACING; - public static final BooleanProperty ON = BooleanProperty.create( "on" ); + public static final BooleanProperty ON = BooleanProperty.of( "on" ); public BlockWirelessModem( Settings settings, NamedBlockEntityType type ) { @@ -91,7 +91,7 @@ public class BlockWirelessModem extends BlockGeneric implements WaterloggableBlo public BlockState getPlacementState( ItemPlacementContext placement ) { return getDefaultState() - .with( FACING, placement.getFacing().getOpposite() ) + .with( FACING, placement.getSide().getOpposite() ) .with( WATERLOGGED, getWaterloggedStateForPlacement( placement ) ); } } diff --git a/src/main/java/dan200/computercraft/shared/peripheral/monitor/BlockMonitor.java b/src/main/java/dan200/computercraft/shared/peripheral/monitor/BlockMonitor.java index c914eb391..ca7c34bfb 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/monitor/BlockMonitor.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/monitor/BlockMonitor.java @@ -28,12 +28,12 @@ import javax.annotation.Nullable; public class BlockMonitor extends BlockGeneric { - public static final DirectionProperty ORIENTATION = DirectionProperty.create( "orientation", + public static final DirectionProperty ORIENTATION = DirectionProperty.of( "orientation", Direction.UP, Direction.DOWN, Direction.NORTH ); - public static final DirectionProperty FACING = Properties.FACING_HORIZONTAL; + public static final DirectionProperty FACING = Properties.HORIZONTAL_FACING; - static final EnumProperty STATE = EnumProperty.create( "state", MonitorEdgeState.class ); + static final EnumProperty STATE = EnumProperty.of( "state", MonitorEdgeState.class ); public BlockMonitor( Settings settings, NamedBlockEntityType type ) { @@ -78,7 +78,7 @@ public class BlockMonitor extends BlockGeneric } return getDefaultState() - .with( FACING, context.getPlayerHorizontalFacing().getOpposite() ) + .with( FACING, context.getPlayerFacing().getOpposite() ) .with( ORIENTATION, orientation ); } diff --git a/src/main/java/dan200/computercraft/shared/peripheral/printer/BlockPrinter.java b/src/main/java/dan200/computercraft/shared/peripheral/printer/BlockPrinter.java index b9365c445..36a632df8 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/printer/BlockPrinter.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/printer/BlockPrinter.java @@ -25,9 +25,9 @@ import javax.annotation.Nullable; public class BlockPrinter extends BlockGeneric { - private static final DirectionProperty FACING = Properties.FACING_HORIZONTAL; - static final BooleanProperty TOP = BooleanProperty.create( "top" ); - static final BooleanProperty BOTTOM = BooleanProperty.create( "bottom" ); + private static final DirectionProperty FACING = Properties.HORIZONTAL_FACING; + static final BooleanProperty TOP = BooleanProperty.of( "top" ); + static final BooleanProperty BOTTOM = BooleanProperty.of( "bottom" ); public BlockPrinter( Settings settings ) { @@ -49,16 +49,16 @@ public class BlockPrinter extends BlockGeneric @Override public BlockState getPlacementState( ItemPlacementContext placement ) { - return getDefaultState().with( FACING, placement.getPlayerHorizontalFacing().getOpposite() ); + return getDefaultState().with( FACING, placement.getPlayerFacing().getOpposite() ); } @Override public void onPlaced( World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack ) { - if( stack.hasDisplayName() ) + if( stack.hasCustomName() ) { BlockEntity tileentity = world.getBlockEntity( pos ); - if( tileentity instanceof TilePrinter ) ((TilePrinter) tileentity).customName = stack.getDisplayName(); + if( tileentity instanceof TilePrinter ) ((TilePrinter) tileentity).customName = stack.getName(); } } } diff --git a/src/main/java/dan200/computercraft/shared/peripheral/printer/ContainerPrinter.java b/src/main/java/dan200/computercraft/shared/peripheral/printer/ContainerPrinter.java index 61530bf9e..38b31a759 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/printer/ContainerPrinter.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/printer/ContainerPrinter.java @@ -112,7 +112,7 @@ public class ContainerPrinter extends Container slot.markDirty(); } - if( stack.getAmount() == result.getAmount() ) return ItemStack.EMPTY; + if( stack.getCount() == result.getCount() ) return ItemStack.EMPTY; slot.onTakeItem( player, stack ); return result; diff --git a/src/main/java/dan200/computercraft/shared/peripheral/printer/TilePrinter.java b/src/main/java/dan200/computercraft/shared/peripheral/printer/TilePrinter.java index f73efb78a..3a389a14a 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/printer/TilePrinter.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/printer/TilePrinter.java @@ -22,8 +22,8 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import net.minecraft.util.*; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; @@ -52,9 +52,9 @@ public final class TilePrinter extends TileGeneric implements DefaultSidedInvent private static final int[] TOP_SLOTS = new int[] { 1, 2, 3, 4, 5, 6 }; private static final int[] SIDE_SLOTS = new int[] { 0 }; - Component customName; + Text customName; - private final DefaultedList m_inventory = DefaultedList.create( INVENTORY_SIZE, ItemStack.EMPTY ); + private final DefaultedList m_inventory = DefaultedList.ofSize( INVENTORY_SIZE, ItemStack.EMPTY ); private final ItemStorage m_itemHandlerAll = ItemStorage.wrap( this ); private final Terminal m_page = new Terminal( ItemPrintout.LINE_MAX_LENGTH, ItemPrintout.LINES_PER_PAGE ); @@ -86,7 +86,7 @@ public final class TilePrinter extends TileGeneric implements DefaultSidedInvent { super.fromTag( nbt ); - customName = nbt.containsKey( NBT_NAME ) ? TextComponent.Serializer.fromJsonString( nbt.getString( NBT_NAME ) ) : null; + customName = nbt.containsKey( NBT_NAME ) ? LiteralText.Serializer.fromJson( nbt.getString( NBT_NAME ) ) : null; // Read page synchronized( m_page ) @@ -107,7 +107,7 @@ public final class TilePrinter extends TileGeneric implements DefaultSidedInvent @Override public CompoundTag toTag( CompoundTag nbt ) { - if( customName != null ) nbt.putString( NBT_NAME, TextComponent.Serializer.toJsonString( customName ) ); + if( customName != null ) nbt.putString( NBT_NAME, LiteralText.Serializer.toJson( customName ) ); // Write page synchronized( m_page ) @@ -130,14 +130,14 @@ public final class TilePrinter extends TileGeneric implements DefaultSidedInvent protected void writeDescription( @Nonnull CompoundTag nbt ) { super.writeDescription( nbt ); - if( customName != null ) nbt.putString( NBT_NAME, TextComponent.Serializer.toJsonString( customName ) ); + if( customName != null ) nbt.putString( NBT_NAME, LiteralText.Serializer.toJson( customName ) ); } @Override public void readDescription( @Nonnull CompoundTag nbt ) { super.readDescription( nbt ); - customName = nbt.containsKey( NBT_NAME ) ? TextComponent.Serializer.fromJsonString( nbt.getString( NBT_NAME ) ) : null; + customName = nbt.containsKey( NBT_NAME ) ? LiteralText.Serializer.fromJson( nbt.getString( NBT_NAME ) ) : null; updateBlock(); } @@ -192,7 +192,7 @@ public final class TilePrinter extends TileGeneric implements DefaultSidedInvent { if( m_inventory.get( i ).isEmpty() ) return ItemStack.EMPTY; - if( m_inventory.get( i ).getAmount() <= j ) + if( m_inventory.get( i ).getCount() <= j ) { ItemStack itemstack = m_inventory.get( i ); m_inventory.set( i, ItemStack.EMPTY ); @@ -313,7 +313,7 @@ public final class TilePrinter extends TileGeneric implements DefaultSidedInvent synchronized( m_inventory ) { ItemStack inkStack = m_inventory.get( 0 ); - return isInk( inkStack ) ? inkStack.getAmount() : 0; + return isInk( inkStack ) ? inkStack.getCount() : 0; } } @@ -327,7 +327,7 @@ public final class TilePrinter extends TileGeneric implements DefaultSidedInvent ItemStack paperStack = m_inventory.get( i ); if( !paperStack.isEmpty() && isPaper( paperStack ) ) { - count += paperStack.getAmount(); + count += paperStack.getCount(); } } } @@ -397,11 +397,11 @@ public final class TilePrinter extends TileGeneric implements DefaultSidedInvent m_page.setCursorPos( 0, 0 ); // Decrement ink - inkStack.subtractAmount( 1 ); + inkStack.decrement( 1 ); if( inkStack.isEmpty() ) m_inventory.set( 0, ItemStack.EMPTY ); // Decrement paper - paperStack.subtractAmount( 1 ); + paperStack.decrement( 1 ); if( paperStack.isEmpty() ) { m_inventory.set( i, ItemStack.EMPTY ); @@ -529,15 +529,15 @@ public final class TilePrinter extends TileGeneric implements DefaultSidedInvent @Nullable @Override - public Component getCustomName() + public Text getCustomName() { return customName; } @Nonnull @Override - public Component getName() + public Text getName() { - return customName != null ? customName : getCachedState().getBlock().getTextComponent(); + return customName != null ? customName : getCachedState().getBlock().getName(); } } diff --git a/src/main/java/dan200/computercraft/shared/peripheral/speaker/BlockSpeaker.java b/src/main/java/dan200/computercraft/shared/peripheral/speaker/BlockSpeaker.java index 6721a6e66..c26c27f59 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/speaker/BlockSpeaker.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/speaker/BlockSpeaker.java @@ -19,7 +19,7 @@ import javax.annotation.Nullable; public class BlockSpeaker extends BlockGeneric { - private static final DirectionProperty FACING = Properties.FACING_HORIZONTAL; + private static final DirectionProperty FACING = Properties.HORIZONTAL_FACING; public BlockSpeaker( Settings settings ) { @@ -38,6 +38,6 @@ public class BlockSpeaker extends BlockGeneric @Override public BlockState getPlacementState( ItemPlacementContext placement ) { - return getDefaultState().with( FACING, placement.getPlayerHorizontalFacing().getOpposite() ); + return getDefaultState().with( FACING, placement.getPlayerFacing().getOpposite() ); } } diff --git a/src/main/java/dan200/computercraft/shared/pocket/apis/PocketAPI.java b/src/main/java/dan200/computercraft/shared/pocket/apis/PocketAPI.java index 53d4ed83d..0a82481a1 100644 --- a/src/main/java/dan200/computercraft/shared/pocket/apis/PocketAPI.java +++ b/src/main/java/dan200/computercraft/shared/pocket/apis/PocketAPI.java @@ -138,7 +138,7 @@ public class PocketAPI implements ILuaAPI { // Consume an item from this stack and exit the loop invStack = invStack.copy(); - invStack.subtractAmount( 1 ); + invStack.decrement( 1 ); inv.set( (i + start) % inv.size(), invStack.isEmpty() ? ItemStack.EMPTY : invStack ); return newUpgrade; diff --git a/src/main/java/dan200/computercraft/shared/pocket/items/ItemPocketComputer.java b/src/main/java/dan200/computercraft/shared/pocket/items/ItemPocketComputer.java index cbf065081..c8fd9d649 100644 --- a/src/main/java/dan200/computercraft/shared/pocket/items/ItemPocketComputer.java +++ b/src/main/java/dan200/computercraft/shared/pocket/items/ItemPocketComputer.java @@ -25,7 +25,6 @@ import dan200.computercraft.shared.pocket.apis.PocketAPI; import dan200.computercraft.shared.pocket.core.PocketServerComputer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.ChatFormat; import net.minecraft.client.item.TooltipContext; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; @@ -35,9 +34,9 @@ import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemPropertyGetter; import net.minecraft.item.ItemStack; 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.text.LiteralText; +import net.minecraft.text.Text; +import net.minecraft.text.TranslatableText; import net.minecraft.util.*; import net.minecraft.world.World; @@ -60,24 +59,24 @@ public class ItemPocketComputer extends Item implements IComputerItem, IMedia, I { super( settings ); this.family = family; - addProperty( new Identifier( ComputerCraft.MOD_ID, "state" ), COMPUTER_STATE ); - addProperty( new Identifier( ComputerCraft.MOD_ID, "coloured" ), COMPUTER_COLOURED ); + addPropertyGetter( new Identifier( ComputerCraft.MOD_ID, "state" ), COMPUTER_STATE ); + addPropertyGetter( new Identifier( ComputerCraft.MOD_ID, "coloured" ), COMPUTER_COLOURED ); } public ItemStack create( int id, String label, int colour, IPocketUpgrade upgrade ) { ItemStack result = new ItemStack( this ); if( id >= 0 ) result.getOrCreateTag().putInt( NBT_ID, id ); - if( label != null ) result.setDisplayName( new TextComponent( label ) ); + if( label != null ) result.setCustomName( new LiteralText( label ) ); if( upgrade != null ) result.getOrCreateTag().putString( NBT_UPGRADE, upgrade.getUpgradeID().toString() ); if( colour != -1 ) result.getOrCreateTag().putInt( NBT_COLOUR, colour ); return result; } @Override - public void appendItemsForGroup( ItemGroup group, DefaultedList stacks ) + public void appendStacks( ItemGroup group, DefaultedList stacks ) { - if( !isInItemGroup( group ) ) return; + if( !isIn( group ) ) return; stacks.add( create( -1, null, -1, null ) ); for( IPocketUpgrade upgrade : PocketUpgrades.getVanillaUpgrades() ) { @@ -86,7 +85,7 @@ public class ItemPocketComputer extends Item implements IComputerItem, IMedia, I } @Override - public void onEntityTick( ItemStack stack, World world, Entity entity, int slotNum, boolean selected ) + public void inventoryTick( ItemStack stack, World world, Entity entity, int slotNum, boolean selected ) { if( !world.isClient ) { @@ -161,33 +160,33 @@ public class ItemPocketComputer extends Item implements IComputerItem, IMedia, I @Nonnull @Override - public Component getTranslatedNameTrimmed( @Nonnull ItemStack stack ) + public Text getName( @Nonnull ItemStack stack ) { String baseString = getTranslationKey( stack ); IPocketUpgrade upgrade = getUpgrade( stack ); if( upgrade != null ) { - return new TranslatableComponent( baseString + ".upgraded", - new TranslatableComponent( upgrade.getUnlocalisedAdjective() ) + return new TranslatableText( baseString + ".upgraded", + new TranslatableText( upgrade.getUnlocalisedAdjective() ) ); } else { - return super.getTranslatedNameTrimmed( stack ); + return super.getName( stack ); } } @Override - public void buildTooltip( ItemStack stack, @Nullable World world, List list, TooltipContext flag ) + public void appendTooltip( ItemStack stack, @Nullable World world, List list, TooltipContext flag ) { if( flag.isAdvanced() ) { int id = getComputerID( stack ); if( id >= 0 ) { - list.add( new TranslatableComponent( "gui.computercraft.tooltip.computer_id", id ) - .applyFormat( ChatFormat.GRAY ) ); + list.add( new TranslatableText( "gui.computercraft.tooltip.computer_id", id ) + .formatted( Formatting.GRAY ) ); } } } @@ -297,11 +296,11 @@ public class ItemPocketComputer extends Item implements IComputerItem, IMedia, I { if( label != null ) { - stack.setDisplayName( new TextComponent( label ) ); + stack.setCustomName( new LiteralText( label ) ); } else { - stack.removeDisplayName(); + stack.removeCustomName(); } return true; } @@ -387,7 +386,7 @@ public class ItemPocketComputer extends Item implements IComputerItem, IMedia, I public static CompoundTag getUpgradeInfo( @Nonnull ItemStack stack ) { - return stack.getOrCreateSubCompoundTag( NBT_UPGRADE_INFO ); + return stack.getOrCreateSubTag( NBT_UPGRADE_INFO ); } private static final ItemPropertyGetter COMPUTER_STATE = ( stack, world, player ) -> getState( stack ).ordinal(); diff --git a/src/main/java/dan200/computercraft/shared/proxy/ComputerCraftProxyCommon.java b/src/main/java/dan200/computercraft/shared/proxy/ComputerCraftProxyCommon.java index bb7570b68..f8426adba 100644 --- a/src/main/java/dan200/computercraft/shared/proxy/ComputerCraftProxyCommon.java +++ b/src/main/java/dan200/computercraft/shared/proxy/ComputerCraftProxyCommon.java @@ -65,16 +65,6 @@ public class ComputerCraftProxyCommon registerProviders(); registerHandlers(); - RecipeSerializer.register( ComputerCraft.MOD_ID + ":colour", ColourableRecipe.SERIALIZER ); - RecipeSerializer.register( ComputerCraft.MOD_ID + ":computer_upgrade", ComputerUpgradeRecipe.SERIALIZER ); - RecipeSerializer.register( ComputerCraft.MOD_ID + ":pocket_computer_upgrade", PocketComputerUpgradeRecipe.SERIALIZER ); - RecipeSerializer.register( ComputerCraft.MOD_ID + ":disk", DiskRecipe.SERIALIZER ); - RecipeSerializer.register( ComputerCraft.MOD_ID + ":printout", PrintoutRecipe.SERIALIZER ); - RecipeSerializer.register( ComputerCraft.MOD_ID + ":turtle", TurtleRecipe.SERIALIZER ); - RecipeSerializer.register( ComputerCraft.MOD_ID + ":turtle_upgrade", TurtleUpgradeRecipe.SERIALIZER ); - RecipeSerializer.register( ComputerCraft.MOD_ID + ":impostor_shapeless", ImpostorShapelessRecipe.SERIALIZER ); - RecipeSerializer.register( ComputerCraft.MOD_ID + ":impostor_shaped", ImpostorRecipe.SERIALIZER ); - ArgumentSerializers.register(); } diff --git a/src/main/java/dan200/computercraft/shared/turtle/FurnaceRefuelHandler.java b/src/main/java/dan200/computercraft/shared/turtle/FurnaceRefuelHandler.java index bdf368c61..112f75535 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/FurnaceRefuelHandler.java +++ b/src/main/java/dan200/computercraft/shared/turtle/FurnaceRefuelHandler.java @@ -31,7 +31,7 @@ public final class FurnaceRefuelHandler implements TurtleRefuelEvent.Handler { ItemStorage storage = ItemStorage.wrap( turtle.getInventory() ); ItemStack stack = storage.take( slot, limit, ItemStack.EMPTY, false ); - int fuelToGive = getFuelPerItem( stack ) * stack.getAmount(); + int fuelToGive = getFuelPerItem( stack ) * stack.getCount(); // Store the replacement item in the inventory Item replacementStack = stack.getItem().getRecipeRemainder(); diff --git a/src/main/java/dan200/computercraft/shared/turtle/apis/TurtleAPI.java b/src/main/java/dan200/computercraft/shared/turtle/apis/TurtleAPI.java index 083e02a52..e5e0ed99a 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/apis/TurtleAPI.java +++ b/src/main/java/dan200/computercraft/shared/turtle/apis/TurtleAPI.java @@ -222,14 +222,14 @@ public class TurtleAPI implements ILuaAPI // getItemCount int slot = parseOptionalSlotNumber( args, 0, m_turtle.getSelectedSlot() ); ItemStack stack = m_turtle.getInventory().getInvStack( slot ); - return new Object[] { stack.getAmount() }; + return new Object[] { stack.getCount() }; } case 15: { // getItemSpace int slot = parseOptionalSlotNumber( args, 0, m_turtle.getSelectedSlot() ); ItemStack stack = m_turtle.getInventory().getInvStack( slot ); - return new Object[] { stack.isEmpty() ? 64 : Math.min( stack.getMaxAmount(), 64 ) - stack.getAmount() }; + return new Object[] { stack.isEmpty() ? 64 : Math.min( stack.getMaxCount(), 64 ) - stack.getCount() }; } case 16: // detect return tryCommand( context, new TurtleDetectCommand( InteractDirection.Forward ) ); @@ -346,7 +346,7 @@ public class TurtleAPI implements ILuaAPI Item item = stack.getItem(); String name = Registry.ITEM.getId( item ).toString(); - int count = stack.getAmount(); + int count = stack.getCount(); Map table = new HashMap<>(); table.put( "name", name ); diff --git a/src/main/java/dan200/computercraft/shared/turtle/blocks/BlockTurtle.java b/src/main/java/dan200/computercraft/shared/turtle/blocks/BlockTurtle.java index aee10a89f..a3bb81757 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/blocks/BlockTurtle.java +++ b/src/main/java/dan200/computercraft/shared/turtle/blocks/BlockTurtle.java @@ -43,7 +43,7 @@ import javax.annotation.Nullable; public class BlockTurtle extends BlockComputerBase implements WaterloggableBlock { - public static final DirectionProperty FACING = Properties.FACING_HORIZONTAL; + public static final DirectionProperty FACING = Properties.HORIZONTAL_FACING; private static final VoxelShape DEFAULT_SHAPE = VoxelShapes.cuboid( 0.125, 0.125, 0.125, @@ -88,7 +88,7 @@ public class BlockTurtle extends BlockComputerBase implements Waterl public BlockState getPlacementState( ItemPlacementContext placement ) { return getDefaultState() - .with( FACING, placement.getPlayerHorizontalFacing() ) + .with( FACING, placement.getPlayerFacing() ) .with( WATERLOGGED, getWaterloggedStateForPlacement( placement ) ); } diff --git a/src/main/java/dan200/computercraft/shared/turtle/blocks/TileTurtle.java b/src/main/java/dan200/computercraft/shared/turtle/blocks/TileTurtle.java index 2a6b5178a..dc21a6fcc 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/blocks/TileTurtle.java +++ b/src/main/java/dan200/computercraft/shared/turtle/blocks/TileTurtle.java @@ -76,8 +76,8 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default public TileTurtle( BlockEntityType type, ComputerFamily family ) { super( type, family ); - m_inventory = DefaultedList.create( INVENTORY_SIZE, ItemStack.EMPTY ); - m_previousInventory = DefaultedList.create( INVENTORY_SIZE, ItemStack.EMPTY ); + m_inventory = DefaultedList.ofSize( INVENTORY_SIZE, ItemStack.EMPTY ); + m_previousInventory = DefaultedList.ofSize( INVENTORY_SIZE, ItemStack.EMPTY ); m_inventoryChanged = false; m_brain = new TurtleBrain( this ); m_moveState = MoveState.NOT_MOVED; @@ -166,7 +166,7 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default m_brain.setDyeColour( dye ); if( !player.isCreative() ) { - currentItem.subtractAmount( 1 ); + currentItem.decrement( 1 ); } } } @@ -269,8 +269,8 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default // Read inventory ListTag nbttaglist = nbt.getList( "Items", NBTUtil.TAG_COMPOUND ); - m_inventory = DefaultedList.create( INVENTORY_SIZE, ItemStack.EMPTY ); - m_previousInventory = DefaultedList.create( INVENTORY_SIZE, ItemStack.EMPTY ); + m_inventory = DefaultedList.ofSize( INVENTORY_SIZE, ItemStack.EMPTY ); + m_previousInventory = DefaultedList.ofSize( INVENTORY_SIZE, ItemStack.EMPTY ); for( int i = 0; i < nbttaglist.size(); i++ ) { CompoundTag tag = nbttaglist.getCompoundTag( i ); @@ -444,7 +444,7 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default return ItemStack.EMPTY; } - if( stack.getAmount() <= count ) + if( stack.getCount() <= count ) { setInvStack( slot, ItemStack.EMPTY ); return stack; @@ -503,7 +503,7 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default { for( int n = 0; n < getInvSize(); n++ ) { - if( !ItemStack.areEqual( getInvStack( n ), m_previousInventory.get( n ) ) ) + if( !ItemStack.areEqualIgnoreDamage( getInvStack( n ), m_previousInventory.get( n ) ) ) { m_inventoryChanged = true; break; diff --git a/src/main/java/dan200/computercraft/shared/turtle/core/TurtleBrain.java b/src/main/java/dan200/computercraft/shared/turtle/core/TurtleBrain.java index a4f503e69..5e46d7b17 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/core/TurtleBrain.java +++ b/src/main/java/dan200/computercraft/shared/turtle/core/TurtleBrain.java @@ -38,7 +38,7 @@ import net.minecraft.tag.FluidTags; import net.minecraft.util.DyeColor; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BoundingBox; +import net.minecraft.util.math.Box; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; @@ -891,7 +891,7 @@ public class TurtleBrain implements ITurtleAccess maxZ -= moveDir.getOffsetZ() * push; } - BoundingBox aabb = new BoundingBox( minX, minY, minZ, maxX, maxY, maxZ ); + Box aabb = new Box( minX, minY, minZ, maxX, maxY, maxZ ); List list = world.getEntities( (Entity) null, aabb, EntityPredicates.EXCEPT_SPECTATOR ); if( !list.isEmpty() ) { diff --git a/src/main/java/dan200/computercraft/shared/turtle/core/TurtleInspectCommand.java b/src/main/java/dan200/computercraft/shared/turtle/core/TurtleInspectCommand.java index a5fa4fc42..64fce7630 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/core/TurtleInspectCommand.java +++ b/src/main/java/dan200/computercraft/shared/turtle/core/TurtleInspectCommand.java @@ -78,6 +78,6 @@ public class TurtleInspectCommand implements ITurtleCommand private static Object getPropertyValue( Property property, Comparable value ) { if( value instanceof String || value instanceof Number || value instanceof Boolean ) return value; - return property.getValueAsString( value ); + return property.getName( value ); } } diff --git a/src/main/java/dan200/computercraft/shared/turtle/core/TurtleMoveCommand.java b/src/main/java/dan200/computercraft/shared/turtle/core/TurtleMoveCommand.java index bfc361b56..690b224af 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/core/TurtleMoveCommand.java +++ b/src/main/java/dan200/computercraft/shared/turtle/core/TurtleMoveCommand.java @@ -20,7 +20,7 @@ import net.minecraft.block.BlockState; import net.minecraft.entity.Entity; import net.minecraft.predicate.entity.EntityPredicates; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BoundingBox; +import net.minecraft.util.math.Box; import net.minecraft.util.math.Direction; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.World; @@ -68,7 +68,7 @@ public class TurtleMoveCommand implements ITurtleCommand } // Check there isn't anything in the way - BoundingBox aabb = getBox( state.getCollisionShape( oldWorld, oldPosition ) ); + Box aabb = getBox( state.getCollisionShape( oldWorld, oldPosition ) ); aabb = aabb.offset( newPosition.getX(), newPosition.getY(), @@ -85,10 +85,10 @@ public class TurtleMoveCommand implements ITurtleCommand List list = oldWorld.getEntities( (Entity) null, aabb, EntityPredicates.VALID_ENTITY ); for( Entity entity : list ) { - BoundingBox entityBB = entity.getBoundingBox(); + Box entityBB = entity.getBoundingBox(); if( entityBB == null ) continue; - BoundingBox pushedBB = entityBB.offset( + Box pushedBB = entityBB.offset( direction.getOffsetX(), direction.getOffsetY(), direction.getOffsetZ() @@ -164,10 +164,10 @@ public class TurtleMoveCommand implements ITurtleCommand return TurtleCommandResult.success(); } - private static BoundingBox getBox( VoxelShape shape ) + private static Box getBox( VoxelShape shape ) { return shape.isEmpty() ? EMPTY_BOX : shape.getBoundingBox(); } - private static final BoundingBox EMPTY_BOX = new BoundingBox( 0, 0, 0, 0, 0, 0 ); + private static final Box EMPTY_BOX = new Box( 0, 0, 0, 0, 0, 0 ); } diff --git a/src/main/java/dan200/computercraft/shared/turtle/core/TurtlePlaceCommand.java b/src/main/java/dan200/computercraft/shared/turtle/core/TurtlePlaceCommand.java index 67c2d1842..f8fa6f275 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/core/TurtlePlaceCommand.java +++ b/src/main/java/dan200/computercraft/shared/turtle/core/TurtlePlaceCommand.java @@ -21,7 +21,7 @@ import net.minecraft.block.entity.SignBlockEntity; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; import net.minecraft.item.*; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.text.LiteralText; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import net.minecraft.util.TypedActionResult; @@ -253,7 +253,7 @@ public class TurtlePlaceCommand implements ITurtleCommand } else if( hitEntity instanceof LivingEntity ) { - placed = stackCopy.interactWithEntity( turtlePlayer, (LivingEntity) hitEntity, Hand.MAIN_HAND ); + placed = stackCopy.useOnEntity( turtlePlayer, (LivingEntity) hitEntity, Hand.MAIN_HAND ); if( placed ) turtlePlayer.loadInventory( stackCopy ); } } @@ -268,7 +268,7 @@ public class TurtlePlaceCommand implements ITurtleCommand // Put everything we collected into the turtles inventory, then return ItemStack remainder = turtlePlayer.unloadInventory( turtle ); - if( !placed && ItemStack.areEqual( stack, remainder ) ) + if( !placed && ItemStack.areEqualIgnoreDamage( stack, remainder ) ) { return stack; } @@ -286,7 +286,7 @@ public class TurtlePlaceCommand implements ITurtleCommand { World world = turtle.getWorld(); if( !World.isValid( position ) || world.isAir( position ) || - (context.getItemStack().getItem() instanceof BlockItem && WorldUtil.isLiquidBlock( world, position )) ) + (context.getStack().getItem() instanceof BlockItem && WorldUtil.isLiquidBlock( world, position )) ) { return false; } @@ -375,7 +375,7 @@ public class TurtlePlaceCommand implements ITurtleCommand else if( actionResult == null ) { TypedActionResult result = stackCopy.use( turtle.getWorld(), turtlePlayer, Hand.MAIN_HAND ); - if( result.getResult() == ActionResult.SUCCESS && !ItemStack.areEqual( stack, result.getValue() ) ) + if( result.getResult() == ActionResult.SUCCESS && !ItemStack.areEqualIgnoreDamage( stack, result.getValue() ) ) { placed = true; turtlePlayer.loadInventory( result.getValue() ); @@ -406,27 +406,27 @@ public class TurtlePlaceCommand implements ITurtleCommand { if( split[i - firstLine].length() > 15 ) { - signTile.text[i] = new TextComponent( split[i - firstLine].substring( 0, 15 ) ); + signTile.text[i] = new LiteralText( split[i - firstLine].substring( 0, 15 ) ); } else { - signTile.text[i] = new TextComponent( split[i - firstLine] ); + signTile.text[i] = new LiteralText( split[i - firstLine] ); } } else { - signTile.text[i] = new TextComponent( "" ); + signTile.text[i] = new LiteralText( "" ); } } signTile.markDirty(); - world.scheduleBlockRender( signTile.getPos() ); // TODO: This doesn't do anything! + world.updateListeners( tile.getPos(), tile.getCachedState(), tile.getCachedState(), 3 ); } } } // Put everything we collected into the turtles inventory, then return ItemStack remainder = turtlePlayer.unloadInventory( turtle ); - if( !placed && ItemStack.areEqual( stack, remainder ) ) + if( !placed && ItemStack.areEqualIgnoreDamage( stack, remainder ) ) { return stack; } diff --git a/src/main/java/dan200/computercraft/shared/turtle/core/TurtleSuckCommand.java b/src/main/java/dan200/computercraft/shared/turtle/core/TurtleSuckCommand.java index 9e1157690..04d7fa438 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/core/TurtleSuckCommand.java +++ b/src/main/java/dan200/computercraft/shared/turtle/core/TurtleSuckCommand.java @@ -20,7 +20,7 @@ import net.minecraft.inventory.Inventory; import net.minecraft.item.ItemStack; import net.minecraft.predicate.entity.EntityPredicates; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BoundingBox; +import net.minecraft.util.math.Box; import net.minecraft.util.math.Direction; import net.minecraft.world.World; @@ -97,7 +97,7 @@ public class TurtleSuckCommand implements ITurtleCommand else { // Suck up loose items off the ground - BoundingBox aabb = new BoundingBox( + Box aabb = new Box( newPosition.getX(), newPosition.getY(), newPosition.getZ(), newPosition.getX() + 1.0, newPosition.getY() + 1.0, newPosition.getZ() + 1.0 ); @@ -116,7 +116,7 @@ public class TurtleSuckCommand implements ITurtleCommand ItemStack stack = entityItem.getStack().copy(); ItemStack storeStack; ItemStack leaveStack; - if( stack.getAmount() > m_quantity ) + if( stack.getCount() > m_quantity ) { storeStack = stack.split( m_quantity ); leaveStack = stack; @@ -144,7 +144,7 @@ public class TurtleSuckCommand implements ITurtleCommand } else { - leaveStack.addAmount( remainder.getAmount() ); + leaveStack.increment( remainder.getCount() ); entityItem.setStack( leaveStack ); } break; diff --git a/src/main/java/dan200/computercraft/shared/turtle/inventory/ContainerTurtle.java b/src/main/java/dan200/computercraft/shared/turtle/inventory/ContainerTurtle.java index e6d4d9916..21adb6a11 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/inventory/ContainerTurtle.java +++ b/src/main/java/dan200/computercraft/shared/turtle/inventory/ContainerTurtle.java @@ -129,7 +129,7 @@ public class ContainerTurtle extends Container implements IContainerComputer slot.markDirty(); } - if( clickedStack.getAmount() != originalStack.getAmount() ) + if( clickedStack.getCount() != originalStack.getCount() ) { slot.onTakeItem( player, clickedStack ); } diff --git a/src/main/java/dan200/computercraft/shared/turtle/items/ItemTurtle.java b/src/main/java/dan200/computercraft/shared/turtle/items/ItemTurtle.java index 19d35f567..00947511b 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/items/ItemTurtle.java +++ b/src/main/java/dan200/computercraft/shared/turtle/items/ItemTurtle.java @@ -16,9 +16,9 @@ import dan200.computercraft.shared.turtle.blocks.BlockTurtle; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; 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.text.LiteralText; +import net.minecraft.text.Text; +import net.minecraft.text.TranslatableText; import net.minecraft.util.DefaultedList; import net.minecraft.util.Identifier; @@ -37,7 +37,7 @@ public class ItemTurtle extends ItemComputerBase implements ITurtleItem { // Build the stack ItemStack stack = new ItemStack( this ); - if( label != null ) stack.setDisplayName( new TextComponent( label ) ); + if( label != null ) stack.setCustomName( new LiteralText( label ) ); if( id >= 0 ) stack.getOrCreateTag().putInt( NBT_ID, id ); IColouredItem.setColourBasic( stack, colour ); if( fuelLevel > 0 ) stack.getOrCreateTag().putInt( NBT_FUEL, fuelLevel ); @@ -57,9 +57,9 @@ public class ItemTurtle extends ItemComputerBase implements ITurtleItem } @Override - public void appendItemsForGroup( @Nonnull ItemGroup group, @Nonnull DefaultedList list ) + public void appendStacks( @Nonnull ItemGroup group, @Nonnull DefaultedList list ) { - if( !isInItemGroup( group ) ) return; + if( !isIn( group ) ) return; ComputerFamily family = getFamily(); @@ -74,33 +74,33 @@ public class ItemTurtle extends ItemComputerBase implements ITurtleItem @Nonnull @Override - public Component getTranslatedNameTrimmed( @Nonnull ItemStack stack ) + public Text getName( @Nonnull ItemStack stack ) { String baseString = getTranslationKey( stack ); ITurtleUpgrade left = getUpgrade( stack, TurtleSide.Left ); ITurtleUpgrade right = getUpgrade( stack, TurtleSide.Right ); if( left != null && right != null ) { - return new TranslatableComponent( baseString + ".upgraded_twice", - new TranslatableComponent( right.getUnlocalisedAdjective() ), - new TranslatableComponent( left.getUnlocalisedAdjective() ) + return new TranslatableText( baseString + ".upgraded_twice", + new TranslatableText( right.getUnlocalisedAdjective() ), + new TranslatableText( left.getUnlocalisedAdjective() ) ); } else if( left != null ) { - return new TranslatableComponent( baseString + ".upgraded", - new TranslatableComponent( left.getUnlocalisedAdjective() ) + return new TranslatableText( baseString + ".upgraded", + new TranslatableText( left.getUnlocalisedAdjective() ) ); } else if( right != null ) { - return new TranslatableComponent( baseString + ".upgraded", - new TranslatableComponent( right.getUnlocalisedAdjective() ) + return new TranslatableText( baseString + ".upgraded", + new TranslatableText( right.getUnlocalisedAdjective() ) ); } else { - return new TranslatableComponent( baseString ); + return new TranslatableText( baseString ); } } diff --git a/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleInventoryCrafting.java b/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleInventoryCrafting.java index ebbf71b9b..84f12c7b7 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleInventoryCrafting.java +++ b/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleInventoryCrafting.java @@ -91,7 +91,7 @@ public class TurtleInventoryCrafting extends CraftingInventory if( result.isEmpty() ) break; results.add( result ); - result.onCrafted( world, player, result.getAmount() ); + result.onCraft( world, player, result.getCount() ); DefaultedList remainders = recipe.getRemainingStacks( this ); for( int slot = 0; slot < remainders.size(); slot++ ) @@ -115,7 +115,7 @@ public class TurtleInventoryCrafting extends CraftingInventory } else if( existing.getItem() == remainder.getItem() && ItemStack.areTagsEqual( existing, remainder ) ) { - remainder.addAmount( existing.getAmount() ); + remainder.increment( existing.getCount() ); setInvStack( slot, remainder ); } else diff --git a/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleTool.java b/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleTool.java index 4925bb659..386ca58de 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleTool.java +++ b/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleTool.java @@ -131,7 +131,7 @@ public class TurtleTool extends AbstractTurtleUpgrade // Fire several events to ensure we have permissions. if( AttackEntityCallback.EVENT.invoker().interact( turtlePlayer, world, Hand.MAIN_HAND, hitEntity, null ) == ActionResult.FAIL - || !hitEntity.canPlayerAttack() ) + || !hitEntity.isAttackable() ) { return TurtleCommandResult.failure( "Nothing to attack here" ); } @@ -147,7 +147,7 @@ public class TurtleTool extends AbstractTurtleUpgrade // Attack the entity boolean attacked = false; - if( !hitEntity.handlePlayerAttack( turtlePlayer ) ) + if( !hitEntity.handleAttack( turtlePlayer ) ) { float damage = (float) turtlePlayer.getAttributeInstance( EntityAttributes.ATTACK_DAMAGE ).getValue(); damage *= getDamageMultiplier(); diff --git a/src/main/java/dan200/computercraft/shared/util/DropConsumer.java b/src/main/java/dan200/computercraft/shared/util/DropConsumer.java index 4b69cced8..ff72d1694 100644 --- a/src/main/java/dan200/computercraft/shared/util/DropConsumer.java +++ b/src/main/java/dan200/computercraft/shared/util/DropConsumer.java @@ -10,7 +10,7 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.ItemEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BoundingBox; +import net.minecraft.util.math.Box; import net.minecraft.world.World; import java.lang.ref.WeakReference; @@ -28,7 +28,7 @@ public final class DropConsumer private static List remainingDrops; private static WeakReference dropWorld; private static BlockPos dropPos; - private static BoundingBox dropBounds; + private static Box dropBounds; private static WeakReference dropEntity; public static void set( Entity entity, Function consumer ) @@ -38,7 +38,7 @@ public final class DropConsumer dropEntity = new WeakReference<>( entity ); dropWorld = new WeakReference<>( entity.world ); dropPos = null; - dropBounds = new BoundingBox( entity.getBlockPos() ).expand( 2, 2, 2 ); + dropBounds = new Box( entity.getBlockPos() ).expand( 2, 2, 2 ); // entity.captureDrops( new ArrayList<>() ); } @@ -50,7 +50,7 @@ public final class DropConsumer dropEntity = null; dropWorld = new WeakReference<>( world ); dropPos = pos; - dropBounds = new BoundingBox( pos ).expand( 2, 2, 2 ); + dropBounds = new Box( pos ).expand( 2, 2, 2 ); } public static List clear() diff --git a/src/main/java/dan200/computercraft/shared/util/ImpostorRecipe.java b/src/main/java/dan200/computercraft/shared/util/ImpostorRecipe.java index 9cf61a79c..7740f6eb4 100644 --- a/src/main/java/dan200/computercraft/shared/util/ImpostorRecipe.java +++ b/src/main/java/dan200/computercraft/shared/util/ImpostorRecipe.java @@ -76,7 +76,7 @@ public final class ImpostorRecipe extends ShapedRecipe int width = buf.readVarInt(); int height = buf.readVarInt(); String group = buf.readString( Short.MAX_VALUE ); - DefaultedList items = DefaultedList.create( width * height, Ingredient.EMPTY ); + DefaultedList items = DefaultedList.ofSize( width * height, Ingredient.EMPTY ); for( int k = 0; k < items.size(); ++k ) items.set( k, Ingredient.fromPacket( buf ) ); ItemStack result = buf.readItemStack(); return new ImpostorRecipe( identifier, group, width, height, items, result ); diff --git a/src/main/java/dan200/computercraft/shared/util/ImpostorShapelessRecipe.java b/src/main/java/dan200/computercraft/shared/util/ImpostorShapelessRecipe.java index f5d4a31ec..e159f430d 100644 --- a/src/main/java/dan200/computercraft/shared/util/ImpostorShapelessRecipe.java +++ b/src/main/java/dan200/computercraft/shared/util/ImpostorShapelessRecipe.java @@ -80,7 +80,7 @@ public final class ImpostorShapelessRecipe extends ShapelessRecipe private DefaultedList readIngredients( JsonArray arrays ) { - DefaultedList items = DefaultedList.create(); + DefaultedList items = DefaultedList.of(); for( int i = 0; i < arrays.size(); ++i ) { Ingredient ingredient = Ingredient.fromJson( arrays.get( i ) ); @@ -95,7 +95,7 @@ public final class ImpostorShapelessRecipe extends ShapelessRecipe { String s = buffer.readString( 32767 ); int i = buffer.readVarInt(); - DefaultedList items = DefaultedList.create( i, Ingredient.EMPTY ); + DefaultedList items = DefaultedList.ofSize( i, Ingredient.EMPTY ); for( int j = 0; j < items.size(); j++ ) items.set( j, Ingredient.fromPacket( buffer ) ); ItemStack result = buffer.readItemStack(); diff --git a/src/main/java/dan200/computercraft/shared/util/InventoryUtil.java b/src/main/java/dan200/computercraft/shared/util/InventoryUtil.java index 089c82e43..52a650c77 100644 --- a/src/main/java/dan200/computercraft/shared/util/InventoryUtil.java +++ b/src/main/java/dan200/computercraft/shared/util/InventoryUtil.java @@ -26,7 +26,7 @@ public final class InventoryUtil public static boolean areItemsEqual( @Nonnull ItemStack a, @Nonnull ItemStack b ) { - return a == b || ItemStack.areEqual( a, b ); + return a == b || ItemStack.areEqualIgnoreDamage( a, b ); } public static boolean areItemsStackable( @Nonnull ItemStack a, @Nonnull ItemStack b ) @@ -171,16 +171,16 @@ public final class InventoryUtil ItemStack extracted = inventory.take( slot, count, partialStack, false ); if( extracted.isEmpty() ) continue; - count -= extracted.getAmount(); + count -= extracted.getCount(); if( partialStack.isEmpty() ) { // If we've extracted for this first time, then limit the count to the maximum stack size. partialStack = extracted; - count = Math.min( count, extracted.getMaxAmount() ); + count = Math.min( count, extracted.getMaxCount() ); } else { - partialStack.addAmount( extracted.getAmount() ); + partialStack.increment( extracted.getCount() ); } } diff --git a/src/main/java/dan200/computercraft/shared/util/ItemStorage.java b/src/main/java/dan200/computercraft/shared/util/ItemStorage.java index d6f03d5ef..c9d951dfe 100644 --- a/src/main/java/dan200/computercraft/shared/util/ItemStorage.java +++ b/src/main/java/dan200/computercraft/shared/util/ItemStorage.java @@ -71,10 +71,10 @@ public interface ItemStorage if( simulate ) { existing = existing.copy(); - if( existing.getAmount() > limit ) existing.setAmount( limit ); + if( existing.getCount() > limit ) existing.setCount( limit ); return existing; } - else if( existing.getAmount() < limit ) + else if( existing.getCount() < limit ) { setAndDirty( slot, ItemStack.EMPTY ); return existing; @@ -96,10 +96,10 @@ public interface ItemStorage ItemStack existing = inventory.getInvStack( slot ); if( existing.isEmpty() ) { - int limit = Math.min( stack.getMaxAmount(), inventory.getInvMaxStackAmount() ); + int limit = Math.min( stack.getMaxCount(), inventory.getInvMaxStackAmount() ); if( limit <= 0 ) return stack; - if( stack.getAmount() < limit ) + if( stack.getCount() < limit ) { if( !simulate ) setAndDirty( slot, stack ); return ItemStack.EMPTY; @@ -114,14 +114,14 @@ public interface ItemStorage } else if( areStackable( stack, existing ) ) { - int limit = Math.min( existing.getMaxAmount(), inventory.getInvMaxStackAmount() ) - existing.getAmount(); + int limit = Math.min( existing.getMaxCount(), inventory.getInvMaxStackAmount() ) - existing.getCount(); if( limit <= 0 ) return stack; - if( stack.getAmount() < limit ) + if( stack.getCount() < limit ) { if( !simulate ) { - existing.addAmount( stack.getAmount() ); + existing.increment( stack.getCount() ); setAndDirty( slot, existing ); } return ItemStack.EMPTY; @@ -129,10 +129,10 @@ public interface ItemStorage else { stack = stack.copy(); - stack.subtractAmount( limit ); + stack.decrement( limit ); if( !simulate ) { - existing.addAmount( limit ); + existing.increment( limit ); setAndDirty( slot, existing ); } return stack; diff --git a/src/main/java/dan200/computercraft/shared/util/RecipeUtil.java b/src/main/java/dan200/computercraft/shared/util/RecipeUtil.java index 77319a31c..b367b34d4 100644 --- a/src/main/java/dan200/computercraft/shared/util/RecipeUtil.java +++ b/src/main/java/dan200/computercraft/shared/util/RecipeUtil.java @@ -74,7 +74,7 @@ public final class RecipeUtil int width = pattern[0].length(); int height = pattern.length; - DefaultedList ingredients = DefaultedList.create( width * height, Ingredient.EMPTY ); + DefaultedList ingredients = DefaultedList.ofSize( width * height, Ingredient.EMPTY ); Set missingKeys = Sets.newHashSet( ingMap.keySet() ); missingKeys.remove( ' ' ); @@ -104,7 +104,7 @@ public final class RecipeUtil public static DefaultedList getIngredients( JsonObject json ) { - DefaultedList ingredients = DefaultedList.create(); + DefaultedList ingredients = DefaultedList.of(); for( JsonElement ele : JsonHelper.getArray( json, "ingredients" ) ) { ingredients.add( Ingredient.fromJson( ele ) ); diff --git a/src/main/java/dan200/computercraft/shared/util/RecordUtil.java b/src/main/java/dan200/computercraft/shared/util/RecordUtil.java index 7fc3ab85d..7853fd70b 100644 --- a/src/main/java/dan200/computercraft/shared/util/RecordUtil.java +++ b/src/main/java/dan200/computercraft/shared/util/RecordUtil.java @@ -12,8 +12,8 @@ import dan200.computercraft.shared.network.client.PlayRecordClientMessage; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.MusicDiscItem; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.sound.SoundEvent; +import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; @@ -35,6 +35,6 @@ public final class RecordUtil Item item = recordStack.getItem(); if( !(item instanceof MusicDiscItem) ) return null; - return new TranslatableComponent( item.getTranslationKey() + ".desc" ).getString(); + return new TranslatableText( item.getTranslationKey() + ".desc" ).getString(); } } diff --git a/src/main/java/dan200/computercraft/shared/util/WorldUtil.java b/src/main/java/dan200/computercraft/shared/util/WorldUtil.java index 586bae203..c440de12c 100644 --- a/src/main/java/dan200/computercraft/shared/util/WorldUtil.java +++ b/src/main/java/dan200/computercraft/shared/util/WorldUtil.java @@ -13,7 +13,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.hit.HitResult; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BoundingBox; +import net.minecraft.util.math.Box; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3d; import net.minecraft.util.shape.VoxelShape; @@ -32,16 +32,16 @@ public final class WorldUtil private static final Entity ENTITY = new ItemEntity( EntityType.ITEM, null ) { @Override - public EntitySize getSize( EntityPose pos ) + public EntityDimensions getDimensions( EntityPose pos ) { - return EntitySize.constant( 0, 0 ); + return EntityDimensions.fixed( 0, 0 ); } }; static { ENTITY.noClip = true; - ENTITY.refreshSize(); + ENTITY.calculateDimensions(); } public static boolean isLiquidBlock( World world, BlockPos pos ) @@ -55,7 +55,7 @@ public final class WorldUtil { if( shape.isEmpty() ) return false; // AxisAlignedBB.contains, but without strict inequalities. - BoundingBox bb = shape.getBoundingBox(); + Box bb = shape.getBoundingBox(); return vec.x >= bb.minX && vec.x <= bb.maxX && vec.y >= bb.minY && vec.y <= bb.maxY && vec.z >= bb.minZ && vec.z <= bb.maxZ; } @@ -76,7 +76,7 @@ public final class WorldUtil float xStretch = Math.abs( vecDir.x ) > 0.25f ? 0.0f : 1.0f; float yStretch = Math.abs( vecDir.y ) > 0.25f ? 0.0f : 1.0f; float zStretch = Math.abs( vecDir.z ) > 0.25f ? 0.0f : 1.0f; - BoundingBox bigBox = new BoundingBox( + Box bigBox = new Box( Math.min( vecStart.x, vecEnd.x ) - 0.375f * xStretch, Math.min( vecStart.y, vecEnd.y ) - 0.375f * yStretch, Math.min( vecStart.z, vecEnd.z ) - 0.375f * zStretch, @@ -90,7 +90,7 @@ public final class WorldUtil List list = world.getEntities( Entity.class, bigBox, CAN_COLLIDE ); for( Entity entity : list ) { - BoundingBox littleBox = entity.getBoundingBox(); + Box littleBox = entity.getBoundingBox(); if( littleBox.contains( vecStart ) ) {