Exemple #1
0
    public void OnInteractionInput(CPlayerInteractor.EInputInteractionType _eInputInteractionEvent, GameObject _cPlayerActor, RaycastHit _cRaycastHit, bool _bDown)
    {
        CNetworkViewId cNetworkViewId = _cPlayerActor.GetComponent <CNetworkView>().ViewId;

        switch (_eInputInteractionEvent)
        {
        case CPlayerInteractor.EInputInteractionType.Primary:
            if (EventPrimary != null)
            {
                EventPrimary(_cRaycastHit, cNetworkViewId, _bDown);
            }
            break;

        case CPlayerInteractor.EInputInteractionType.Secondary:
            if (EventSecondary != null)
            {
                EventSecondary(_cRaycastHit, cNetworkViewId, _bDown);
            }
            break;

        case CPlayerInteractor.EInputInteractionType.Use:
            if (EventUse != null)
            {
                EventUse(_cRaycastHit, cNetworkViewId, _bDown);
            }
            break;

        default:
            break;
        }
    }
Exemple #2
0
    void OnNetworkVarSync(INetworkVar _cSyncedVar)
    {
        for (uint i = 0; i < k_uiMaxNumTools; ++i)
        {
            if (m_acToolsViewId[i] == _cSyncedVar)
            {
                CNetworkViewId cToolNetworkViewId = m_acToolsViewId[i].Get();

                if (cToolNetworkViewId == null)
                {
                    if (EventToolDropped != null)
                    {
                        EventToolDropped(m_acToolsViewId[i].GetPrevious());
                    }
                }
                else
                {
                    if (EventToolPickedup != null)
                    {
                        EventToolPickedup(cToolNetworkViewId);
                    }
                }
            }
        }

        // Changing tool
        if (_cSyncedVar == m_bActiveToolId)
        {
            if (EventToolChanged != null)
            {
                EventToolChanged(m_acToolsViewId[m_bActiveToolId.Get()].Get());
            }
        }
    }
Exemple #3
0
    public static CNetworkViewId GenerateDynamicViewId()
    {
		// Ensure servers only generate dynamic view ids
		Logger.WriteErrorOn(!CNetwork.IsServer, "Clients cannot generate network view ids!!!");

        CNetworkViewId cViewId = new CNetworkViewId();

        for (ushort i = k_usMaxStaticViewId; i < k_usMaxDynamicViewId; ++i)
        {
            // Check the dynamic view id is free
            if (!s_cNetworkViews.ContainsKey(i))
            {
                cViewId = new CNetworkViewId(i, 0);

				// Add id into list without owner so someone else does not claim the id
                s_cNetworkViews.Add(i, null);

                break;
            }
        }

		// Ensure id was generated
		Logger.WriteErrorOn(cViewId.Id == 0, "Oh shit, the network view id generator ran out of ids. The game is now broken. GG");

        return (cViewId);
    }
Exemple #4
0
    public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        while (_cStream.HasUnreadData)
        {
            ENetworkAction eAction          = (ENetworkAction)_cStream.ReadByte();
            CNetworkViewId cModuleGunViewId = _cStream.ReadNetworkViewId();

            GameObject     cModuleGunObject = cModuleGunViewId.GameObject;
            CToolInterface cToolInterface   = cModuleGunObject.GetComponent <CToolInterface>();
            CTorchLight    cTorchLight      = cModuleGunObject.GetComponent <CTorchLight>();

            switch (eAction)
            {
            case ENetworkAction.TurnOnLight:
                cTorchLight.SetActive(true);
                break;

            case ENetworkAction.TurnOffLight:
                cTorchLight.SetActive(false);
                break;

            case ENetworkAction.ToggleColour:
                cTorchLight.ToggleColour();
                break;


            default:
                Debug.LogError("Unknown network action: " + eAction);
                break;
            }
        }
    }
Exemple #5
0
    void HandleEnterCockpit(ulong _ulPlayerId)
    {
        GameObject cPlayerActor = CGamePlayers.GetPlayerActor(_ulPlayerId);

        if (cPlayerActor != null && !IsMounted)
        {
            CNetworkViewId cPlayerActorViewId = cPlayerActor.GetComponent <CNetworkView>().ViewId;

            // Save position on player when entering
            m_vEnterPosition = cPlayerActor.transform.position;
            m_EnterRotation  = cPlayerActor.transform.rotation;

            // Parent the player to the cockpit seat
            cPlayerActor.GetComponent <CNetworkView>().SetParent(m_cSeat.GetComponent <CNetworkView>().ViewId);

            // Teleport player in cockpit
            cPlayerActor.GetComponent <CNetworkView>().SetPosition(m_cSeat.transform.position);
            cPlayerActor.GetComponent <CNetworkView>().SetRotation(m_cSeat.transform.rotation);

            // Set the player kinematic
            cPlayerActor.rigidbody.isKinematic = true;

            m_cMountedPlayerId.Set(_ulPlayerId);

            // Notify observers
            if (EventPlayerEnter != null)
            {
                EventPlayerEnter(m_cMountedPlayerId.Get());
            }
        }
    }
Exemple #6
0
    public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        while (_cStream.HasUnreadData)
        {
            CNetworkViewId cCockpitObjectViewId = _cStream.ReadNetworkViewId();
            ENetworkAction eAction = (ENetworkAction)_cStream.ReadByte();

            GameObject cCockpitObject = CNetwork.Factory.FindObject(cCockpitObjectViewId);

            CCockpit cCockpit = cCockpitObject.GetComponent <CCockpit>();

            switch (eAction)
            {
            case ENetworkAction.EnterCockpit:
                cCockpit.HandleEnterCockpit(_cNetworkPlayer.PlayerId);
                break;

            case ENetworkAction.LeaveCockpit:
                cCockpit.HandleLeaveCockpit(_cNetworkPlayer.PlayerId);
                break;

            default:
                Debug.LogError(string.Format("Unknown network action ({0})"));
                break;
            }
        }
    }
Exemple #7
0
    public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        while (_cStream.HasUnreadData)
        {
            CNetworkViewId cTurretViewId = _cStream.ReadNetworkViewId();
            GameObject     cTurretObject = CNetwork.Factory.FindObject(cTurretViewId);

            if (cTurretObject != null)
            {
                CLaserTurretBehaviour cLaserTurretBehaviour = cTurretObject.GetComponent <CLaserTurretBehaviour>();
                ENetworkAction        eAction = (ENetworkAction)_cStream.ReadByte();

                switch (eAction)
                {
                case ENetworkAction.FireLasers:
                    cLaserTurretBehaviour.FireLasers();
                    break;

                default:
                    Debug.LogError(string.Format("Unknown network action ({0})", eAction));
                    break;
                }
            }
        }
    }
    void DecodeAudio(object _rawData)
    {
        //Convert incoming data to a CNetworkStream.
        CNetworkStream _cAudioDataStream = (CNetworkStream)_rawData;

        //Pull relevant information out of the network stream.
        int iFrequency       = _cAudioDataStream.ReadInt();
        int iNumSamples      = _cAudioDataStream.ReadInt();
        int iNumEncodedBytes = _cAudioDataStream.ReadInt();

        byte[]         baEncodedData = _cAudioDataStream.ReadBytes(iNumEncodedBytes);
        CNetworkViewId cSenderViewID = _cAudioDataStream.ReadNetworkViewId();

        // Decode
        short[] saDecodedFrames  = new short[iNumSamples];
        int     iNumDecodedBytes = m_eDecoder.Decode(baEncodedData, 0, iNumEncodedBytes, saDecodedFrames, 0, false);
        //Debug.Log("Decoded audio data size: " + iNumDecodedBytes + " : " + saDecodedFrames.Length);

        //Populate a new struct which can be accessed later.
        DecodeInformation decodedFrameInfo;

        decodedFrameInfo.saDecodedData = saDecodedFrames;
        decodedFrameInfo.iFrequency    = iFrequency;
        decodedFrameInfo.cSenderViewID = cSenderViewID;
        decodedFrameInfo.iNumSamples   = iNumSamples;

        s_decodedFrames.Enqueue(decodedFrameInfo);
    }
Exemple #9
0
    public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        GameObject      cPlayerObject   = CGamePlayers.GetPlayerActor(_cNetworkPlayer.PlayerId);
        CPlayerBackPack cPlayerBackPack = cPlayerObject.GetComponent <CPlayerBackPack>();

        // Process stream data
        while (_cStream.HasUnreadData)
        {
            // Extract action
            ENetworkAction eAction = (ENetworkAction)_cStream.ReadByte();

            // Handle action
            switch (eAction)
            {
            case ENetworkAction.PickupModule:
                CNetworkViewId cModuleViewId = _cStream.ReadNetworkViewId();
                cPlayerBackPack.PickupModule(_cNetworkPlayer.PlayerId, cModuleViewId);

                break;

            case ENetworkAction.DropModule:
                cPlayerBackPack.DropModule();
                break;

            case ENetworkAction.InsertCell:
                CNetworkViewId cCellSlotViewId = _cStream.ReadNetworkViewId();
                cPlayerBackPack.InsertCell(_cNetworkPlayer.PlayerId, cCellSlotViewId);
                break;
            }
        }
    }
Exemple #10
0
    public static CNetworkView FindUsingViewId(CNetworkViewId _cViewId)
    {
		CNetworkView cNetworkView = null;

		if (_cViewId != null)
		{
			if (!s_cNetworkViews.ContainsKey(_cViewId.Id))
			{
				Logger.WriteError("Cannot find network view with id ({0})", _cViewId.Id);
			}
			else
			{
				cNetworkView = s_cNetworkViews[_cViewId.Id];
			}

			if (_cViewId != null &&
			    _cViewId.IsChildViewId)
			{
				/*
				foreach (KeyValuePair<byte, CNetworkView> Entry in cNetworkView.m_SubNetworkViews)
				{
					Debug.LogError(string.Format("MyViewId({0}) ChildId({1}) ChildViewId({2}) ChildSubViewId({3}) ",
					                             cNetworkView.ViewId.Id, Entry.Key, Entry.Value.ViewId.Id, Entry.Value.ViewId.SubId));
				}
				*/

				cNetworkView = cNetworkView.FindChildNetworkView(_cViewId.ChildId);

				Logger.WriteErrorOn(cNetworkView == null, "Could not find child network view. ViewId({0}) SubViewId({1})", _cViewId.Id, _cViewId.ChildId);
			}
		}

        return (cNetworkView);
    }
Exemple #11
0
    void CreateLocalObject(ushort _usPrefabId, CNetworkViewId _cNetworkViewId)
    {
        //((APrefabInfo)typeof(EPrefab).GetField(_ePrefab.ToString()).GetCustomAttributes(typeof(APrefabInfo), true)[0]).GetResourceName()
        // Extract prefab resource name
        string sPrefabName = m_mPrefabs[_usPrefabId];

        // Create the game object
        GameObject cNewgameObject = Resources.Load(ksPrefabDir + sPrefabName, typeof(GameObject)) as GameObject;

        if (cNewgameObject == null)
        {
            Debug.LogError(string.Format("Prefab could not be found. PrefabId({0}) PrefabName({1})", _usPrefabId, sPrefabName));
        }

        cNewgameObject = GameObject.Instantiate(cNewgameObject) as GameObject;

        // Extract network view component from created object
        CNetworkView cNetworkView = cNewgameObject.GetComponent <CNetworkView>();

        // Ensure the created object has a network view component
        Logger.WriteErrorOn(cNetworkView == null, "The created prefab ({0}), name ({1}) does not have a network view!!!", _cNetworkViewId, cNewgameObject.name);

        cNetworkView.ViewId = _cNetworkViewId;
        m_mCreatedObjects.Add(_cNetworkViewId, new TObjectInfo(_usPrefabId, cNewgameObject));

        // Notice
        Logger.Write("Created new game object with prefab ({0}), name ({1}) and network view id ({2})", _usPrefabId, cNewgameObject.name, _cNetworkViewId);
    }
Exemple #12
0
    public void BeginRepair(GameObject _damagedComponent)
    {
        m_iTotalTargets = 0;

        m_TargetComponent = _damagedComponent.GetComponent <CComponentInterface>();

        List <Transform> repairPositions = m_TargetComponent.GetComponent <CCalibratorComponent>().ComponentRepairPosition;

        foreach (Transform child in repairPositions)
        {
            m_TargetList.Add(child);
            m_iTotalTargets++;
        }

        m_eRepairState = ERepairState.RepairActive;

        m_fTargetSwitchTimer = 0.0f;

        m_IKController = gameObject.GetComponent <CToolInterface>().OwnerPlayerActor.GetComponent <CPlayerIKController>();
        m_IKController.RightHandIKTarget = m_TargetList[m_iTargetIndex];

        CNetworkViewId senderID = gameObject.GetComponent <CNetworkView>().ViewId;
        CNetworkViewId targetID = _damagedComponent.GetComponent <CNetworkView>().ViewId;

        s_cSerializeStream.Write((byte)ENetworkAction.SetRepairState);
        s_cSerializeStream.Write(senderID);
        s_cSerializeStream.Write(targetID);
        s_cSerializeStream.Write((byte)m_eRepairState);

        // Commented out by Nathan to avoid extraneous debug information.
        // Feel free to uncomment for debugging purposes when required.
        //Debug.Log("Beginning repairs");
    }
    void OnRecievedPlayerMicrophoneAudio(CNetworkPlayer _cPlayer, CNetworkStream _cAudioDataStream)
    {
        GameObject     playerActor  = CGamePlayers.GetPlayerActor(_cPlayer.PlayerId);
        CNetworkViewId playerViewID = playerActor.GetComponent <CNetworkView>().ViewId;

        _cAudioDataStream.SetReadOffset(0);
        byte[] streamData = _cAudioDataStream.ReadBytes(_cAudioDataStream.NumUnreadBytes);

        CNetworkStream dataStream = new CNetworkStream();

        dataStream.Write(streamData);
        dataStream.Write(playerViewID);

        Dictionary <ulong, CNetworkPlayer> players = CNetwork.Server.FindNetworkPlayers();

        foreach (ulong playerID in players.Keys)
        {
            if (m_bReturnToSender)
            {
                CNetwork.Server.TransmitMicrophoneAudio(playerID, dataStream);
            }
            else
            {
                if (_cPlayer.PlayerId != playerID)
                {
                    CNetwork.Server.TransmitMicrophoneAudio(playerID, dataStream);
                }
            }
        }
    }
 private void OnPlayerUse(RaycastHit _RayHit, CNetworkViewId _cPlayerActorViewId, bool _bDown)
 {
     // TODO: if broken do not call this section
     s_cSerializeStream.Write(gameObject.GetComponent <CNetworkView>().ViewId);
     s_cSerializeStream.Write((byte)ENetworkAction.RefillOxygen);
     // section not to be called end.
 }
Exemple #15
0
    public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        while (_cStream.HasUnreadData)
        {
            ENetworkAction eAction          = (ENetworkAction)_cStream.ReadByte();
            CNetworkViewId cModuleGunViewId = _cStream.ReadNetworkViewId();

            GameObject          cModuleGunObject    = cModuleGunViewId.GameObject;
            CToolInterface      cToolInterface      = cModuleGunObject.GetComponent <CToolInterface>();
            CModuleGunBehaviour cModuleGunBehaviour = cModuleGunObject.GetComponent <CModuleGunBehaviour>();

            switch (eAction)
            {
            case ENetworkAction.OpenDui:
                cModuleGunBehaviour.OpenDui(cToolInterface.OwnerPlayerActor.GetComponent <CPlayerInteractor>().TargetActorObject);
                break;

            case ENetworkAction.CloseDui:
                cModuleGunBehaviour.CloseDui();
                break;

            default:
                Debug.LogError("Unknown network action");
                break;
            }
        }
    }
Exemple #16
0
    public void BeginRepair(GameObject _damagedComponent)
    {
        m_iTotalTargets = 0;

        m_TargetComponent = _damagedComponent.GetComponent <CComponentInterface>();

        List <Transform> repairPositions = m_TargetComponent.GetComponent <CCircuitryComponent>().ComponentRepairPosition;

        foreach (Transform child in repairPositions)
        {
            m_TargetList.Add(child);
            m_iTotalTargets++;
        }

        m_eRepairState = ERepairState.RepairActive;

        m_fTargetSwitchTimer = 0.0f;

        m_IKController = gameObject.GetComponent <CToolInterface>().OwnerPlayerActor.GetComponent <CPlayerIKController>();
        m_IKController.RightHandIKTarget = m_TargetList[m_iTargetIndex];

        CNetworkViewId senderID = gameObject.GetComponent <CNetworkView>().ViewId;
        CNetworkViewId targetID = _damagedComponent.GetComponent <CNetworkView>().ViewId;

        s_cSerializeStream.Write((byte)ENetworkAction.SetRepairState);
        s_cSerializeStream.Write(senderID);
        s_cSerializeStream.Write(targetID);
        s_cSerializeStream.Write((byte)m_eRepairState);

        Debug.Log("Beginning repairs");
    }
Exemple #17
0
    void SetShipNetworkViewId(CNetworkViewId _cShipViewId)
    {
        m_cShipViewId = _cShipViewId;

        // Notice
        Logger.Write("The ship's network view id is ({0})", m_cShipViewId);
    }
Exemple #18
0
 public void PickupModule(ulong _ulPlayerId, CNetworkViewId _cModuleViewId)
 {
     if (!IsCarryingModule)
     {
         m_cCarryingModuleViewId.Set(_cModuleViewId);
         CNetwork.Factory.FindObject(_cModuleViewId).GetComponent <CPartInterface>().Pickup(_ulPlayerId);
     }
 }
Exemple #19
0
    public void DestoryObject(CNetworkViewId _cObjectNetworkViewId)
    {
        // Ensure only servers call this function
        Logger.WriteErrorOn(!CNetwork.IsServer, "On the server can destroy objects");

        // Tell player to instantiate already created object
        InvokeRpcAll("DestroyLocalObject", _cObjectNetworkViewId);
    }
Exemple #20
0
 public void PickupModule(ulong _ulPlayerId, CNetworkViewId _cModuleViewId)
 {
     if (!IsCarryingModule)
     {
         m_cCarryingModuleViewId.Set(_cModuleViewId);
         CNetwork.Factory.FindObject(_cModuleViewId).GetComponent<CPartInterface>().Pickup(_ulPlayerId);
     }
 }
Exemple #21
0
    public static ulong GetPlayerActorsPlayerId(CNetworkViewId _PlayerActorViewId)
    {
        if (!s_cInstance.m_mPlayerActorsPlayers.ContainsKey(_PlayerActorViewId))
        {
            return(ulong.MinValue);
        }

        return(s_cInstance.m_mPlayerActorsPlayers[_PlayerActorViewId]);
    }
Exemple #22
0
    public void OnInteractionHover(GameObject _cPlayerActor, RaycastHit _cRaycastHit, bool _bHover)
    {
        CNetworkViewId cNetworkViewId = _cPlayerActor.GetComponent <CNetworkView>().ViewId;

        if (EventHover != null)
        {
            EventHover(_cRaycastHit, cNetworkViewId, _bHover);
        }
    }
Exemple #23
0
    public CNetworkViewId Insert(CNetworkViewId _CellNetworkID)
    {
        CNetworkViewId cCurrentCell = null;

        if (CNetwork.IsServer)
        {
            cCurrentCell = m_cCurrentCell.Get();
            m_cCurrentCell.Set(_CellNetworkID);
        }
        return(cCurrentCell);
    }
Exemple #24
0
 void OnEventInteractionUse(RaycastHit _tRayHit, CNetworkViewId _cPlayerActorViewId, bool _bDown)
 {
     // Check there is no one in the cockpit locally
     if (_bDown &&
         !IsMounted)
     {
         // Write in enter cockpit action
         s_cSerializeStream.Write(gameObject.GetComponent <CNetworkView>().ViewId);
         s_cSerializeStream.Write((byte)ENetworkAction.EnterCockpit);
     }
 }
Exemple #25
0
    void DestroyLocalObject(CNetworkViewId _cObjectNetworkViewId)
    {
        TObjectInfo tObject = m_mCreatedObjects[_cObjectNetworkViewId];


        tObject.cGameObject.GetComponent <CNetworkView>().OnPreDestory();
        GameObject.Destroy(tObject.cGameObject);


        m_mCreatedObjects.Remove(_cObjectNetworkViewId);
    }
Exemple #26
0
    public GameObject CreateObject(object _cPrefabId)
    {
        // Ensure only servers call this function
        Logger.WriteErrorOn(!CNetwork.IsServer, "Only the server can create objects");

        // Generate dynamic network view id for object
        CNetworkViewId cObjectViewId = CNetworkView.GenerateDynamicViewId();

        // Invoke create local object call on all connected players
        InvokeRpcAll("CreateLocalObject", (ushort)_cPrefabId, cObjectViewId);

        return(CNetworkView.FindUsingViewId(cObjectViewId).gameObject);
    }
Exemple #27
0
 public void Write(CNetworkViewId _cNetworkViewId)
 {
     if (_cNetworkViewId == null)
     {
         this.Write(ushort.MaxValue);
         this.Write(byte.MaxValue);
     }
     else
     {
         this.Write(_cNetworkViewId.Id);
         this.Write(_cNetworkViewId.ChildId);
     }
 }
Exemple #28
0
    public GameObject FindObject(CNetworkViewId _cNetworkViewId)
    {
        CNetworkView cObjectNetworkView = CNetworkView.FindUsingViewId(_cNetworkViewId);
        GameObject   cGameObject        = null;

        if (cObjectNetworkView != null)
        {
            cGameObject = cObjectNetworkView.gameObject;
        }
        else
        {
            Logger.WriteErrorOn(cGameObject == null, "Could not find network object with ViewId({0}) SubViewId({1})", _cNetworkViewId.Id, _cNetworkViewId.ChildId);
        }

        return(cGameObject);
    }
Exemple #29
0
    public void InsertCell(ulong _ulPlayerId, CNetworkViewId _cCellSlotViewId)
    {
        if (IsCarryingModule)
        {
            CNetworkViewId CellToInsert = m_cCarryingModuleViewId.Get();

            DropModule();

            CNetworkViewId replacementCell = CNetwork.Factory.FindObject(_cCellSlotViewId).GetComponent <CCellSlot>().Insert(CellToInsert);

            if (replacementCell != null)
            {
                PickupModule(_ulPlayerId, replacementCell);
            }
        }
    }
Exemple #30
0
    void OnPlayerDisconnect(CNetworkPlayer _cPlayer)
    {
        CNetworkViewId cPlayerActorNetworkViewId = GetPlayerActorViewId(_cPlayer.PlayerId);

        if (cPlayerActorNetworkViewId != null)
        {
            CNetwork.Factory.DestoryObject(cPlayerActorNetworkViewId);

            // Sync unregister player actor view id with everyone
            InvokeRpcAll("UnregisterPlayerActor", _cPlayer.PlayerId);

            //Remove player from dictionary of player names
            InvokeRpcAll("UnregisterPlayerName", _cPlayer.PlayerId);

            Logger.Write("Removed Player Actor for Player Id ({0})", _cPlayer.PlayerId);
        }
    }
    void DecodingUpdate()
    {
        if (s_decodedFrames.Count > 0)
        {
            //Take data from the queue to add to the audioclip.
            DecodeInformation decodedFrame    = s_decodedFrames.Dequeue();
            short[]           saDecodedFrames = decodedFrame.saDecodedData;
            int            numSamples         = decodedFrame.iNumSamples;
            int            frequency          = decodedFrame.iFrequency;
            CNetworkViewId senderViewID       = decodedFrame.cSenderViewID;

            float[] faDecodedAudioData = new float[numSamples];

            for (int i = 0; i < faDecodedAudioData.Length; ++i)
            {
                faDecodedAudioData[i] = (float)((float)saDecodedFrames[i] / 32767.0f);
            }

            // Play audio at location of sender
            GameObject  senderNetworkView = CNetworkView.FindUsingViewId(senderViewID).gameObject;
            AudioSource senderAudioSource = senderNetworkView.gameObject.GetComponent <AudioSource>();

            AudioClip newClip = AudioClip.Create("Test", faDecodedAudioData.Length, 1, frequency, true, false);
            newClip.SetData(faDecodedAudioData, 0);

            senderAudioSource.clip   = newClip;
            senderAudioSource.volume = 1.0f;

            //AudioSystem.GetInstance.Play(newClip, senderNetworkView.gameObject.transform.position, 1.0f, 1.0f, false, 0.0f, AudioSystem.SoundType.SOUND_EFFECTS, true);
            CAudioSystem.Play(senderAudioSource, 1.0f, 1.0f, false, 0.0f, CAudioSystem.SoundType.SOUND_EFFECTS, true);
        }

        if (s_framesToDecode.Count > 0)
        {
            for (int i = 0; i < m_kiNumDecodeThreads; i++)
            {
                if (m_DecodeThreads[i].IsAlive == false)
                {
                    m_DecodeThreads[i] = new Thread(new ParameterizedThreadStart(DecodeAudio));
                    m_DecodeThreads[i].Start((object)s_framesToDecode.Dequeue());
                    break;
                }
            }
        }
    }
Exemple #32
0
	void OnToolChange(CNetworkViewId _cViewId)
	{
		if(_cViewId.GameObject != null)
		{
			m_HeldTool = _cViewId.GameObject.GetComponent<CToolInterface>();
            gameObject.GetComponent<CThirdPersonAnimController>().RaiseArm();
            // Commented out by Nathan to avoid extraneous debug information.
            // Feel free to uncomment for debugging purposes when required.
            //Debug.Log("Tool changed to" + m_HeldTool.gameObject.name);
		}
		else
		{
            m_HeldTool = null;
            gameObject.GetComponent<CThirdPersonAnimController>().LowerArm();
            // Commented out by Nathan to avoid extraneous debug information.
            // Feel free to uncomment for debugging purposes when required.
            //Debug.Log("Tool changed to" + m_HeldTool.gameObject.name);
		}
	}
Exemple #33
0
		public bool mAwaitingCull = false;  // Objects get culled over time.

		public CRegisteredGubbin(GameObject entity, float boundingRadius, CNetworkViewId networkViewID, bool alternatorValue) { mEntity = entity; mBoundingRadius = boundingRadius; mNetworkViewID = networkViewID; mAlternator = alternatorValue; }
Exemple #34
0
	public void SetSelectedPort(CNetworkViewId _PortViewId)
	{
		m_CurrentPortSelected.Set(_PortViewId);
	}
Exemple #35
0
	private void HandlePlayerHover(RaycastHit _RayHit, CNetworkViewId _cPlayerActorViewId, bool _bHover)
	{
        m_bHoveringOn = _bHover;
        m_cHoveringPlayerViewId = _cPlayerActorViewId;
	}
Exemple #36
0
	void RegisterPlayerActor(ulong _ulPlayerId, CNetworkViewId _cPlayerActorId)
	{
		m_mPlayersActors.Add(_ulPlayerId, _cPlayerActorId);
		m_mPlayerActorsPlayers.Add(_cPlayerActorId, _ulPlayerId);
	}
Exemple #37
0
    public void DestoryObject(CNetworkViewId _cObjectNetworkViewId)
    {
		// Ensure only servers call this function
		Logger.WriteErrorOn(!CNetwork.IsServer, "On the server can destroy objects");

        // Tell player to instantiate already created object
		InvokeRpcAll("DestroyLocalObject", _cObjectNetworkViewId);
	}
Exemple #38
0
    void CreateLocalObject(ushort _usPrefabId, CNetworkViewId _cNetworkViewId)
    {
		//((APrefabInfo)typeof(EPrefab).GetField(_ePrefab.ToString()).GetCustomAttributes(typeof(APrefabInfo), true)[0]).GetResourceName()
        // Extract prefab resource name
        string sPrefabName = m_mPrefabs[_usPrefabId];

        // Create the game object
        GameObject cNewgameObject = Resources.Load(ksPrefabDir + sPrefabName, typeof(GameObject)) as GameObject;

        if (cNewgameObject == null)
        {
            Debug.LogError(string.Format("Prefab could not be found. PrefabId({0}) PrefabName({1})", _usPrefabId, sPrefabName));
        }

        cNewgameObject = GameObject.Instantiate(cNewgameObject) as GameObject;

		// Extract network view component from created object
        CNetworkView cNetworkView = cNewgameObject.GetComponent<CNetworkView>();

		// Ensure the created object has a network view component
		Logger.WriteErrorOn(cNetworkView == null, "The created prefab ({0}), name ({1}) does not have a network view!!!", _cNetworkViewId, cNewgameObject.name);

		cNetworkView.ViewId = _cNetworkViewId;
		m_mCreatedObjects.Add(_cNetworkViewId, new TObjectInfo(_usPrefabId, cNewgameObject));

		// Notice
        Logger.Write("Created new game object with prefab ({0}), name ({1}) and network view id ({2})", _usPrefabId, cNewgameObject.name, _cNetworkViewId);
    }
Exemple #39
0
	public GameObject FindObject(CNetworkViewId _cNetworkViewId)
	{
		CNetworkView cObjectNetworkView = CNetworkView.FindUsingViewId(_cNetworkViewId);
		GameObject cGameObject = null;

		if (cObjectNetworkView != null)
		{
			cGameObject = cObjectNetworkView.gameObject;
		}
		else
		{
			Logger.WriteErrorOn(cGameObject == null, "Could not find network object with ViewId({0}) SubViewId({1})", _cNetworkViewId.Id, _cNetworkViewId.ChildId);
		}

		return (cGameObject);
	}
Exemple #40
0
    void OnEventInteractionUse(RaycastHit _tRayHit, CNetworkViewId _cPlayerActorViewId, bool _bDown)	
	{
		// Check there is no one in the cockpit locally
		if (_bDown &&
            !IsMounted)
		{
			// Write in enter cockpit action
			s_cSerializeStream.Write(gameObject.GetComponent<CNetworkView>().ViewId);
			s_cSerializeStream.Write((byte)ENetworkAction.EnterCockpit);
		}
	}
Exemple #41
0
	public CNetworkViewId Insert (CNetworkViewId _CellNetworkID)
	{
		CNetworkViewId cCurrentCell = null;
		if(CNetwork.IsServer)
		{
			cCurrentCell = m_cCurrentCell.Get();
			m_cCurrentCell.Set(_CellNetworkID);
		}
		return(cCurrentCell);
	}
Exemple #42
0
 void OnToolDrop(CNetworkViewId _cViewId)
 {
     m_HeldTool = null;
     gameObject.GetComponent<CThirdPersonAnimController>().LowerArm();  
 }
Exemple #43
0
	void SetShipNetworkViewId(CNetworkViewId _cShipViewId)
	{
		m_cShipViewId = _cShipViewId;
		
		// Notice
		Logger.Write("The ship's network view id is ({0})", m_cShipViewId);
	}
Exemple #44
0
	public static ulong GetPlayerActorsPlayerId(CNetworkViewId _PlayerActorViewId)
	{
		if (!s_cInstance.m_mPlayerActorsPlayers.ContainsKey(_PlayerActorViewId))
		{
			return(ulong.MinValue);
		}
		
		return (s_cInstance.m_mPlayerActorsPlayers[_PlayerActorViewId]);
	}
 private void OnPlayerUse(RaycastHit _RayHit, CNetworkViewId _cPlayerActorViewId, bool _bDown)
 {
     // TODO: if broken do not call this section
     s_cSerializeStream.Write(gameObject.GetComponent<CNetworkView>().ViewId);
     s_cSerializeStream.Write((byte)ENetworkAction.RefillOxygen);
     // section not to be called end.
 }
Exemple #46
0
    void DestroyLocalObject(CNetworkViewId _cObjectNetworkViewId)
    {
        TObjectInfo tObject = m_mCreatedObjects[_cObjectNetworkViewId];


		tObject.cGameObject.GetComponent<CNetworkView>().OnPreDestory();
        GameObject.Destroy(tObject.cGameObject);


        m_mCreatedObjects.Remove(_cObjectNetworkViewId);
    }
Exemple #47
0
	void OnHover(RaycastHit _RayHit, CNetworkViewId _cPlayerActorViewId, bool _bHover)
	{
        bShowName = _bHover;
	}
Exemple #48
0
    public void InsertCell(ulong _ulPlayerId, CNetworkViewId _cCellSlotViewId)
    {
        if (IsCarryingModule)
        {
            CNetworkViewId CellToInsert = m_cCarryingModuleViewId.Get();

            DropModule();

            CNetworkViewId replacementCell = CNetwork.Factory.FindObject(_cCellSlotViewId).GetComponent<CCellSlot>().Insert(CellToInsert);

            if (replacementCell != null)
            {
                PickupModule(_ulPlayerId, replacementCell);
            }
        }
    }