示例#1
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;
            }
        }
    }
示例#2
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;
            }
        }
    }
示例#3
0
文件: CCockpit.cs 项目: dacuster/VOID
    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;
            }
        }
    }
示例#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;
            }
        }
    }
示例#5
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;
            }
        }
    }
示例#6
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;
                }
            }
        }
    }
示例#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);
    }
示例#9
0
    public static void Unserialize(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        while (_cStream.HasUnreadData)
        {
            // Extract action
            ENetworkAction eAction = (ENetworkAction)_cStream.ReadByte();

            switch (eAction)
            {
            case ENetworkAction.SetRepairState:
            {
                //Figure out which kits sent it's new state
                CCircuitryKitBehaviour CircuitryKit = _cStream.ReadNetworkViewId().GameObject.GetComponent <CCircuitryKitBehaviour>();

                CircuitryKit.m_TargetComponent = _cStream.ReadNetworkViewId().GameObject.GetComponent <CComponentInterface>();
                CircuitryKit.m_eRepairState    = (ERepairState)_cStream.ReadByte();

                break;
            }
            }
        }
    }
示例#10
0
    public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        if (CGamePlayers.SelfActor == null)
        {
            return;
        }

        CPlayerInteractor cPlayerInteractor = CGamePlayers.SelfActor.GetComponent <CPlayerInteractor>();

        while (_cStream.HasUnreadData)
        {
            ENetworkAction eAction          = (ENetworkAction)_cStream.ReadByte();
            CNetworkViewId cNewTargetViewId = _cStream.ReadNetworkViewId();

            switch (eAction)
            {
            case ENetworkAction.UpdateTarget:
                if (cNewTargetViewId != null)
                {
                    cPlayerInteractor.m_cTargetActorObject = cNewTargetViewId.GameObject;
                    if (cPlayerInteractor.EventServerTargetChange != null)
                    {
                        cPlayerInteractor.EventServerTargetChange(cPlayerInteractor.m_cTargetActorObject);
                    }

                    // Debug.LogError("Found new target: " + cPlayerInteractor.m_cTargetActorObject);
                }
                else
                {
                    cPlayerInteractor.m_cTargetActorObject = null;
                    if (cPlayerInteractor.EventServerTargetChange != null)
                    {
                        cPlayerInteractor.EventServerTargetChange(null);
                    }

                    //Debug.LogError("Found new target: " + null);
                }
                break;

            default:
                Debug.LogError("Unknown network action");
                break;
            }
        }
    }
示例#11
0
    public static void UnserializeBeltState(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        while (_cStream.HasUnreadData)
        {
            ENetworkAction eAction     = (ENetworkAction)_cStream.ReadByte();
            CPlayerBelt    cPlayerBelt = CGamePlayers.GetPlayerActor(_cNetworkPlayer.PlayerId).GetComponent <CPlayerBelt>();

            switch (eAction)
            {
            case ENetworkAction.PickupTool:
            {
                CNetworkViewId cToolViewId = _cStream.ReadNetworkViewId();
                cPlayerBelt.PickupTool(cToolViewId.GameObject);
            }
            break;
            }
        }
    }
示例#12
0
    public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        while (_cStream.HasUnreadData)
        {
            CNetworkViewId oxygenRefillViewId = _cStream.ReadNetworkViewId();
            ENetworkAction eAction = (ENetworkAction)_cStream.ReadByte();

            GameObject cOxygenRefillerObject = oxygenRefillViewId.GameObject;

            COxygenRefillerBehaviour blah = cOxygenRefillerObject.GetComponent<COxygenRefillerBehaviour>();

            switch (eAction)
            {
                case ENetworkAction.RefillOxygen:
                    blah.HandlePlayerOxygenRefill(_cNetworkPlayer.PlayerId);
                    break;
            }
        }
    }
示例#13
0
    public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        while (_cStream.HasUnreadData)
        {
            CNetworkViewId oxygenRefillViewId = _cStream.ReadNetworkViewId();
            ENetworkAction eAction            = (ENetworkAction)_cStream.ReadByte();

            GameObject cOxygenRefillerObject = oxygenRefillViewId.GameObject;

            COxygenRefillerBehaviour blah = cOxygenRefillerObject.GetComponent <COxygenRefillerBehaviour>();

            switch (eAction)
            {
            case ENetworkAction.RefillOxygen:
                blah.HandlePlayerOxygenRefill(_cNetworkPlayer.PlayerId);
                break;
            }
        }
    }
示例#14
0
    public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        ENetworkAction eAction = (ENetworkAction)_cStream.ReadByte();
        CNetworkViewId cMedicalSpayViewId = _cStream.ReadNetworkViewId();

        switch (eAction)
        {
            case ENetworkAction.SprayStart:
                cMedicalSpayViewId.GameObject.GetComponent<CMedicalSpray>().m_bActive.Set(true);
                break;

            case ENetworkAction.SprayEnd:
                cMedicalSpayViewId.GameObject.GetComponent<CMedicalSpray>().m_bActive.Set(false);
                break;

            default:
                Debug.LogError("Unknown network action");
                break;
        }
    }
示例#15
0
    public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        ENetworkAction eAction = (ENetworkAction)_cStream.ReadByte();
        CNetworkViewId cFireExtinguisherViewId = _cStream.ReadNetworkViewId();

        switch (eAction)
        {
        case ENetworkAction.ExtinguishFireStart:
            cFireExtinguisherViewId.GameObject.GetComponent <CFireExtinguisherSpray>().m_bActive.Set(true);
            break;

        case ENetworkAction.ExtinguishFireEnd:
            cFireExtinguisherViewId.GameObject.GetComponent <CFireExtinguisherSpray>().m_bActive.Set(false);
            break;

        default:
            Debug.LogError("Unknown network action");
            break;
        }
    }
示例#16
0
    static public void UnserializeSliderEvents(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        while (_cStream.HasUnreadData)
        {
            // Get the DUISlider and its network view
            CDUISlider duiSlider = CNetwork.Factory.FindObject(_cStream.ReadNetworkViewId()).GetComponent <CDUISlider>();

            // Get the interaction notification
            ESliderNotificationType notification = (ESliderNotificationType)_cStream.ReadByte();

            // Based on the notification type, update the clients of the event
            switch (notification)
            {
            case ESliderNotificationType.OnValueChange:
                float value = _cStream.ReadFloat();
                duiSlider.SetSliderValue(value);
                break;

            default: break;
            }
        }
    }
示例#17
0
文件: CDUISlider.cs 项目: nulhax/VOID
	static public void UnserializeSliderEvents(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
	{
		while(_cStream.HasUnreadData)
		{
			// Get the DUISlider and its network view
			CDUISlider duiSlider = CNetwork.Factory.FindObject(_cStream.ReadNetworkViewId()).GetComponent<CDUISlider>();
			
			// Get the interaction notification
			ESliderNotificationType notification = (ESliderNotificationType)_cStream.ReadByte();
			
			// Based on the notification type, update the clients of the event
			switch(notification) 
			{
			case ESliderNotificationType.OnValueChange:
				float value = _cStream.ReadFloat();
				duiSlider.SetSliderValue(value);
				break;
				
			default:break;
			}
		}
	}
示例#18
0
    public static void Unserialize(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
		while (_cStream.HasUnreadData)
        {
            // Extract action
            ENetworkAction eAction = (ENetworkAction)_cStream.ReadByte();
           
            switch (eAction)
            {
				case ENetworkAction.SetRepairState:
				{
					//Figure out which ratchet sent it's new state
					CRatchetBehaviour ratchet = _cStream.ReadNetworkViewId().GameObject.GetComponent<CRatchetBehaviour>();
					
					ratchet.m_TargetComponent = _cStream.ReadNetworkViewId().GameObject.GetComponent<CComponentInterface>();
					ratchet.m_eRepairState = (ERepairState)_cStream.ReadByte();
					
					break;
				}
			}
		}
	}
示例#19
0
    public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        while (_cStream.HasUnreadData)
        {
            ENetworkAction eAction     = (ENetworkAction)_cStream.ReadByte();
            CNetworkViewId cAk47ViewId = _cStream.ReadNetworkViewId();

            switch (eAction)
            {
            case ENetworkAction.ShootStart:
                cAk47ViewId.GameObject.GetComponent <CAk47Behaviour>().m_bShoot = true;
                break;

            case ENetworkAction.ShootEnd:
                cAk47ViewId.GameObject.GetComponent <CAk47Behaviour>().m_bShoot = false;
                break;

            default:
                Debug.LogError("Unknown network action");
                break;
            }
        }
    }
示例#20
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)
            {
                CMiningTurretBehaviour cMiningTurretBehaviour = cTurretObject.GetComponent <CMiningTurretBehaviour>();
                ENetworkAction         eAction = (ENetworkAction)_cStream.ReadByte();

                switch (eAction)
                {
                case ENetworkAction.StartFractureLaser:
                    cMiningTurretBehaviour.m_bFractureLaserButtonDown = true;
                    break;

                case ENetworkAction.StopFractureLaser:
                    cMiningTurretBehaviour.m_bFractureLaserButtonDown = false;
                    break;

                case ENetworkAction.StartExtractorBeam:
                    cMiningTurretBehaviour.m_bExtracterBeamButtonDown = true;
                    break;

                case ENetworkAction.StopExtractorBeam:
                    cMiningTurretBehaviour.m_bExtracterBeamButtonDown = false;
                    break;

                default:
                    Debug.LogError(string.Format("Unknown network action ({0})", eAction));
                    break;
                }
            }
        }
    }
示例#21
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)
			{
				CMiningTurretBehaviour cMiningTurretBehaviour = cTurretObject.GetComponent<CMiningTurretBehaviour>();		
				ENetworkAction eAction = (ENetworkAction)_cStream.ReadByte();

				switch (eAction)
				{
				case ENetworkAction.StartFractureLaser:
                    cMiningTurretBehaviour.m_bFractureLaserButtonDown = true;
					break;

				case ENetworkAction.StopFractureLaser:
                    cMiningTurretBehaviour.m_bFractureLaserButtonDown = false;
					break;

				case ENetworkAction.StartExtractorBeam:
                    cMiningTurretBehaviour.m_bExtracterBeamButtonDown = true;
					break;

				case ENetworkAction.StopExtractorBeam:
                    cMiningTurretBehaviour.m_bExtracterBeamButtonDown = false;
					break;

				default:
					Debug.LogError(string.Format("Unknown network action ({0})", eAction));
					break;
				}
			}
		}
	}
示例#22
0
    public static void UnserializeBeltState(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        while (_cStream.HasUnreadData)
        {
            ENetworkAction eAction = (ENetworkAction)_cStream.ReadByte();
            CPlayerBelt cPlayerBelt = CGamePlayers.GetPlayerActor(_cNetworkPlayer.PlayerId).GetComponent<CPlayerBelt>();

            switch (eAction)
            {
                case ENetworkAction.PickupTool:
                    {
                        CNetworkViewId cToolViewId = _cStream.ReadNetworkViewId();
                        cPlayerBelt.PickupTool(cToolViewId.GameObject);
                    }
                    break;
            }
        }
    }
示例#23
0
    public static void ProcessInboundStream(ulong _uiLatency, CNetworkStream _cStream)
    {
		List<INetworkVar> cSyncedNetworkVars = new List<INetworkVar>();
		float fSyncedTick = 0.0f;

		if (CNetwork.IsServer)
		{
			fSyncedTick  = ((float)RakNet.RakNet.GetTimeMS()) / 1000.0f;
			fSyncedTick -= Mathf.Floor(fSyncedTick);
			fSyncedTick *= CNetworkServer.k_fSendRate;
		}
		else
		{
			fSyncedTick = CNetwork.Connection.Tick - ((float)_uiLatency / 1000.0f);

			if (fSyncedTick < 0.0f)
			{
				fSyncedTick = CNetworkServer.k_fSendRate - fSyncedTick;
				//Debug.Log(fSyncedTick);
			}
		}

        while (_cStream.HasUnreadData)
        {
            // Extract owner network view id
            CNetworkViewId cNetworkViewId = _cStream.ReadNetworkViewId();

            // Extract procedure type
            EProdecure eProcedure = (EProdecure)_cStream.ReadByte();

            // Retrieve network view instance
            CNetworkView cNetworkView = CNetworkView.FindUsingViewId(cNetworkViewId);
			
            // Process network var sync procedure
            if (eProcedure == EProdecure.SyncNetworkVar)
            {
                // Extract network var identifier
                byte bNetworkVarIdentifier = _cStream.ReadByte();

                // Retrieve network var instance
                INetworkVar cNetworkVar = cNetworkView.m_mNetworkVars[bNetworkVarIdentifier];

                // Retrieve network var type
                Type cVarType = cNetworkVar.GetValueType();

                // Extract value serialized
                object cNewVarValue = _cStream.ReadType(cVarType);

                // Sync with new value
				cNetworkVar.SyncValue(cNewVarValue, fSyncedTick);

				// Add to callback list
				cSyncedNetworkVars.Add(cNetworkVar);
            }

            // Process network rpc procedure
            else if (eProcedure == EProdecure.InvokeNetworkRpc)
            {
                // Extract rpc method identifier
                byte bMethodIdentifier = _cStream.ReadByte();

                // Retrieve method owner instance
                Component cParentComponent = cNetworkView.m_mNetworkRpcs[bMethodIdentifier].cUnityComponent;

                // Retrieve method info
                MethodInfo cMethodInfo = cNetworkView.m_mNetworkRpcs[bMethodIdentifier].cMethodInfo;

                // Extract method parameters
                object[] caParameterValues = _cStream.ReadMethodParameters(cMethodInfo);

                // Invoke the rpc method
                cMethodInfo.Invoke(cParentComponent, caParameterValues);
            }
        }

		// Invoke callbacks for synced network vars
		foreach (INetworkVar cSyncedNetworkVar in cSyncedNetworkVars)
		{
			cSyncedNetworkVar.InvokeSyncCallback();
		}
    }
示例#24
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;
            }
        }
    }
示例#25
0
    static public void UnserializeElementEvents(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        while (_cStream.HasUnreadData)
        {
            // Get the DUIElement and its network view
            CDUIElement duiElement = CNetwork.Factory.FindObject(_cStream.ReadNetworkViewId()).GetComponent <CDUIElement>();

            // Get the interaction notification
            EElementNotificationType notification = (EElementNotificationType)_cStream.ReadByte();

            // Based on the notification type, update the clients of the event
            switch (notification)
            {
            case EElementNotificationType.OnClick:
                int click = _cStream.ReadInt();
                NotifyOnEvent(_cNetworkPlayer, duiElement, notification, new object[] { click });
                break;

            case EElementNotificationType.OnDoubleClick:
                int dClick = _cStream.ReadInt();
                NotifyOnEvent(_cNetworkPlayer, duiElement, notification, new object[] { dClick });
                break;

            case EElementNotificationType.OnPress:
                bool isPressed = _cStream.ReadByte() == 1 ? true : false;
                NotifyOnEvent(_cNetworkPlayer, duiElement, notification, new object[] { isPressed });
                break;

            case EElementNotificationType.OnSelect:
                bool isSelected = _cStream.ReadByte() == 1 ? true : false;
                NotifyOnEvent(_cNetworkPlayer, duiElement, notification, new object[] { isSelected });
                break;

            case EElementNotificationType.OnHover:
                bool isHovered = _cStream.ReadByte() == 1 ? true : false;
                NotifyOnEvent(_cNetworkPlayer, duiElement, notification, new object[] { isHovered });
                break;

            case EElementNotificationType.OnDrag:
                float deltaX = _cStream.ReadFloat();
                float deltaY = _cStream.ReadFloat();
                NotifyOnEvent(_cNetworkPlayer, duiElement, notification, new object[] { deltaX, deltaY });
                break;

            case EElementNotificationType.OnDragStart:
                NotifyOnEvent(_cNetworkPlayer, duiElement, notification, null);
                break;

            case EElementNotificationType.OnDragEnd:
                NotifyOnEvent(_cNetworkPlayer, duiElement, notification, null);
                break;

            case EElementNotificationType.OnScroll:
                float delta = _cStream.ReadFloat();
                NotifyOnEvent(_cNetworkPlayer, duiElement, notification, new object[] { delta });
                break;

            default:
                break;
            }
        }
    }
示例#26
0
文件: CCockpit.cs 项目: nulhax/VOID
	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;
			}
		}
	}
示例#27
0
    public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream)
    {
        if (CGamePlayers.SelfActor == null)
        {
            return;
        }

        CPlayerInteractor cPlayerInteractor = CGamePlayers.SelfActor.GetComponent<CPlayerInteractor>();

        while (_cStream.HasUnreadData)
        {
            ENetworkAction eAction = (ENetworkAction)_cStream.ReadByte();
            CNetworkViewId cNewTargetViewId = _cStream.ReadNetworkViewId();

            switch (eAction)
            {
                case ENetworkAction.UpdateTarget:
                    if (cNewTargetViewId != null)
                    {
                        cPlayerInteractor.m_cTargetActorObject = cNewTargetViewId.GameObject;
                        if (cPlayerInteractor.EventServerTargetChange != null) cPlayerInteractor.EventServerTargetChange(cPlayerInteractor.m_cTargetActorObject);

                       // Debug.LogError("Found new target: " + cPlayerInteractor.m_cTargetActorObject);
                    }
                    else
                    {
                        cPlayerInteractor.m_cTargetActorObject = null;
                        if (cPlayerInteractor.EventServerTargetChange != null) cPlayerInteractor.EventServerTargetChange(null);

                        //Debug.LogError("Found new target: " + null);
                    }
                    break;

                default:
                    Debug.LogError("Unknown network action");
                    break;
            }
        }
    }
示例#28
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;
			}
		}
	}