Example #1
0
 /// Serverside
 /// Registers if unhidden, unregisters if hidden
 private void UpdateActiveStatusServer()
 {
     if (serverState.Active)
     {
         registerTile.UpdatePositionServer();
     }
     else
     {
         if (registerTile)
         {
             registerTile.UnregisterServer();
         }
     }
 }
Example #2
0
    private void UpdateState(bool _aliveState)
    {
        visibleState = _aliveState;
        OnVisibilityChange(_aliveState);

        MonoBehaviour[] scripts   = GetComponentsInChildren <MonoBehaviour>(true);
        Collider2D[]    colliders = GetComponentsInChildren <Collider2D>();
        Renderer[]      renderers = GetComponentsInChildren <Renderer>(true);

        for (int i = 0; i < scripts.Length; i++)
        {
            if (CanBeDisabled(scripts[i]))
            {
                scripts[i].enabled = _aliveState;
            }
        }

        for (int i = 0; i < colliders.Length; i++)
        {
            colliders[i].enabled = _aliveState;
        }

        for (int i = 0; i < renderers.Length; i++)
        {
            SpriteRenderer sr = renderers[i] as SpriteRenderer;
            // Cast and check cast.
            // This is necessary because some renderers fail the cast.
            if (sr != null && !CanBeDisabled(sr))
            {
            }
            else
            {
                renderers[i].enabled = _aliveState;
            }
        }

        if (registerTile != null)
        {
            if (_aliveState)
            {
                registerTile.UpdatePositionClient();
                registerTile.UpdatePositionServer();
            }
            else
            {
                registerTile.UnregisterClient();
                registerTile.UnregisterServer();
            }
        }
    }
    public void DestroyingThisNow()
    {
        if (InData.DestroyQueueing)
        {
            InData.FlushConnectionAndUp();
            FindPossibleConnections();
            InData.FlushConnectionAndUp();

            registerTile.UnregisterClient();
            registerTile.UnregisterServer();
            if (this != null)
            {
                ElectricalManager.Instance.electricalSync.StructureChange = true;
                InData.DestroyAuthorised = true;
                Despawn.ServerSingle(gameObject);
            }
        }
    }