Beispiel #1
0
    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);
    }
Beispiel #2
0
 private void OnClientStartup(EntityUid uid, ResearchClientComponent component, ComponentStartup args)
 {
     if (Servers.Count > 0)
     {
         RegisterClientServer(component, Servers[0]);
     }
 }
Beispiel #3
0
 private bool RegisterClientServer(ResearchClientComponent component, ResearchServerComponent?server = null)
 {
     if (server == null)
     {
         return(false);
     }
     return(RegisterServerClient(server, component));
 }
Beispiel #4
0
    private void UnregisterClientServer(ResearchClientComponent component)
    {
        if (component.Server == null)
        {
            return;
        }

        UnregisterServerClient(component.Server, component);
    }
Beispiel #5
0
    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;
    }
Beispiel #6
0
    private void OnClientDeselected(EntityUid uid, ResearchClientComponent component, ResearchClientServerDeselectedMessage args)
    {
        UnregisterClientServer(component);
        UpdateClientInterface(component);

        if (TryComp <ResearchConsoleComponent>(uid, out var console))
        {
            UpdateConsoleInterface(console, component);
        }
    }
Beispiel #7
0
    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);
    }
Beispiel #8
0
 private void OnClientUIOpen(EntityUid uid, ResearchClientComponent component, BoundUIOpenedEvent args)
 {
     UpdateClientInterface(component);
 }
Beispiel #9
0
 private void OnClientShutdown(EntityUid uid, ResearchClientComponent component, ComponentShutdown args)
 {
     UnregisterClientServer(component);
 }
Beispiel #10
0
 private void OnClientSyncMessage(EntityUid uid, ResearchClientComponent component, ResearchClientSyncMessage args)
 {
     UpdateClientInterface(component);
 }