private void UpdateClientInterface(ResearchClientComponent component) { var state = new ResearchClientBoundInterfaceState(Servers.Count, GetServerNames(), GetServerIds(), component.ConnectedToServer ? component.Server !.Id : -1); _uiSystem.GetUiOrNull(component.Owner, ResearchClientUiKey.Key)?.SetState(state); }
private void OnClientStartup(EntityUid uid, ResearchClientComponent component, ComponentStartup args) { if (Servers.Count > 0) { RegisterClientServer(component, Servers[0]); } }
private bool RegisterClientServer(ResearchClientComponent component, ResearchServerComponent?server = null) { if (server == null) { return(false); } return(RegisterServerClient(server, component)); }
private void UnregisterClientServer(ResearchClientComponent component) { if (component.Server == null) { return; } UnregisterServerClient(component.Server, component); }
public void UnregisterServerClient(ResearchServerComponent component, ResearchClientComponent clientComponent) { if (TryComp <ResearchPointSourceComponent>(clientComponent.Owner, out var source)) { component.PointSources.Remove(source); } component.Clients.Remove(clientComponent); clientComponent.Server = null; }
private void OnClientDeselected(EntityUid uid, ResearchClientComponent component, ResearchClientServerDeselectedMessage args) { UnregisterClientServer(component); UpdateClientInterface(component); if (TryComp <ResearchConsoleComponent>(uid, out var console)) { UpdateConsoleInterface(console, component); } }
public bool RegisterServerClient(ResearchServerComponent component, ResearchClientComponent clientComponent) { // TODO: This is shit but I'm just trying to fix RND for now until it gets bulldozed if (TryComp <ResearchPointSourceComponent>(clientComponent.Owner, out var source)) { if (component.PointSources.Contains(source)) { return(false); } component.PointSources.Add(source); source.Server = component; } if (component.Clients.Contains(clientComponent)) { return(false); } component.Clients.Add(clientComponent); clientComponent.Server = component; return(true); }
private void OnClientUIOpen(EntityUid uid, ResearchClientComponent component, BoundUIOpenedEvent args) { UpdateClientInterface(component); }
private void OnClientShutdown(EntityUid uid, ResearchClientComponent component, ComponentShutdown args) { UnregisterClientServer(component); }
private void OnClientSyncMessage(EntityUid uid, ResearchClientComponent component, ResearchClientSyncMessage args) { UpdateClientInterface(component); }