ImmersiveMC

ImmersiveMC

683k Downloads

Remove ClientStorage

hammy275 opened this issue ยท 4 comments

commented

Funny checklist:

  • Get Forge's WorldStorage system set up on individual worlds (so we don't need to check the dimension).

  • Create a HashMap from BlockPos to whatever storage type blocks will use, and implement the ability to read/write the data to disk through WorldStorage.

  • Hook ClientStorage blocks to remove a storage on break. We'll dynamically create them when they're first needed.

  • All block types now periodically ask the server for data about tracked immersives, instead of tile entities with IStorage. Make sure to also adjust the maximum number of immersives.

  • Send item swaps to the server like IStorage ones already do, We have one source of truth (the HashMap), so no need to worry about duplications.

  • Drop items on break

  • Remove old config settings

  • Add different item placement modes

  • Do something similar except with Capabilities attached to players for backpack crafting

commented

For the enchanting table, send the item in the usual packet, and the enchantments in a separate packet when the client requests, since the latter is stored by-player not by-block.

commented

Didn't use capabilities in the end, but backpack crafting is good now!

commented

Probably needs a lot of bugtesting, but this is done!

commented

Placement Modes (are both in and out of VR):

  • Place all. Current behavior.
  • Place half. Splits the stack in half (rounded up) and places one of the halves in.
  • Place quarter. Places 1/4 (rounded up) of the items in.
  • Place one (default). Places 1 item in.

All modes should also support merging. For example, if there are 32 planks and you "place" 7 planks in, it should stack up to 39, rather than swapping.