Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Network/backend rewrite (1/?) #116

Merged
merged 9 commits into from
Jan 2, 2018
Merged

Conversation

2xsaiko
Copy link
Collaborator

@2xsaiko 2xsaiko commented Dec 25, 2017

This is a pretty big change which should reduce the amount of data sent by sending all chunk changes in a single packet, which allows for further optimisation (only sending block pos once per block, for example). All part changes get stored in a change list (1 per chunk) which gets flushed at the end of the tick. (See #48)
Also, a lot of the code in TileMultipartContainer has been refactored/redone to reduce bugs and reduce duplicate code.

This is also a prerequisite for #57.

@2xsaiko 2xsaiko changed the title Network/backend rewrite (1/?) [WIP] Network/backend rewrite (1/?) Dec 26, 2017
@2xsaiko 2xsaiko changed the title [WIP] Network/backend rewrite (1/?) Network/backend rewrite (1/?) Dec 26, 2017
@amadornes amadornes merged commit c7c1578 into amadornes:1.12 Jan 2, 2018
2xsaiko added a commit to 2xsaiko/MCMultiPart that referenced this pull request Feb 12, 2018
* network rewrite (broken)

* It kinda works now?

* Only a few bugs remain!

* This seems to work reasonably well?

* Removed placement hack so that parts don't get placed on the client when they can't get placed on the server

* Inconsistencies are bad

* Re enable sorting optimization

* That message was a bit confusing
amadornes pushed a commit that referenced this pull request Feb 27, 2018
* Fix waila crash closes #92 (#97)

* Fix major part placement issues

* Copy-paste Forge's BlockEvent.PlaceEvent code for multiparts. Fixes #85... I hope

* Hopefully fixed issue with NPEs in MultipartHelper

* Oops... that wasn't supposed to be left in...

* Fix redstone interaction crashes
Not sure why these weren't a thing in the past, or whether redstone is being stupid now, but this should fix them

* Prevent crash when requesting a part from a null slot

* Properly notify neighbors of updates

* Hopefully fixed issues with parts not being aware of their world when converting from a standalone block

* Fixed yet another hidden bug - thanks Algo!

* Fix #100 (#104)

* fix #106 by making sure the part is added prior to handling the update tag (#107)

* Fix #101 (#105)

* Fix #101

* Added canPlacePartOnSide and canPlacePartAt to IMultipart

* Made canPlacePartAt check Block's methods
Added canPlaceBlockOnSide check to stack wrapper
Pass IPartSlot to canPlacePartOnSide

* Fix TEs not getting their IPartInfo set when turned into a multipart

* Implement onEntityCollidedWithBlock (needed for BC compat: Obsidian Pipes) (#108)

* This should be executable! (#109)

* canPlaceBlockAt() checks if the block is replacable. We don't wnat this for multiparts. Whoops -_- (#113)

* add check if player can destroy the block (#111)

* Allow special getSelectedBoundingBox handling (#110)

* Fix #112 (#114)

* Fix #112

* Rewrote it to use MethodHandles instead of reflection

* Network/backend rewrite (1/?) (#116)

* network rewrite (broken)

* It kinda works now?

* Only a few bugs remain!

* This seems to work reasonably well?

* Removed placement hack so that parts don't get placed on the client when they can't get placed on the server

* Inconsistencies are bad

* Re enable sorting optimization

* That message was a bit confusing

* Fix multiparts not rendering, an error when breaking Mekanism cables, and a name change
@2xsaiko 2xsaiko deleted the 1.12-network branch April 19, 2018 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants