diff --git a/cc-restiched_client.launch b/cc-restiched_client.launch
new file mode 100644
index 000000000..ed1b902fb
--- /dev/null
+++ b/cc-restiched_client.launch
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cc-restiched_server.launch b/cc-restiched_server.launch
new file mode 100644
index 000000000..953591000
--- /dev/null
+++ b/cc-restiched_server.launch
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gradle.properties b/gradle.properties
index 4032101a1..dd8208c4f 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -5,13 +5,13 @@ org.gradle.jvmargs=-Xmx1G
mod_version=1.96.1-rc1
# Minecraft properties
-mc_version=1.17
-mappings_version=9
+mc_version=1.17.1
+mappings_version=61
# Dependencies
cloth_config_version=5.0.34
-fabric_loader_version=0.11.6
-fabric_api_version=0.36.0+1.16
+fabric_loader_version=0.11.7
+fabric_api_version=0.40.1+1.17
jankson_version=1.2.0
modmenu_version=2.0.2
cloth_api_version=2.0.54
diff --git a/src/main/java/dan200/computercraft/api/IUpgradeBase.java b/src/main/java/dan200/computercraft/api/IUpgradeBase.java
index 9f19eece5..ee9b6e500 100644
--- a/src/main/java/dan200/computercraft/api/IUpgradeBase.java
+++ b/src/main/java/dan200/computercraft/api/IUpgradeBase.java
@@ -76,8 +76,8 @@ public interface IUpgradeBase
// A more expanded form of ItemStack.areShareTagsEqual, but allowing an empty tag to be equal to a
// null one.
- NbtCompound shareTag = stack.getTag();
- NbtCompound craftingShareTag = crafting.getTag();
+ NbtCompound shareTag = stack.getNbt();
+ NbtCompound craftingShareTag = crafting.getNbt();
if( shareTag == craftingShareTag ) return true;
if( shareTag == null ) return craftingShareTag.isEmpty();
if( craftingShareTag == null ) return shareTag.isEmpty();
diff --git a/src/main/java/dan200/computercraft/client/gui/FixedWidthFontRenderer.java b/src/main/java/dan200/computercraft/client/gui/FixedWidthFontRenderer.java
index b41964088..b695c5fc3 100644
--- a/src/main/java/dan200/computercraft/client/gui/FixedWidthFontRenderer.java
+++ b/src/main/java/dan200/computercraft/client/gui/FixedWidthFontRenderer.java
@@ -23,15 +23,15 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public final class FixedWidthFontRenderer
-{ //FIXME Make this work like a gui, via BufferBuilder's
+{
public static final int FONT_HEIGHT = 9;
public static final int FONT_WIDTH = 6;
public static final float WIDTH = 256.0f;
public static final float BACKGROUND_START = (WIDTH - 6.0f) / WIDTH;
public static final float BACKGROUND_END = (WIDTH - 4.0f) / WIDTH;
private static final Matrix4f IDENTITY = AffineTransformation.identity()
- .getMatrix();
- private static final Identifier FONT = new Identifier( "computercraft", "textures/gui/term_font.png" );
+ .getMatrix();
+ public static final Identifier FONT = new Identifier( "computercraft", "textures/gui/term_font.png" );
public static final RenderLayer TYPE = Type.MAIN;
diff --git a/src/main/java/dan200/computercraft/client/gui/GuiComputer.java b/src/main/java/dan200/computercraft/client/gui/GuiComputer.java
index c78197271..775c74109 100644
--- a/src/main/java/dan200/computercraft/client/gui/GuiComputer.java
+++ b/src/main/java/dan200/computercraft/client/gui/GuiComputer.java
@@ -152,9 +152,9 @@ public class GuiComputer extends HandledScreen<
}
@Override
- public void tick()
+ public void handledScreenTick()
{
- super.tick();
+ super.handledScreenTick(); // FIXME most likely unneeded.
terminal.update();
}
}
diff --git a/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java b/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java
index fa7c0a8f1..dc5df9bbe 100644
--- a/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java
+++ b/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java
@@ -35,12 +35,13 @@ import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientBlockEntityEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry;
-import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry;
-import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry;
+import net.fabricmc.fabric.api.client.rendering.v1.BlockEntityRendererRegistry;
+import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry;
import net.fabricmc.fabric.api.client.screenhandler.v1.ScreenRegistry;
import net.fabricmc.fabric.api.event.client.ClientSpriteRegistryCallback;
-import net.fabricmc.fabric.mixin.object.builder.ModelPredicateProviderRegistrySpecificAccessor;
+import net.fabricmc.fabric.api.object.builder.v1.client.model.FabricModelPredicateProviderRegistry;
import net.minecraft.client.item.ModelPredicateProvider;
+import net.minecraft.client.item.UnclampedModelPredicateProvider;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.item.Item;
import net.minecraft.screen.PlayerScreenHandler;
@@ -82,10 +83,10 @@ public final class ComputerCraftProxyClient implements ClientModInitializer
BlockRenderLayerMap.INSTANCE.putBlock( ComputerCraftRegistry.ModBlocks.MONITOR_ADVANCED, RenderLayer.getCutout() );
// Setup TESRs
- BlockEntityRendererRegistry.INSTANCE.register( ComputerCraftRegistry.ModTiles.MONITOR_NORMAL, TileEntityMonitorRenderer::new );
- BlockEntityRendererRegistry.INSTANCE.register( ComputerCraftRegistry.ModTiles.MONITOR_ADVANCED, TileEntityMonitorRenderer::new );
- BlockEntityRendererRegistry.INSTANCE.register( ComputerCraftRegistry.ModTiles.TURTLE_NORMAL, TileEntityTurtleRenderer::new );
- BlockEntityRendererRegistry.INSTANCE.register( ComputerCraftRegistry.ModTiles.TURTLE_ADVANCED, TileEntityTurtleRenderer::new );
+ BlockEntityRendererRegistry.register( ComputerCraftRegistry.ModTiles.MONITOR_NORMAL, TileEntityMonitorRenderer::new );
+ BlockEntityRendererRegistry.register( ComputerCraftRegistry.ModTiles.MONITOR_ADVANCED, TileEntityMonitorRenderer::new );
+ BlockEntityRendererRegistry.register( ComputerCraftRegistry.ModTiles.TURTLE_NORMAL, TileEntityTurtleRenderer::new );
+ BlockEntityRendererRegistry.register( ComputerCraftRegistry.ModTiles.TURTLE_ADVANCED, TileEntityTurtleRenderer::new );
ClientSpriteRegistryCallback.event( PlayerScreenHandler.BLOCK_ATLAS_TEXTURE )
.register( ClientRegistry::onTextureStitchEvent );
@@ -94,15 +95,15 @@ public final class ComputerCraftProxyClient implements ClientModInitializer
TurtleModelLoader.INSTANCE.loadModel(
name ) : null );
- EntityRendererRegistry.INSTANCE.register( ComputerCraftRegistry.ModEntities.TURTLE_PLAYER, TurtlePlayerRenderer::new );
+ EntityRendererRegistry.register( ComputerCraftRegistry.ModEntities.TURTLE_PLAYER, TurtlePlayerRenderer::new );
registerItemProperty( "state",
- ( stack, world, player ) -> ItemPocketComputer.getState( stack )
+ ( stack, world, player, integer ) -> ItemPocketComputer.getState( stack )
.ordinal(),
() -> ComputerCraftRegistry.ModItems.POCKET_COMPUTER_NORMAL,
() -> ComputerCraftRegistry.ModItems.POCKET_COMPUTER_ADVANCED );
registerItemProperty( "state",
- ( stack, world, player ) -> IColouredItem.getColourBasic( stack ) != -1 ? 1 : 0,
+ ( stack, world, player, integer ) -> IColouredItem.getColourBasic( stack ) != -1 ? 1 : 0,
() -> ComputerCraftRegistry.ModItems.POCKET_COMPUTER_NORMAL,
() -> ComputerCraftRegistry.ModItems.POCKET_COMPUTER_ADVANCED );
ClientRegistry.onItemColours();
@@ -127,12 +128,12 @@ public final class ComputerCraftProxyClient implements ClientModInitializer
}
@SafeVarargs
- private static void registerItemProperty( String name, ModelPredicateProvider getter, Supplier extends Item>... items )
+ private static void registerItemProperty( String name, UnclampedModelPredicateProvider getter, Supplier extends Item>... items )
{
Identifier id = new Identifier( ComputerCraft.MOD_ID, name );
for( Supplier extends Item> item : items )
{
- ModelPredicateProviderRegistrySpecificAccessor.callRegister( item.get(), id, getter );
+ FabricModelPredicateProviderRegistry.register( item.get(), id, getter );
}
}
}
diff --git a/src/main/java/dan200/computercraft/client/render/ComputerBorderRenderer.java b/src/main/java/dan200/computercraft/client/render/ComputerBorderRenderer.java
index eddb729dd..91466b927 100644
--- a/src/main/java/dan200/computercraft/client/render/ComputerBorderRenderer.java
+++ b/src/main/java/dan200/computercraft/client/render/ComputerBorderRenderer.java
@@ -89,7 +89,7 @@ public class ComputerBorderRenderer
render( IDENTITY, buffer, x, y, z, width, height );
- RenderSystem.enableDepthTest(); //TODO: enableAlphaTest(). FIXME
+// RenderSystem.enableDepthTest(); //TODO: enableAlphaTest(). FIXME
tessellator.draw();
}
diff --git a/src/main/java/dan200/computercraft/client/render/PrintoutRenderer.java b/src/main/java/dan200/computercraft/client/render/PrintoutRenderer.java
index 5f48bbe7e..d16fbe876 100644
--- a/src/main/java/dan200/computercraft/client/render/PrintoutRenderer.java
+++ b/src/main/java/dan200/computercraft/client/render/PrintoutRenderer.java
@@ -19,7 +19,7 @@ import static dan200.computercraft.client.gui.FixedWidthFontRenderer.FONT_HEIGHT
import static dan200.computercraft.shared.media.items.ItemPrintout.LINES_PER_PAGE;
public final class PrintoutRenderer
-{ //FIXME Use BufferBuilders
+{
/**
* Width of a page.
*/
@@ -189,20 +189,26 @@ public final class PrintoutRenderer
private static final class Type extends RenderLayer
{
+
static final RenderLayer TYPE = RenderLayer.of( "printout_background",
VertexFormats.POSITION_TEXTURE,
- VertexFormat.DrawMode.QUADS,
+ GL11.GL_QUADS,
1024,
+ false,
+ false,
// useDelegate, needsSorting
- RenderLayer.MultiPhaseParameters.builder()
+ Type.MultiPhaseParameters.builder()
.texture( new RenderPhase.Texture( BG, false, false ) ) // blur, minimap
- .transparency( TRANSLUCENT_TRANSPARENCY )
+ .transparency( TRANSLUCENT_TRANSPARENCY)
.lightmap( DISABLE_LIGHTMAP )
- .build( false ));
-
- private Type( String name, VertexFormat vertexFormat, VertexFormat.DrawMode drawMode, int expectedBufferSize, boolean hasCrumbling, boolean translucent, RenderLayer.MultiPhaseParameters phases, Runnable setup, Runnable destroy )
+ .build( false ) );
+
+ public Type( String name, VertexFormat vertexFormat, DrawMode drawMode,
+ int expectedBufferSize, boolean hasCrumbling, boolean translucent,
+ Runnable startAction, Runnable endAction )
{
- super( name, vertexFormat, drawMode, expectedBufferSize, hasCrumbling, hasCrumbling, setup, destroy );
+ super( name, vertexFormat, drawMode, expectedBufferSize, hasCrumbling, translucent,
+ startAction, endAction );
}
}
}
diff --git a/src/main/java/dan200/computercraft/client/render/TileEntityMonitorRenderer.java b/src/main/java/dan200/computercraft/client/render/TileEntityMonitorRenderer.java
index 4ff0cefb7..ff6a7824d 100644
--- a/src/main/java/dan200/computercraft/client/render/TileEntityMonitorRenderer.java
+++ b/src/main/java/dan200/computercraft/client/render/TileEntityMonitorRenderer.java
@@ -20,6 +20,7 @@ import net.minecraft.client.gl.VertexBuffer;
import net.minecraft.client.render.*;
import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher;
import net.minecraft.client.render.block.entity.BlockEntityRenderer;
+import net.minecraft.client.render.block.entity.BlockEntityRendererFactory;
import net.minecraft.client.util.GlAllocationUtils;
import net.minecraft.util.math.AffineTransformation;
import net.minecraft.client.util.math.MatrixStack;
@@ -47,11 +48,10 @@ public class TileEntityMonitorRenderer implements BlockEntityRenderer
private final Random random = new Random( 0 );
- public TileEntityTurtleRenderer( BlockEntityRenderDispatcher renderDispatcher )
+ public TileEntityTurtleRenderer( BlockEntityRendererFactory.Context context )
{
- super( renderDispatcher );
+// super( rendererDispatcher );
}
-
+
public static ModelIdentifier getTurtleModel( ComputerFamily family, boolean coloured )
{
switch( family )
@@ -116,11 +117,11 @@ public class TileEntityTurtleRenderer implements BlockEntityRenderer
// Render the label
String label = turtle.createProxy()
.getLabel();
- HitResult hit = dispatcher.crosshairTarget;
+ MinecraftClient mc = MinecraftClient.getInstance();
+ HitResult hit = mc.crosshairTarget;
if( label != null && hit.getType() == HitResult.Type.BLOCK && turtle.getPos()
.equals( ((BlockHitResult) hit).getBlockPos() ) )
{
- MinecraftClient mc = MinecraftClient.getInstance();
TextRenderer font = mc.textRenderer;
transform.push();
diff --git a/src/main/java/dan200/computercraft/client/render/TurtleMultiModel.java b/src/main/java/dan200/computercraft/client/render/TurtleMultiModel.java
index f6803af3e..1f975f963 100644
--- a/src/main/java/dan200/computercraft/client/render/TurtleMultiModel.java
+++ b/src/main/java/dan200/computercraft/client/render/TurtleMultiModel.java
@@ -120,9 +120,9 @@ public class TurtleMultiModel implements BakedModel
@Nonnull
@Override
@Deprecated
- public Sprite getSprite()
+ public Sprite getParticleSprite()
{
- return baseModel.getSprite();
+ return baseModel.getParticleSprite();
}
@Nonnull
diff --git a/src/main/java/dan200/computercraft/client/render/TurtlePlayerRenderer.java b/src/main/java/dan200/computercraft/client/render/TurtlePlayerRenderer.java
index 00bc29572..275b6c641 100644
--- a/src/main/java/dan200/computercraft/client/render/TurtlePlayerRenderer.java
+++ b/src/main/java/dan200/computercraft/client/render/TurtlePlayerRenderer.java
@@ -10,6 +10,7 @@ import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.EntityRenderDispatcher;
import net.minecraft.client.render.entity.EntityRenderer;
+import net.minecraft.client.render.entity.EntityRendererFactory;
import net.minecraft.client.render.entity.EntityRendererFactory.Context;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.Identifier;
@@ -18,14 +19,9 @@ import javax.annotation.Nonnull;
public class TurtlePlayerRenderer extends EntityRenderer
{ //FIXME Make sure this isn't an issue. Context was EntityRenderDispatcher.
- public TurtlePlayerRenderer( Context renderManager )
+ public TurtlePlayerRenderer( EntityRendererFactory.Context context )
{
- super( renderManager );
- }
-
- public TurtlePlayerRenderer( Context entityRenderDispatcher, EntityRendererRegistry.Context context )
- {
- super( entityRenderDispatcher );
+ super( context );
}
@Override
diff --git a/src/main/java/dan200/computercraft/client/render/TurtleSmartItemModel.java b/src/main/java/dan200/computercraft/client/render/TurtleSmartItemModel.java
index 9da28fa33..914354c0c 100644
--- a/src/main/java/dan200/computercraft/client/render/TurtleSmartItemModel.java
+++ b/src/main/java/dan200/computercraft/client/render/TurtleSmartItemModel.java
@@ -145,9 +145,9 @@ public class TurtleSmartItemModel implements BakedModel
@Nonnull
@Override
@Deprecated
- public Sprite getSprite()
+ public Sprite getParticleSprite()
{
- return familyModel.getSprite();
+ return familyModel.getParticleSprite();
}
@Nonnull
diff --git a/src/main/java/dan200/computercraft/fabric/mixin/BlockEntityMixin.java b/src/main/java/dan200/computercraft/fabric/mixin/BlockEntityMixin.java
new file mode 100644
index 000000000..764cf87e2
--- /dev/null
+++ b/src/main/java/dan200/computercraft/fabric/mixin/BlockEntityMixin.java
@@ -0,0 +1,23 @@
+package dan200.computercraft.fabric.mixin;
+
+import org.spongepowered.asm.mixin.Final;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Mutable;
+import org.spongepowered.asm.mixin.Shadow;
+
+import net.minecraft.block.entity.BlockEntity;
+import net.minecraft.util.math.BlockPos;
+
+@Mixin( BlockEntity.class )
+public class BlockEntityMixin
+{
+ @Final
+ @Mutable
+ @Shadow
+ protected BlockPos pos;
+
+ public void setBlockPos( BlockPos pos )
+ {
+ this.pos = pos;
+ }
+}
diff --git a/src/main/java/dan200/computercraft/fabric/mixin/MixinServerPlayerInteractionManager.java b/src/main/java/dan200/computercraft/fabric/mixin/MixinServerPlayerInteractionManager.java
index 3ca7e4620..c714c2346 100644
--- a/src/main/java/dan200/computercraft/fabric/mixin/MixinServerPlayerInteractionManager.java
+++ b/src/main/java/dan200/computercraft/fabric/mixin/MixinServerPlayerInteractionManager.java
@@ -34,7 +34,7 @@ public class MixinServerPlayerInteractionManager
ActionResult actionResult = state.onUse( world, player, hand, hitResult );
if( actionResult.isAccepted() )
{
- Criteria.ITEM_USED_ON_BLOCK.test( player, pos, stack );
+ Criteria.ITEM_USED_ON_BLOCK.trigger( player, pos, stack );
cir.setReturnValue( actionResult );
}
}
diff --git a/src/main/java/dan200/computercraft/shared/ComputerCraftRegistry.java b/src/main/java/dan200/computercraft/shared/ComputerCraftRegistry.java
index faee5795c..2d716e57e 100644
--- a/src/main/java/dan200/computercraft/shared/ComputerCraftRegistry.java
+++ b/src/main/java/dan200/computercraft/shared/ComputerCraftRegistry.java
@@ -42,7 +42,6 @@ import dan200.computercraft.shared.turtle.core.TurtlePlayer;
import dan200.computercraft.shared.turtle.inventory.ContainerTurtle;
import dan200.computercraft.shared.turtle.items.ItemTurtle;
import dan200.computercraft.shared.turtle.upgrades.*;
-import dan200.computercraft.shared.util.FixedPointTileEntityType;
import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.fabricmc.fabric.api.screenhandler.v1.ScreenHandlerRegistry;
@@ -150,48 +149,53 @@ public final class ComputerCraftRegistry
public static class ModTiles
{
- public static final BlockEntityType MONITOR_NORMAL = ofBlock( () -> ModBlocks.MONITOR_NORMAL,
- "monitor_normal",
- f -> new TileMonitor( f, false, null, null ) );
- public static final BlockEntityType MONITOR_ADVANCED = ofBlock( () -> ModBlocks.MONITOR_ADVANCED,
- "monitor_advanced",
- f -> new TileMonitor( f, true, null, null ) );
- public static final BlockEntityType COMPUTER_NORMAL = ofBlock( () -> ModBlocks.COMPUTER_NORMAL,
- "computer_normal",
- f -> new TileComputer( ComputerFamily.NORMAL, f, null, null ) );
- public static final BlockEntityType COMPUTER_ADVANCED = ofBlock( () -> ModBlocks.COMPUTER_ADVANCED,
- "computer_advanced",
- f -> new TileComputer( ComputerFamily.ADVANCED, f, null, null ) );
- public static final BlockEntityType COMPUTER_COMMAND = ofBlock( () -> ModBlocks.COMPUTER_COMMAND,
- "computer_command",
- f -> new TileCommandComputer( ComputerFamily.COMMAND, f, null, null ) );
- public static final BlockEntityType TURTLE_NORMAL = ofBlock( () -> ModBlocks.TURTLE_NORMAL,
- "turtle_normal",
- f -> new TileTurtle( f, ComputerFamily.NORMAL ) );
- public static final BlockEntityType TURTLE_ADVANCED = ofBlock( () -> ModBlocks.TURTLE_ADVANCED,
- "turtle_advanced",
- f -> new TileTurtle( f, ComputerFamily.ADVANCED ) );
- public static final BlockEntityType SPEAKER = ofBlock( () -> ModBlocks.SPEAKER, "speaker", TileSpeaker::new );
- public static final BlockEntityType DISK_DRIVE = ofBlock( () -> ModBlocks.DISK_DRIVE, "disk_drive", TileDiskDrive::new );
- public static final BlockEntityType PRINTER = ofBlock( () -> ModBlocks.PRINTER, "printer", TilePrinter::new );
- public static final BlockEntityType WIRED_MODEM_FULL = ofBlock( () -> ModBlocks.WIRED_MODEM_FULL,
- "wired_modem_full",
- TileWiredModemFull::new );
- public static final BlockEntityType CABLE = ofBlock( () -> ModBlocks.CABLE, "cable", TileCable::new );
- public static final BlockEntityType WIRELESS_MODEM_NORMAL = ofBlock( () -> ModBlocks.WIRELESS_MODEM_NORMAL,
- "wireless_modem_normal",
- f -> new TileWirelessModem( f, false, null, null ) );
- public static final BlockEntityType WIRELESS_MODEM_ADVANCED = ofBlock( () -> ModBlocks.WIRELESS_MODEM_ADVANCED,
- "wireless_modem_advanced",
- f -> new TileWirelessModem( f, true ) );
-
- private static BlockEntityType ofBlock( Supplier block, String id, Function, T> factory )
- {
- FabricBlockEntityTypeBuilder.create(factory, block);
- return Registry.register( BLOCK_ENTITY_TYPE,
- new Identifier( MOD_ID, id ),
- FabricBlockEntityTypeBuilder.create);
- }
+ public static final BlockEntityType MONITOR_NORMAL = FabricBlockEntityTypeBuilder
+ .create( ( blockPos, blockState ) -> new TileMonitor( ModTiles.MONITOR_NORMAL, false, blockPos, blockState ),
+ ModBlocks.MONITOR_NORMAL )
+ .build();
+ public static final BlockEntityType MONITOR_ADVANCED = FabricBlockEntityTypeBuilder
+ .create( ( blockPos, blockState ) -> new TileMonitor( ModTiles.MONITOR_ADVANCED, false, blockPos, blockState ),
+ ModBlocks.MONITOR_ADVANCED )
+ .build();
+ public static final BlockEntityType COMPUTER_NORMAL = FabricBlockEntityTypeBuilder.create(
+ ( blockPos, blockState ) -> new TileComputer( ComputerFamily.NORMAL, ModTiles.COMPUTER_NORMAL, blockPos, blockState ),
+ ModBlocks.COMPUTER_NORMAL ).build();
+ public static final BlockEntityType COMPUTER_ADVANCED = FabricBlockEntityTypeBuilder
+ .create( ( blockPos, blockState ) -> new TileComputer( ComputerFamily.ADVANCED, ModTiles.COMPUTER_ADVANCED, blockPos,
+ blockState ), ModBlocks.COMPUTER_ADVANCED )
+ .build();
+ public static final BlockEntityType COMPUTER_COMMAND = FabricBlockEntityTypeBuilder
+ .create( ( blockPos, blockState ) -> new TileCommandComputer( ComputerFamily.COMMAND, ModTiles.COMPUTER_COMMAND, blockPos,
+ blockState ), ModBlocks.COMPUTER_COMMAND )
+ .build();
+ public static final BlockEntityType TURTLE_NORMAL = FabricBlockEntityTypeBuilder.create(
+ ( blockPos, blockState ) -> new TileTurtle( ModTiles.TURTLE_NORMAL, ComputerFamily.NORMAL, blockPos, blockState ),
+ ModBlocks.TURTLE_NORMAL ).build();
+ public static final BlockEntityType TURTLE_ADVANCED = FabricBlockEntityTypeBuilder.create(
+ ( blockPos, blockState ) -> new TileTurtle( ModTiles.TURTLE_ADVANCED, ComputerFamily.ADVANCED, blockPos, blockState ),
+ ModBlocks.TURTLE_ADVANCED ).build();
+ public static final BlockEntityType SPEAKER = FabricBlockEntityTypeBuilder
+ .create( ( blockPos, blockState ) -> new TileSpeaker( ModTiles.SPEAKER, blockPos, blockState ), ModBlocks.SPEAKER )
+ .build();
+ public static final BlockEntityType DISK_DRIVE = FabricBlockEntityTypeBuilder
+ .create( ( blockPos, blockState ) -> new TileDiskDrive( ModTiles.DISK_DRIVE, blockPos, blockState ),
+ ModBlocks.DISK_DRIVE )
+ .build();
+ public static final BlockEntityType PRINTER = FabricBlockEntityTypeBuilder
+ .create( ( blockPos, blockState ) -> new TilePrinter( ModTiles.PRINTER, blockPos, blockState ), ModBlocks.PRINTER )
+ .build();
+ public static final BlockEntityType WIRED_MODEM_FULL = FabricBlockEntityTypeBuilder
+ .create( ( blockPos, blockState ) -> new TileWiredModemFull( ModTiles.WIRED_MODEM_FULL, blockPos, blockState ),
+ ModBlocks.WIRED_MODEM_FULL )
+ .build();
+ public static final BlockEntityType CABLE = FabricBlockEntityTypeBuilder
+ .create( ( blockPos, blockState ) -> new TileCable( ModTiles.CABLE, blockPos, blockState ), ModBlocks.CABLE ).build();
+ public static final BlockEntityType WIRELESS_MODEM_NORMAL = FabricBlockEntityTypeBuilder.create(
+ ( blockPos, blockState ) -> new TileWirelessModem( ModTiles.WIRELESS_MODEM_NORMAL, false, blockPos, blockState ),
+ ModBlocks.WIRELESS_MODEM_NORMAL ).build();
+ public static final BlockEntityType WIRELESS_MODEM_ADVANCED = FabricBlockEntityTypeBuilder.create(
+ ( blockPos, blockState ) -> new TileWirelessModem( ModTiles.WIRELESS_MODEM_ADVANCED, true, blockPos, blockState ),
+ ModBlocks.WIRELESS_MODEM_ADVANCED ).build();
}
public static final class ModItems
diff --git a/src/main/java/dan200/computercraft/shared/command/UserLevel.java b/src/main/java/dan200/computercraft/shared/command/UserLevel.java
index d0a142cf0..428a62615 100644
--- a/src/main/java/dan200/computercraft/shared/command/UserLevel.java
+++ b/src/main/java/dan200/computercraft/shared/command/UserLevel.java
@@ -59,9 +59,9 @@ public enum UserLevel implements Predicate
if( this == OWNER || this == OWNER_OP )
{
- MinecraftServer server = source.getMinecraftServer();
+ MinecraftServer server = source.getServer();
Entity sender = source.getEntity();
- if( server.isSinglePlayer() && sender instanceof PlayerEntity &&
+ if( server.isSingleplayer() && sender instanceof PlayerEntity &&
((PlayerEntity) sender).getGameProfile().getName().equalsIgnoreCase( server.getServerModName() ) )
{
return true;
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 98461eb45..c7bd1248e 100644
--- a/src/main/java/dan200/computercraft/shared/command/builder/HelpingArgumentBuilder.java
+++ b/src/main/java/dan200/computercraft/shared/command/builder/HelpingArgumentBuilder.java
@@ -66,7 +66,7 @@ public final class HelpingArgumentBuilder extends LiteralArgumentBuilder dispatcher = context.getSource()
- .getMinecraftServer()
+ .getServer()
.getCommandManager()
.getDispatcher();
CommandNode temp = new LiteralCommandNode<>( "_", null, x -> true, null, null, false );
diff --git a/src/main/java/dan200/computercraft/shared/common/IColouredItem.java b/src/main/java/dan200/computercraft/shared/common/IColouredItem.java
index 04b82d567..6d6b44f4d 100644
--- a/src/main/java/dan200/computercraft/shared/common/IColouredItem.java
+++ b/src/main/java/dan200/computercraft/shared/common/IColouredItem.java
@@ -20,7 +20,7 @@ public interface IColouredItem
static int getColourBasic( ItemStack stack )
{
- NbtCompound tag = stack.getTag();
+ NbtCompound tag = stack.getNbt();
return tag != null && tag.contains( NBT_COLOUR ) ? tag.getInt( NBT_COLOUR ) : -1;
}
@@ -35,7 +35,7 @@ public interface IColouredItem
{
if( colour == -1 )
{
- NbtCompound tag = stack.getTag();
+ NbtCompound tag = stack.getNbt();
if( tag != null )
{
tag.remove( NBT_COLOUR );
@@ -43,7 +43,7 @@ public interface IColouredItem
}
else
{
- stack.getOrCreateTag()
+ stack.getOrCreateNbt()
.putInt( NBT_COLOUR, colour );
}
}
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 660b38c7c..5f6a4ec78 100644
--- a/src/main/java/dan200/computercraft/shared/pocket/items/ItemPocketComputer.java
+++ b/src/main/java/dan200/computercraft/shared/pocket/items/ItemPocketComputer.java
@@ -103,7 +103,7 @@ public class ItemPocketComputer extends Item implements IComputerItem, IMedia, I
public static void setUpgrade( @Nonnull ItemStack stack, IPocketUpgrade upgrade )
{
- NbtCompound compound = stack.getOrCreateTag();
+ NbtCompound compound = stack.getOrCreateNbt();
if( upgrade == null )
{
@@ -121,7 +121,7 @@ public class ItemPocketComputer extends Item implements IComputerItem, IMedia, I
public static NbtCompound getUpgradeInfo( @Nonnull ItemStack stack )
{
- return stack.getOrCreateSubTag( NBT_UPGRADE_INFO );
+ return stack.getOrCreateSubNbt( NBT_UPGRADE_INFO );
}
// @Nullable
@@ -274,7 +274,7 @@ public class ItemPocketComputer extends Item implements IComputerItem, IMedia, I
ItemStack result = new ItemStack( this );
if( id >= 0 )
{
- result.getOrCreateTag()
+ result.getOrCreateNbt()
.putInt( NBT_ID, id );
}
if( label != null )
@@ -283,14 +283,14 @@ public class ItemPocketComputer extends Item implements IComputerItem, IMedia, I
}
if( upgrade != null )
{
- result.getOrCreateTag()
+ result.getOrCreateNbt()
.putString( NBT_UPGRADE,
upgrade.getUpgradeID()
.toString() );
}
if( colour != -1 )
{
- result.getOrCreateTag()
+ result.getOrCreateNbt()
.putInt( NBT_COLOUR, colour );
}
return result;
@@ -341,7 +341,7 @@ public class ItemPocketComputer extends Item implements IComputerItem, IMedia, I
public static IPocketUpgrade getUpgrade( @Nonnull ItemStack stack )
{
- NbtCompound compound = stack.getTag();
+ NbtCompound compound = stack.getNbt();
return compound != null && compound.contains( NBT_UPGRADE ) ? PocketUpgrades.get( compound.getString( NBT_UPGRADE ) ) : null;
}
@@ -350,7 +350,7 @@ public class ItemPocketComputer extends Item implements IComputerItem, IMedia, I
private static void setComputerID( @Nonnull ItemStack stack, int computerID )
{
- stack.getOrCreateTag()
+ stack.getOrCreateNbt()
.putInt( NBT_ID, computerID );
}
@@ -402,25 +402,25 @@ public class ItemPocketComputer extends Item implements IComputerItem, IMedia, I
private static int getInstanceID( @Nonnull ItemStack stack )
{
- NbtCompound nbt = stack.getTag();
+ NbtCompound nbt = stack.getNbt();
return nbt != null && nbt.contains( NBT_INSTANCE ) ? nbt.getInt( NBT_INSTANCE ) : -1;
}
private static int getSessionID( @Nonnull ItemStack stack )
{
- NbtCompound nbt = stack.getTag();
+ NbtCompound nbt = stack.getNbt();
return nbt != null && nbt.contains( NBT_SESSION ) ? nbt.getInt( NBT_SESSION ) : -1;
}
private static void setInstanceID( @Nonnull ItemStack stack, int instanceID )
{
- stack.getOrCreateTag()
+ stack.getOrCreateNbt()
.putInt( NBT_INSTANCE, instanceID );
}
private static void setSessionID( @Nonnull ItemStack stack, int sessionID )
{
- stack.getOrCreateTag()
+ stack.getOrCreateNbt()
.putInt( NBT_SESSION, sessionID );
}
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 5c3abab4a..acb6cbac7 100644
--- a/src/main/java/dan200/computercraft/shared/turtle/blocks/TileTurtle.java
+++ b/src/main/java/dan200/computercraft/shared/turtle/blocks/TileTurtle.java
@@ -48,18 +48,22 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.Collections;
-public class TileTurtle extends TileComputerBase implements ITurtleTile, DefaultInventory
+public class TileTurtle extends TileComputerBase
+ implements ITurtleTile, DefaultInventory
{
public static final int INVENTORY_SIZE = 16;
public static final int INVENTORY_WIDTH = 4;
public static final int INVENTORY_HEIGHT = 4;
- private final DefaultedList inventory = DefaultedList.ofSize( INVENTORY_SIZE, ItemStack.EMPTY );
- private final DefaultedList previousInventory = DefaultedList.ofSize( INVENTORY_SIZE, ItemStack.EMPTY );
+ private final DefaultedList inventory = DefaultedList
+ .ofSize( INVENTORY_SIZE, ItemStack.EMPTY );
+ private final DefaultedList previousInventory = DefaultedList
+ .ofSize( INVENTORY_SIZE, ItemStack.EMPTY );
private boolean inventoryChanged = false;
private TurtleBrain brain = new TurtleBrain( this );
private MoveState moveState = MoveState.NOT_MOVED;
- public TileTurtle( BlockEntityType extends TileGeneric> type, ComputerFamily family, BlockPos pos, BlockState state )
+ public TileTurtle( BlockEntityType extends TileGeneric> type,
+ ComputerFamily family, BlockPos pos, BlockState state )
{
super( type, family, pos, state );
}
@@ -133,7 +137,8 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default
@Override
public ItemStack getStack( int slot )
{
- return slot >= 0 && slot < INVENTORY_SIZE ? inventory.get( slot ) : ItemStack.EMPTY;
+ return slot >= 0 && slot < INVENTORY_SIZE ? inventory.get( slot )
+ : ItemStack.EMPTY;
}
@Nonnull
@@ -174,7 +179,8 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default
@Override
public void setStack( int i, @Nonnull ItemStack stack )
{
- if( i >= 0 && i < INVENTORY_SIZE && !InventoryUtil.areItemsEqual( stack, inventory.get( i ) ) )
+ if( i >= 0 && i < INVENTORY_SIZE
+ && !InventoryUtil.areItemsEqual( stack, inventory.get( i ) ) )
{
inventory.set( i, stack );
onInventoryDefinitelyChanged();
@@ -224,7 +230,8 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default
}
return ActionResult.SUCCESS;
}
- else if( currentItem.getItem() == Items.WATER_BUCKET && brain.getColour() != -1 )
+ else if( currentItem.getItem() == Items.WATER_BUCKET
+ && brain.getColour() != -1 )
{
// Water to remove turtle colour
if( !getWorld().isClient )
@@ -234,7 +241,8 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default
brain.setColour( -1 );
if( !player.isCreative() )
{
- player.setStackInHand( hand, new ItemStack( Items.BUCKET ) );
+ player.setStackInHand( hand,
+ new ItemStack( Items.BUCKET ) );
player.getInventory().markDirty();
}
}
@@ -265,9 +273,10 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default
}
}
- public static void tick( World world, BlockPos pos, BlockState state, TileTurtle tileTurtle)
+ public static void tick( World world, BlockPos pos, BlockState state,
+ TileTurtle tileTurtle )
{
- tileTurtle.brain.update();
+ tileTurtle.brain.update();
if( !tileTurtle.getWorld().isClient && tileTurtle.inventoryChanged )
{
ServerComputer computer = tileTurtle.getServerComputer();
@@ -279,30 +288,27 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default
tileTurtle.inventoryChanged = false;
for( int n = 0; n < tileTurtle.size(); n++ )
{
- tileTurtle.previousInventory.set( n,
- tileTurtle.getStack( n ).copy() );
+ tileTurtle.previousInventory.set( n, tileTurtle.getStack( n ).copy() );
}
}
}
@Override
protected void updateBlockState( ComputerState newState )
- {
- }
+ {}
@Nonnull
@Override
public NbtCompound writeNbt( @Nonnull NbtCompound nbt )
{
- super.readNbt( nbt );
+ super.readNbt( nbt );
// Write inventory
NbtList nbttaglist = new NbtList();
for( int i = 0; i < INVENTORY_SIZE; i++ )
{
- if( !inventory.get( i )
- .isEmpty() )
+ if( !inventory.get( i ).isEmpty() )
{
- NbtCompound tag = new NbtCompound();
+ NbtCompound tag = new NbtCompound();
tag.putByte( "Slot", (byte) i );
inventory.get( i ).writeNbt( tag );
nbttaglist.add( tag );
@@ -334,8 +340,7 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default
if( slot < size() )
{
inventory.set( slot, ItemStack.fromNbt( tag ) );
- previousInventory.set( slot, inventory.get( slot )
- .copy() );
+ previousInventory.set( slot, inventory.get( slot ).copy() );
}
}
@@ -360,11 +365,9 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default
@Override
protected ServerComputer createComputer( int instanceID, int id )
{
- ServerComputer computer = new ServerComputer( getWorld(),
- id, label,
- instanceID, getFamily(),
- ComputerCraft.turtleTermWidth,
- ComputerCraft.turtleTermHeight );
+ ServerComputer computer = new ServerComputer( getWorld(), id, label, instanceID,
+ getFamily(), ComputerCraft.turtleTermWidth,
+ ComputerCraft.turtleTermHeight );
computer.setPosition( getPos() );
computer.addAPI( new TurtleAPI( computer.getAPIEnvironment(), getAccess() ) );
brain.setupComputer( computer );
@@ -397,13 +400,17 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default
{
dir = Direction.NORTH;
}
- world.setBlockState( pos,
- getCachedState().with( BlockTurtle.FACING, dir ) );
+ world.setBlockState( pos, getCachedState().with( BlockTurtle.FACING, dir ) );
updateOutput();
updateInput();
onTileEntityChange();
}
+ public void setBlockPos( BlockPos pos )
+ {
+ this.pos.;
+ }
+
public void onTileEntityChange()
{
super.markDirty();
@@ -412,7 +419,7 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default
private boolean hasPeripheralUpgradeOnSide( ComputerSide side )
{
ITurtleUpgrade upgrade;
- switch( side )
+ switch ( side )
{
case RIGHT:
upgrade = getUpgrade( TurtleSide.RIGHT );
@@ -423,8 +430,7 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default
default:
return false;
}
- return upgrade != null && upgrade.getType()
- .isPeripheral();
+ return upgrade != null && upgrade.getType().isPeripheral();
}
// IInventory
@@ -525,8 +531,7 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default
boolean changed = false;
for( int i = 0; i < INVENTORY_SIZE; i++ )
{
- if( !inventory.get( i )
- .isEmpty() )
+ if( !inventory.get( i ).isEmpty() )
{
inventory.set( i, ItemStack.EMPTY );
changed = true;
@@ -556,7 +561,8 @@ public class TileTurtle extends TileComputerBase implements ITurtleTile, Default
@Nullable
@Override
- public ScreenHandler createMenu( int id, @Nonnull PlayerInventory inventory, @Nonnull PlayerEntity player )
+ public ScreenHandler createMenu( int id, @Nonnull PlayerInventory inventory,
+ @Nonnull PlayerEntity player )
{
return new ContainerTurtle( id, inventory, brain );
}
diff --git a/src/main/java/dan200/computercraft/shared/turtle/core/TurtlePlayer.java b/src/main/java/dan200/computercraft/shared/turtle/core/TurtlePlayer.java
index 5c69905f4..76170b7f8 100644
--- a/src/main/java/dan200/computercraft/shared/turtle/core/TurtlePlayer.java
+++ b/src/main/java/dan200/computercraft/shared/turtle/core/TurtlePlayer.java
@@ -207,31 +207,11 @@ public final class TurtlePlayer extends FakePlayer
{
}
-// @Override //FIXME: These need to be fixed.
-// public void openEditBookScreen( @Nonnull ItemStack stack, @Nonnull Hand hand )
-// {
-// }
-
@Override
public void closeHandledScreen()
{
}
-
-// @Override
-// public void updateCursorStack()
-// {
-// }
-
-// @Override
-// protected void onStatusEffectApplied( @Nonnull StatusEffectInstance id )
-// {
-// }
-
-// @Override
-// protected void onStatusEffectUpgraded( @Nonnull StatusEffectInstance id, boolean apply )
-// {
-// }
-
+
@Override
protected void onStatusEffectRemoved( @Nonnull StatusEffectInstance effect )
{
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 4bbfbedc1..4193f3e32 100644
--- a/src/main/java/dan200/computercraft/shared/turtle/items/ItemTurtle.java
+++ b/src/main/java/dan200/computercraft/shared/turtle/items/ItemTurtle.java
@@ -60,24 +60,24 @@ public class ItemTurtle extends ItemComputerBase implements ITurtleItem
}
if( id >= 0 )
{
- stack.getOrCreateTag()
+ stack.getOrCreateNbt()
.putInt( NBT_ID, id );
}
IColouredItem.setColourBasic( stack, colour );
if( fuelLevel > 0 )
{
- stack.getOrCreateTag()
+ stack.getOrCreateNbt()
.putInt( NBT_FUEL, fuelLevel );
}
if( overlay != null )
{
- stack.getOrCreateTag()
+ stack.getOrCreateNbt()
.putString( NBT_OVERLAY, overlay.toString() );
}
if( leftUpgrade != null )
{
- stack.getOrCreateTag()
+ stack.getOrCreateNbt()
.putString( NBT_LEFT_UPGRADE,
leftUpgrade.getUpgradeID()
.toString() );
@@ -85,7 +85,7 @@ public class ItemTurtle extends ItemComputerBase implements ITurtleItem
if( rightUpgrade != null )
{
- stack.getOrCreateTag()
+ stack.getOrCreateNbt()
.putString( NBT_RIGHT_UPGRADE,
rightUpgrade.getUpgradeID()
.toString() );
@@ -148,7 +148,7 @@ public class ItemTurtle extends ItemComputerBase implements ITurtleItem
@Override
public ITurtleUpgrade getUpgrade( @Nonnull ItemStack stack, @Nonnull TurtleSide side )
{
- NbtCompound tag = stack.getTag();
+ NbtCompound tag = stack.getNbt();
if( tag == null )
{
return null;
@@ -161,14 +161,14 @@ public class ItemTurtle extends ItemComputerBase implements ITurtleItem
@Override
public int getFuelLevel( @Nonnull ItemStack stack )
{
- NbtCompound tag = stack.getTag();
+ NbtCompound tag = stack.getNbt();
return tag != null && tag.contains( NBT_FUEL ) ? tag.getInt( NBT_FUEL ) : 0;
}
@Override
public Identifier getOverlay( @Nonnull ItemStack stack )
{
- NbtCompound tag = stack.getTag();
+ NbtCompound tag = stack.getNbt();
return tag != null && tag.contains( NBT_OVERLAY ) ? new Identifier( tag.getString( NBT_OVERLAY ) ) : null;
}
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 4ef094ed1..2b36437fd 100644
--- a/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleInventoryCrafting.java
+++ b/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleInventoryCrafting.java
@@ -141,7 +141,7 @@ public class TurtleInventoryCrafting extends CraftingInventory
{
setStack( slot, remainder );
}
- else if( ItemStack.areItemsEqualIgnoreDamage( existing, remainder ) && ItemStack.areTagsEqual( existing, remainder ) )
+ else if( ItemStack.areItemsEqualIgnoreDamage( existing, remainder ) && ItemStack.areNbtEqual( existing, remainder ) )
{
remainder.increment( existing.getCount() );
setStack( slot, remainder );
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 d9c2e5d0c..113ea0f3b 100644
--- a/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleTool.java
+++ b/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleTool.java
@@ -76,7 +76,7 @@ public class TurtleTool extends AbstractTurtleUpgrade
@Override
public boolean isItemSuitable( @Nonnull ItemStack stack )
{
- NbtCompound tag = stack.getTag();
+ NbtCompound tag = stack.getNbt();
if( tag == null || tag.isEmpty() ) return true;
// Check we've not got anything vaguely interesting on the item. We allow other mods to add their
diff --git a/src/main/java/dan200/computercraft/shared/util/FakeNetHandler.java b/src/main/java/dan200/computercraft/shared/util/FakeNetHandler.java
index 1c75b1d95..0b7637542 100644
--- a/src/main/java/dan200/computercraft/shared/util/FakeNetHandler.java
+++ b/src/main/java/dan200/computercraft/shared/util/FakeNetHandler.java
@@ -367,10 +367,5 @@ public class FakeNetHandler extends ServerPlayNetworkHandler
public void disableAutoRead()
{
}
-
- @Override
- public void setCompressionThreshold( int threshold )
- {
- }
}
}
diff --git a/src/main/java/dan200/computercraft/shared/util/FixedPointTileEntityType.java b/src/main/java/dan200/computercraft/shared/util/FixedPointTileEntityType.java
index d6d7f7768..85fa969c2 100644
--- a/src/main/java/dan200/computercraft/shared/util/FixedPointTileEntityType.java
+++ b/src/main/java/dan200/computercraft/shared/util/FixedPointTileEntityType.java
@@ -1,61 +1,62 @@
-/*
- * This file is part of ComputerCraft - http://www.computercraft.info
- * Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission.
- * Send enquiries to dratcliffe@gmail.com
- */
-
-package dan200.computercraft.shared.util;
-
-import net.minecraft.block.Block;
-import net.minecraft.block.entity.BlockEntity;
-import net.minecraft.block.entity.BlockEntityType;
-
-import javax.annotation.Nonnull;
-import java.util.Collections;
-import java.util.function.Function;
-import java.util.function.Supplier;
-
-/**
- * A {@link BlockEntityType} whose supplier uses itself as an argument.
- *
- * @param The type of the produced tile entity.
- */
-public final class FixedPointTileEntityType extends BlockEntityType
-{
- private final Supplier block;
-
- private FixedPointTileEntityType( Supplier block, Supplier builder )
- {
- super( builder, Collections.emptySet(), null ); //FIXME: Replace with the new BlockEntity handlers.
- this.block = block;
- }
-
- public static FixedPointTileEntityType create( Supplier block, Function, T> builder )
- {
- return new FixedPointSupplier<>( block, builder ).factory;
- }
-
-// @Override
-// public boolean supports( @Nonnull Block block )
+///*
+// * This file is part of ComputerCraft - http://www.computercraft.info
+// * Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission.
+// * Send enquiries to dratcliffe@gmail.com
+// */
+//
+//package dan200.computercraft.shared.util;
+//
+//import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder;
+//import net.minecraft.block.Block;
+//import net.minecraft.block.entity.BlockEntity;
+//import net.minecraft.block.entity.BlockEntityType;
+//
+//import javax.annotation.Nonnull;
+//import java.util.Collections;
+//import java.util.function.Function;
+//import java.util.function.Supplier;
+//
+///**
+// * A {@link BlockEntityType} whose supplier uses itself as an argument.
+// *
+// * @param The type of the produced tile entity.
+// */
+//public final class FixedPointTileEntityType extends BlockEntityType
+//{
+// private final Supplier block;
+//
+// private FixedPointTileEntityType( Supplier block, Supplier builder )
// {
-// return block == this.block.get();
+// super( builder, Collections.emptySet(), null ); //FIXME: Replace with the new BlockEntity handlers.
+// this.block = block;
// }
-
- private static final class FixedPointSupplier implements Supplier
- {
- final FixedPointTileEntityType factory;
- private final Function, T> builder;
-
- private FixedPointSupplier( Supplier block, Function, T> builder )
- {
- factory = new FixedPointTileEntityType<>( block, this );
- this.builder = builder;
- }
-
- @Override
- public T get()
- {
- return builder.apply( factory );
- }
- }
-}
+//
+// public static FixedPointTileEntityType create( Supplier block, Function, T> builder )
+// {
+// return new FixedPointSupplier<>( block, builder ).factory;
+// }
+//
+//// @Override
+//// public boolean supports( @Nonnull Block block )
+//// {
+//// return block == this.block.get();
+//// }
+//
+// private static final class FixedPointSupplier implements Supplier
+// {
+// final FixedPointTileEntityType factory;
+// private final Function, T> builder;
+//
+// private FixedPointSupplier( Supplier block, Function, T> builder )
+// {
+// factory = FabricBlockEntityTypeBuilder.create( this, block );
+// this.builder = builder;
+// }
+//
+// @Override
+// public T get()
+// {
+// return builder.apply( factory );
+// }
+// }
+//}
diff --git a/src/main/java/dan200/computercraft/shared/util/InventoryUtil.java b/src/main/java/dan200/computercraft/shared/util/InventoryUtil.java
index ef753f60e..9d836718b 100644
--- a/src/main/java/dan200/computercraft/shared/util/InventoryUtil.java
+++ b/src/main/java/dan200/computercraft/shared/util/InventoryUtil.java
@@ -30,7 +30,7 @@ public final class InventoryUtil
public static boolean areItemsStackable( @Nonnull ItemStack a, @Nonnull ItemStack b )
{
- return a == b || (a.getItem() == b.getItem() && ItemStack.areTagsEqual( a, b ));
+ return a == b || (a.getItem() == b.getItem() && ItemStack.areNbtEqual( a, b ));
}
// Methods for finding inventories:
diff --git a/src/main/java/dan200/computercraft/shared/util/ItemStorage.java b/src/main/java/dan200/computercraft/shared/util/ItemStorage.java
index 0bbd878ca..2868ad395 100644
--- a/src/main/java/dan200/computercraft/shared/util/ItemStorage.java
+++ b/src/main/java/dan200/computercraft/shared/util/ItemStorage.java
@@ -34,7 +34,7 @@ public interface ItemStorage
static boolean areStackable( @Nonnull ItemStack a, @Nonnull ItemStack b )
{
- return a == b || (a.getItem() == b.getItem() && ItemStack.areTagsEqual( a, b ));
+ return a == b || (a.getItem() == b.getItem() && ItemStack.areNbtEqual( a, b ));
}
int size();