10 Months Ago
Host Sync Vars (#1462) * NetworkTable.Entry.HasControl test. Separate sending network table changes from main update. Host or Owner can send table changes (only send entries they _control_) * When using WriteAll always write all regardless of control. Make it so unless YOU control a Sync property you can't physically change its value * Revert that for now - let people change Sync var value locally as it was before, we can try to find a better way to prevent this later. Complication comes from INetworkCustom * Remove redundant call * Let''s have each entry define if it has changes now that each one can be potentially controlled by different clients. Make sure we clear changed flag on entry when reading it. NetworkTable.HasChanges will now return true if any entry we have control over is dirty * Clarify comment * Let's call it HostSync * Prevent actual setting of Sync property, modification of NetList, or NetDictionary if you don't have control over it. Non-owner, non-host can't change the values locally, they _must_ be what the synchronized value is * We can always set the property if network not initialized * Default HasControl to true for NetList/NetDictionary in-case not set