void OnNetworkVarSync(INetworkVar _cSyncedVar)
    {
        if (_cSyncedVar == m_cActiveTurretViewId)
        {
            if (m_cActiveTurretViewId.Get() != null)
            {
                CTurretBehaviour tb = m_cActiveTurretViewId.Get().GameObject.GetComponent <CTurretBehaviour>();

                // Register the handling cockpit rotations
                tb.EventTurretRotated += HandleCockpitRotations;

                // Set initial states
                HandleCockpitRotations(tb.TurretRotations, tb.MinMaxRotationX);

                // Set the render texture from the turret
                m_CockpitScreen.renderer.material.SetTexture("_MainTex", tb.CameraRenderTexture);
                m_CockpitScreen2.renderer.material.SetTexture("_MainTex", tb.CameraRenderTexture);
            }

            // Unregister previous the handling cockpit rotations
            if (m_cActiveTurretViewId.GetPrevious() != null)
            {
                m_cActiveTurretViewId.GetPrevious().GameObject.GetComponent <CTurretBehaviour>().EventTurretRotated -= HandleCockpitRotations;
            }
        }
    }
Beispiel #2
0
    void OnNetworkVarSync(INetworkVar _cSyncedVar)
    {
        if (_cSyncedVar == m_tRotation)
        {
            // Update the rotation of the turret
            transform.localEulerAngles           = new Vector3(0.0f, m_tRotation.Get().y, 0.0f);
            m_cBarrel.transform.localEulerAngles = new Vector3(m_tRotation.Get().x, 0.0f, 0.0f);

            if (EventTurretRotated != null)
            {
                EventTurretRotated(m_tRotation.Get(), MinMaxRotationX);
            }
        }
        else if (_cSyncedVar == m_ulControllerPlayerId)
        {
            if (ControllerPlayerId != 0)
            {
                // Enable the cameras
                m_ShipCamera.camera.enabled   = true;
                m_GalaxyCamera.camera.enabled = true;
            }
            else
            {
                // Disable the cameras
                m_ShipCamera.camera.enabled   = false;
                m_GalaxyCamera.camera.enabled = false;
            }

            if (EventControllerChange != null)
            {
                EventControllerChange(m_ulControllerPlayerId.GetPrevious(), m_ulControllerPlayerId.Get());
            }
        }
    }
Beispiel #3
0
    protected void UpdateLocalBarValue()
    {
        if (!Mathf.Approximately(m_CachedProgressBar.value, m_Value.Get()))
        {
            m_CachedProgressBar.value = m_Value.Get();
        }

        m_IsDirty = false;
    }
Beispiel #4
0
    private void OnEventClientAxisControlTurret(CUserInput.EAxis _eAxis, ulong _ulPlayerId, float _fValue)
    {
        if (_ulPlayerId == m_ulControllerPlayerId.Get())
        {
            if (transform.FindChild("MechanicalComponent").GetComponent <CActorHealth>().health > 0)
            {
                switch (_eAxis)
                {
                case CUserInput.EAxis.MouseX:
                {
                    Vector2 vRotation = new Vector2(m_cBarrel.transform.eulerAngles.x, transform.rotation.eulerAngles.y);

                    // Update rotation
                    vRotation.y += _fValue;

                    // Apply rotations to turret
                    transform.localEulerAngles           = new Vector3(0.0f, vRotation.y, 0.0f);
                    m_cBarrel.transform.localEulerAngles = new Vector3(vRotation.x, 0.0f, 0.0f);

                    // Server updates the rotation for other clients
                    m_tRotation.Set(new Vector2(vRotation.x, vRotation.y));
                    break;
                }

                case CUserInput.EAxis.MouseY:
                {
                    Vector2 vRotation = new Vector2(m_cBarrel.transform.eulerAngles.x, transform.rotation.eulerAngles.y);

                    // Update rotation
                    vRotation.x += _fValue;
                    vRotation.x  = Mathf.Clamp(vRotation.x, m_fMinRotationX, m_fMaxRotationX);

                    // Apply rotations to turret
                    transform.localEulerAngles           = new Vector3(0.0f, vRotation.y, 0.0f);
                    m_cBarrel.transform.localEulerAngles = new Vector3(vRotation.x, 0.0f, 0.0f);

                    // Server updates the rotation for other clients
                    m_tRotation.Set(new Vector2(vRotation.x, vRotation.y));
                    break;
                }

                default:
                    Debug.LogError("Unknown input");
                    break;
                }
            }
        }
    }
Beispiel #5
0
 public void OnNetworkVarSync(INetworkVar _rSender)
 {
     m_CreateExpansionStage         = (EExpansionCreatePhase)m_ServerCreateExpansionStage.Get();
     m_LocalExpansionPortIdSelected = m_ServerLocalExpansionPortIdSelected.Get();
     m_OtherExpansionPortIdSelected = m_ServerOtherExpansionPortIdSelected.Get();
     m_FacilitySelected             = (CFacilityInterface.EType)m_ServerFacilitySelected.Get();
 }
Beispiel #6
0
 public void Start()
 {
     // Create the UI if it hasnt been created already
     if (CNetwork.IsServer && m_DUIViewId.Get() == null)
     {
         CreateUserInterface();
     }
 }
Beispiel #7
0
    private void UpdatePortPresentation()
    {
        // Get the port that was selected
        GameObject port = CNetwork.Factory.FindObject(m_CurrentPortSelected.Get());

        // Update the port info in the DUI
        UpdatePortInfo(port.GetComponent <CModulePortInterface>());
    }
Beispiel #8
0
 public void OnNetworkVarSync(INetworkVar _cSyncedNetworkVar)
 {
     // Head Rotation
     if (CGamePlayers.SelfActor != gameObject &&
         _cSyncedNetworkVar == m_fHeadEulerX)
     {
         m_cActorHead.transform.localEulerAngles = new Vector3(m_fHeadEulerX.Get(), 0.0f, 0.0f);
     }
 }
Beispiel #9
0
 void OnNetworkVarSync(INetworkVar _cSyncedNetworkVar)
 {
     if (_cSyncedNetworkVar == m_RightHandNetworkedPos)
     {
         RightHandIKTarget.position = m_RightHandNetworkedPos.Get();
     }
     if (_cSyncedNetworkVar == m_LeftHandNetworkedPos)
     {
         LeftHandIKTarget.position = m_LeftHandNetworkedPos.Get();
     }
 }
Beispiel #10
0
    void Update()
    {
        if (CNetwork.IsServer)
        {
            timeUntilNextNetworkSync -= Time.deltaTime;
            if (timeUntilNextNetworkSync <= 0.0f && (syncNetworkHealth || syncNetworkState))
            {
                if (syncNetworkHealth && health_current != health_internal.Get())
                {
                    health_internal.Set(health_current);
                }

                if (syncNetworkState && state_current != state_internal.Get())
                {
                    state_internal.Set(state_current);
                }

                timeUntilNextNetworkSync = timeBetweenNetworkSyncs;
            }
        }
    }
    void OnFacilityCreate(GameObject _Facility)
    {
        // If trigger radius >= (Vec1 - Vec2).magnitude
        if (m_fTriggerRadius.Get() >= ((_Facility.transform.position - transform.position).magnitude))
        {
            // If facility is NOT a member of the facility list
            if (!ListSearch(_Facility))
            {
                NearbyFacilities.Add(_Facility);

                // Apply gravity to facility
            }

            // Default
            else
            {
                Debug.LogError("CGravityTriggerResponse.cs attempted" +
                               "to call OnFacilityCreate(" + _Facility.ToString() + ")." +
                               "Event parameter object is already a member of the facility list.");
            }
        }
    }
    public void OnNetworkVarSync(INetworkVar _rSender)
    {
        if (!CNetwork.IsServer)
        {
            // Position
            if (_rSender == m_Position)
            {
                transform.position = m_Position.Get();
            }

            // Rotation
            else if (_rSender == m_EulerAngles)
            {
                transform.eulerAngles = m_EulerAngles.Get();
            }
        }
    }
Beispiel #13
0
    void OnNetworkVarSync(INetworkVar _cSyncedNetworkVar)
    {
        if (_cSyncedNetworkVar == m_bRagdollState)
        {
            switch ((ENetworkAction)m_bRagdollState.Get())
            {
            case ENetworkAction.EventDeath:
            {
                SetRagdollActive();
                break;
            }

            case ENetworkAction.EventRevive:
            {
                DeactivateRagdoll();
                break;
            }
            }
        }
    }
Beispiel #14
0
 public void OnNetworkVarSync(INetworkVar sender)
 {
     if (!CNetwork.IsServer)
     {
         if (Position && (sender == mPositionX || sender == mPositionY || sender == mPositionZ))
         {
             transform.position = new Vector3(mPositionX.Get(), mPositionY.Get(), mPositionZ.Get());
         }
         else if (Angle && (sender == mAngleX || sender == mAngleY || sender == mAngleZ))
         {
             transform.eulerAngles = new Vector3(mAngleX.Get(), mAngleY.Get(), mAngleZ.Get());
         }
         else if (PositionalVelocity && (sender == mPositionalVelocityX || sender == mPositionalVelocityY || sender == mPositionalVelocityZ))
         {
             rigidbody.velocity = new Vector3(mPositionalVelocityX.Get(), mPositionalVelocityY.Get(), mPositionalVelocityZ.Get());
         }
         else if (AngularVelocity && (sender == mAngularVelocityX || sender == mAngularVelocityY || sender == mAngularVelocityZ))
         {
             rigidbody.angularVelocity = new Vector3(mAngularVelocityX.Get(), mAngularVelocityY.Get(), mAngularVelocityZ.Get());
         }
     }
 }
Beispiel #15
0
 public float GetGravityOutput()
 {
     return(m_fCurrentGravityOutput.Get());
 }
Beispiel #16
0
 public void AddOxygen(float _OxygenAmount)
 {
     m_fOxygen.Set(_OxygenAmount + m_fOxygen.Get());
 }
Beispiel #17
0
    private void UpdateToolPresentation()
    {
        // Create a temp module
        string     toolPrefabFile = CNetwork.Factory.GetRegisteredPrefabFile(CToolInterface.GetPrefabType(m_CurrentToolType.Get()));
        GameObject toolObject     = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/" + toolPrefabFile));

        // Destroy the old module
        if (m_ParentToolObject.transform.childCount != 0)
        {
            Destroy(m_ParentToolObject.transform.GetChild(0).gameObject);
        }

        // Update the tool info
        UpdateToolInfo(toolObject.GetComponent <CToolInterface>());

        // Destroy the non rendering
        CUtility.DestroyAllNonRenderingComponents(toolObject);

        // Add it to the child object
        toolObject.transform.parent = m_ParentToolObject.transform;

        // Reset some values
        CUtility.SetLayerRecursively(toolObject, LayerMask.NameToLayer("UI 3D"));
        toolObject.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f);
        toolObject.transform.localRotation = Quaternion.identity;

        // Set the scale a lot smaller
        toolObject.transform.localScale = new Vector3(0.8f, 0.8f, 0.8f);
    }