User Tools

Site Tools


zh_cn:tutorial:extendedscreenhandler

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
zh_cn:tutorial:extendedscreenhandler [2022/02/10 13:24] – 在 Screen 中使用 ExtendedScreenHandler 信息 timothy_starmanzh_cn:tutorial:extendedscreenhandler [2022/02/10 13:32] (current) – Result timothy_starman
Line 7: Line 7:
 由于 Block 类根本不需要更改,我们将其留在这里。 由于 Block 类根本不需要更改,我们将其留在这里。
  
-我们的方块实体现在实现了 "ExtendedScreenHandlerFactory",这个接口为我们提供了 "writeScreenOpeningData方法,当它请求客户端(client)打开一个 "ScreenHandler时,将在服务器(server)上调用该方法。 您写入 "PacketByteBuf的数据将通过网络传输到客户端(client)。+我们的方块实体现在实现了 ''ExtendedScreenHandlerFactory'',这个接口为我们提供了 ''writeScreenOpeningData'' 方法,当它请求客户端(client)打开一个 ''ScreenHandler'' 时,将在服务器(server)上调用该方法。 您写入 ''PacketByteBuf'' 的数据将通过网络传输到客户端(client)。
  
 <code java [enable_line_numbers="true"] BoxBlockEntity.java> <code java [enable_line_numbers="true"] BoxBlockEntity.java>
Line 142: Line 142:
  
 </code> </code>
 +
 +====== 注册我们的 ScreenHandler ======
 +
 +<code java [enable_line_numbers="true"] ExampleMod.java>
 +public class ExampleMod implements ModInitializer {
 +
 +    [...]
 +    public static final ScreenHandlerType<BoxScreenHandler> BOX_SCREEN_HANDLER;
 +
 +    static {
 +        [...]
 +       
 +        //我们现在使用 registerExtended 作为我们的 screenHandler 现在在其构造函数中接受一个 packetByteBuf
 +        BOX_SCREEN_HANDLER = ScreenHandlerRegistry.registerExtended(BOX, BoxScreenHandler::new);
 +    }
 +
 +    @Override
 +    public void onInitialize() {
 +
 +    }
 +}
 +</code>
 +
 +====== 结果 ======
 +您现在已经了解了如何在 ScreenHandler 打开时传输数据。 在图像中您可以看到结果:方块的标题现在是它的位置。
 +请注意,这只是一个演示,还有更简单的方法可以将位置设置为标题。
 +
 +您可能想知道://即使在屏幕打开后,我可以再次传输这些数据吗?//
 +这可以通过在屏幕打开后发送自定义数据包来实现。 (see: [[tutorial:networking|Networking Tutorial]]) \\
 +您可能还想看看''BlockEntityClientSerializable'', 来自Fabric API 的界面.
 +
 +如果您只想同步整数值,您可以使用''PropertyDelegate'': [[tutorial:propertydelegates]].
 +
 +{{:tutorial:bildschirmfoto_vom_2020-08-14_18-37-51.png?nolink&400|}}
 +
  
zh_cn/tutorial/extendedscreenhandler.1644499487.txt.gz · Last modified: 2022/02/10 13:24 by timothy_starman