void Awake () { myLife = GetComponent<AgentLife>(); myMovement = GetComponent<AgentMovement>(); agent = GetComponent<Agent>(); }
void Start() { my_agent = GetComponent <AgentMovement>(); all_agents = Object.FindObjectsOfType <AgentMovement>(); }
protected virtual void Awake() { agent = GetComponent <AgentMovement> (); }
private void Awake() { _am = GetComponent <AgentMovement>(); }
public void UpdatesDirections() { NativeArray <float3> directions = new NativeArray <float3>(1, Allocator.Persistent); NativeArray <AgentKinematics> agents = new NativeArray <AgentKinematics>(1, Allocator.Persistent); agents[0] = new AgentKinematics() { position = Vector3.up }; NativeArray <AgentBehaviors> active = new NativeArray <AgentBehaviors>(1, Allocator.Persistent); active[0] = AgentBehaviors.Seeking; NativeArray <byte> flowField = new NativeArray <byte>(1, Allocator.Persistent); NativeArray <int3> flowDirections = new NativeArray <int3>(27, Allocator.Persistent); for (int i = 0; i < 1; i++) { flowField[i] = (byte)Direction3Int.Name.Up; } for (int i = 0; i < 27; i++) { Vector3Int dir = Direction3Int.Directions[i]; flowDirections[i] = new int3(dir.x, dir.y, dir.z); } NativeArray <int> agentMovementTypes = new NativeArray <int>(1, Allocator.Persistent); NativeArray <AgentMovement> movementTypes = new NativeArray <AgentMovement>(1, Allocator.Persistent); movementTypes[0] = new AgentMovement() { mass = 1f, topSpeed = 1f, turnSpeed = 1f }; AgentWorld world = new AgentWorld() { scale = 1f, offset = float3.zero, center = new float3(0.5f, 0.5f, 0.5f), rotation = quaternion.identity, }; FlowFieldSeekJob job = new FlowFieldSeekJob() { movementTypes = movementTypes, agentMovement = agentMovementTypes, world = world, flowField = flowField, flowDirections = flowDirections, flowFieldSize = new int3(1, 1, 1), agents = agents, steering = directions, behaviors = active, }; JobHandle handle = job.Schedule(1, 1); handle.Complete(); Assert.AreEqual(new float3(0, 1, 0), directions[0]); flowDirections.Dispose(); flowField.Dispose(); directions.Dispose(); agents.Dispose(); active.Dispose(); movementTypes.Dispose(); agentMovementTypes.Dispose(); }
/// <summary> /// Constructor, setup callbacks for packets related to our avatar /// </summary> /// <param name="client">A reference to the <seealso cref="T:libsecondlife.SecondLife"/> Class</param> public AgentManager(SecondLife client) { Client = client; Movement = new AgentMovement(Client); NetworkManager.PacketCallback callback; Client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(Network_OnDisconnected); // Teleport callbacks callback = new NetworkManager.PacketCallback(TeleportHandler); Client.Network.RegisterCallback(PacketType.TeleportStart, callback); Client.Network.RegisterCallback(PacketType.TeleportProgress, callback); Client.Network.RegisterCallback(PacketType.TeleportFailed, callback); Client.Network.RegisterCallback(PacketType.TeleportFinish, callback); Client.Network.RegisterCallback(PacketType.TeleportCancel, callback); Client.Network.RegisterCallback(PacketType.TeleportLocal, callback); // Instant message callback Client.Network.RegisterCallback(PacketType.ImprovedInstantMessage, new NetworkManager.PacketCallback(InstantMessageHandler)); // Chat callback Client.Network.RegisterCallback(PacketType.ChatFromSimulator, new NetworkManager.PacketCallback(ChatHandler)); // Script dialog callback Client.Network.RegisterCallback(PacketType.ScriptDialog, new NetworkManager.PacketCallback(ScriptDialogHandler)); // Script question callback Client.Network.RegisterCallback(PacketType.ScriptQuestion, new NetworkManager.PacketCallback(ScriptQuestionHandler)); // Script URL callback Client.Network.RegisterCallback(PacketType.LoadURL, new NetworkManager.PacketCallback(LoadURLHandler)); // Movement complete callback Client.Network.RegisterCallback(PacketType.AgentMovementComplete, new NetworkManager.PacketCallback(MovementCompleteHandler)); // Health callback Client.Network.RegisterCallback(PacketType.HealthMessage, new NetworkManager.PacketCallback(HealthHandler)); // Money callback Client.Network.RegisterCallback(PacketType.MoneyBalanceReply, new NetworkManager.PacketCallback(BalanceHandler)); //Agent update callback Client.Network.RegisterCallback(PacketType.AgentDataUpdate, new NetworkManager.PacketCallback(AgentDataUpdateHandler)); // Animation callback Client.Network.RegisterCallback(PacketType.AvatarAnimation, new NetworkManager.PacketCallback(AvatarAnimationHandler)); // Object colliding into our agent callback Client.Network.RegisterCallback(PacketType.MeanCollisionAlert, new NetworkManager.PacketCallback(MeanCollisionAlertHandler)); // Region Crossing Client.Network.RegisterCallback(PacketType.CrossedRegion, new NetworkManager.PacketCallback(CrossedRegionHandler)); // CAPS callbacks Client.Network.RegisterEventCallback("EstablishAgentCommunication", new Caps.EventQueueCallback(EstablishAgentCommunicationEventHandler)); // Incoming Group Chat Client.Network.RegisterEventCallback("ChatterBoxInvitation", new Caps.EventQueueCallback(ChatterBoxInvitationHandler)); // Outgoing Group Chat Reply Client.Network.RegisterEventCallback("ChatterBoxSessionEventReply", new Caps.EventQueueCallback(ChatterBoxSessionEventHandler)); Client.Network.RegisterEventCallback("ChatterBoxSessionStartReply", new Caps.EventQueueCallback(ChatterBoxSessionStartReplyHandler)); Client.Network.RegisterEventCallback("ChatterBoxSessionAgentListUpdates", new Caps.EventQueueCallback(ChatterBoxSessionAgentListReplyHandler)); // Login Client.Network.RegisterLoginResponseCallback(new NetworkManager.LoginResponseCallback(Network_OnLoginResponse)); // Alert Messages Client.Network.RegisterCallback(PacketType.AlertMessage, new NetworkManager.PacketCallback(AlertMessageHandler)); }
public void Initialise_Agent(Agent_Type type, int cont_num = 0) { /*if (type == Agent_Type.Player && cont_num == 0) * { * throw new System.ArgumentException("Players cannot have a cont_num of 0: Initialise_Agent"); * }*/ // Initialise the AgentManager with all its default values based on type m_ControllerNumber = cont_num; m_StatCollector = new StatCollector(this); m_Type = type; //m_Powerup_State = null; switch (type) { case Agent_Type.Player: // Setup a player character m_Input = new Controller_Input(m_ControllerNumber); m_Strength = GLOBAL_VALUES.BASE_PLAYER_STRENGTH; m_MoveSpeed = GLOBAL_VALUES.BASE_PLAYER_MOVEMENT_SPEED; m_RotateSpeed = GLOBAL_VALUES.BASE_PLAYER_ROTATION_SPEED; m_Player_Nameplate = m_Instance.transform.Find("Player_Nameplate").gameObject; m_Player_Name_Text = m_Player_Nameplate.GetComponent <Text>(); m_Instance.GetComponent <AgentAnimations>().m_manager = this; // Set the Animation Manager m_Instance.GetComponent <AgentAnimations>().Setup(); m_Instance.GetComponent <AgentAnimations>().AnimEvent_TrailStop(); Hide_Name(); //m_Powerup_State = new AgentPowerups(this); m_Instance.transform.Find("Pickup_Box").gameObject.GetComponent <PickupBox>().Add_Agent(this); m_BadgeAllocation = "WINDOW_SHOPPER_" + m_Player_Number; break; case Agent_Type.Base_AI: // Base AI are calm, rotate slowly and move at random speeds m_Input = new BaseAI_Control(null, this); int random_speed = (int)(UnityEngine.Random.Range(GLOBAL_VALUES.BASE_PLAYER_MOVEMENT_SPEED * 0.7f, GLOBAL_VALUES.BASE_PLAYER_MOVEMENT_SPEED * 1.2f)); m_Strength = GLOBAL_VALUES.BASE_PLAYER_STRENGTH; m_MoveSpeed = random_speed; m_RotateSpeed = 10.0f; break; case Agent_Type.Large_AI: // Large AI move VERY slowly and rotate even slower m_Input = new LargeAI_Control(null, this); m_Strength = GLOBAL_VALUES.BASE_PLAYER_STRENGTH; m_MoveSpeed = GLOBAL_VALUES.BASE_PLAYER_MOVEMENT_SPEED * 0.3f; m_RotateSpeed = 2.0f; break; case Agent_Type.Security_AI: // Stronger than normal, rest is average m_Input = new SecurityAI_Control(null, this); m_Instance.GetComponentInChildren <SecurityItemVision>().m_Manager = this; m_Instance.GetComponent <SecurityAnimations>().m_manager = this; // Set the Animation Manager m_Instance.GetComponent <SecurityAnimations>().Setup(); m_Strength = GLOBAL_VALUES.BASE_PLAYER_STRENGTH * 1.1f; m_MoveSpeed = GLOBAL_VALUES.BASE_PLAYER_MOVEMENT_SPEED * 0.9f; m_RotateSpeed = GLOBAL_VALUES.BASE_PLAYER_ROTATION_SPEED; break; default: // setup a none character m_Input = new Input_Methods(cont_num); break; } m_Round_Score = 0; m_Round_Wins = 0; m_Sound_Source = m_Instance.GetComponent <AudioSource>(); m_Body = m_Instance.GetComponent <Rigidbody>(); m_Collision_Detector = m_Instance.GetComponent <CollisionDetection>(); m_Animator = m_Instance.GetComponent <Animator>(); m_State = Agent_State.Active; m_Enabled_State = Agent_Movement_State.Disabled; m_Animator.SetBool(GLOBAL_VALUES.ANIM_STUN_LOOP, false); m_Collision_Detector.Add_Manager(this); m_Actions = new AgentActions(this, m_Input); m_Movement = new AgentMovement(this, m_Input); if (isPlayer()) { // Players have extra things (UI and crown) GameObject StunCanvas = m_Instance.transform.Find("StunCanvas").gameObject; GameObject StunDuration = StunCanvas.transform.Find("StunDuration").gameObject; m_UI_Stun = StunCanvas.GetComponent <StunIndicatorUI>(); m_Crown = m_Instance.transform.Find("Crown").gameObject; m_Crown.SetActive(false); m_Round_Score_Position = 0; } else { m_UI_Stun = null; } if (isPlayer() || isSecurityAI()) { GetStunStars(); SetStunStars(false); } m_punchImpact = m_Instance.transform.Find("Impact_Punch").gameObject; m_throwImpact = m_Instance.transform.Find("Impact_Throw").gameObject; m_dashImpact = m_Instance.transform.Find("Impact_Dash").gameObject; m_Sound_Stun = Resources.Load <AudioClip>(GLOBAL_VALUES.SOUND_PLAYER_HIT); /* FIX * //m_Effect_Impact = m_Instance.transform.Find("Impact").gameObject; * //m_Effect_Stun_Lights = m_Instance.transform.Find("Player_Stun").gameObject; */ }
public void UpdatesPositionAndRotation() { Transform[] transforms = new Transform[2]; transforms[0] = GameObject.CreatePrimitive(PrimitiveType.Cube).transform; transforms[1] = GameObject.CreatePrimitive(PrimitiveType.Cube).transform; TransformAccessArray asyncTransforms = new TransformAccessArray(transforms); NativeArray <AgentKinematics> agents = new NativeArray <AgentKinematics>(2, Allocator.Persistent); agents[0] = new AgentKinematics() { maxSpeed = 1f }; agents[1] = new AgentKinematics() { maxSpeed = 1f }; NativeArray <float3> directions = new NativeArray <float3>(2, Allocator.Persistent); directions[0] = Vector3.right; directions[1] = Vector3.left; NativeArray <byte> flowField = new NativeArray <byte>(1, Allocator.Persistent); for (int i = 0; i < 1; i++) { flowField[i] = 1; } NativeArray <AgentBehaviors> active = new NativeArray <AgentBehaviors>(2, Allocator.Persistent); for (int i = 0; i < 2; i++) { active[i] = AgentBehaviors.Active; } NativeArray <int> agentMovementTypes = new NativeArray <int>(2, Allocator.Persistent); NativeArray <AgentMovement> movementTypes = new NativeArray <AgentMovement>(1, Allocator.Persistent); movementTypes[0] = new AgentMovement() { mass = 1f, topSpeed = 1f, turnSpeed = 1f }; AgentWorld world = new AgentWorld() { scale = 1f, offset = float3.zero, center = new float3(0.5f, 0.5f, 0.5f), rotation = quaternion.identity, }; MoveAgentJob job = new MoveAgentJob() { maxForce = 1f, movementTypes = movementTypes, agentMovement = agentMovementTypes, agents = agents, behaviors = active, steering = directions, deltaTime = Time.deltaTime, world = world, flowField = flowField, flowFieldSize = new int3(1, 1, 1) }; Vector3 position_0 = transforms[0].position; Vector3 position_1 = transforms[1].position; Quaternion rotation_0 = transforms[0].rotation; Quaternion rotation_1 = transforms[1].rotation; JobHandle handle = job.Schedule(asyncTransforms); handle.Complete(); Assert.AreNotEqual(position_0, transforms[0].position); Assert.AreNotEqual(position_1, transforms[1].position); Assert.AreNotEqual(rotation_0, transforms[0].rotation); Assert.AreNotEqual(rotation_1, transforms[1].rotation); agents.Dispose(); active.Dispose(); flowField.Dispose(); directions.Dispose(); asyncTransforms.Dispose(); agentMovementTypes.Dispose(); movementTypes.Dispose(); foreach (var t in transforms) { GameObject.DestroyImmediate(t.gameObject); } }
/// <summary> /// Constructor, setup callbacks for packets related to our avatar /// </summary> /// <param name="client">A reference to the <seealso cref="T:OpenMetaverse.GridClient"/> Class</param> public AgentManager(LoggerInstance log, NetworkManager network, GridManager grid) { Log = log; Network = network; Grid = grid; Movement = new AgentMovement(Log, this, network); NetworkManager.PacketCallback callback; Network.OnDisconnected += new NetworkManager.DisconnectedCallback(Network_OnDisconnected); Network.OnCurrentSimChanged += new NetworkManager.CurrentSimChangedCallback(Network_OnCurrentSimChanged); // Teleport callbacks callback = new NetworkManager.PacketCallback(TeleportHandler); Network.RegisterCallback(PacketType.TeleportStart, callback); Network.RegisterCallback(PacketType.TeleportProgress, callback); Network.RegisterCallback(PacketType.TeleportFailed, callback); Network.RegisterCallback(PacketType.TeleportCancel, callback); Network.RegisterCallback(PacketType.TeleportLocal, callback); // these come in via the EventQueue Network.RegisterEventCallback("TeleportFailed", new Caps.EventQueueCallback(TeleportFailedEventHandler)); Network.RegisterEventCallback("TeleportFinish", new Caps.EventQueueCallback(TeleportFinishEventHandler)); // Upload cost callback: Network.RegisterCallback(Packets.PacketType.EconomyData, new NetworkManager.PacketCallback(EconomyDataHandler)); // Instant message callback Network.RegisterCallback(PacketType.ImprovedInstantMessage, new NetworkManager.PacketCallback(InstantMessageHandler)); // Chat callback Network.RegisterCallback(PacketType.ChatFromSimulator, new NetworkManager.PacketCallback(ChatHandler)); // Script dialog callback Network.RegisterCallback(PacketType.ScriptDialog, new NetworkManager.PacketCallback(ScriptDialogHandler)); // Script question callback Network.RegisterCallback(PacketType.ScriptQuestion, new NetworkManager.PacketCallback(ScriptQuestionHandler)); // Script URL callback Network.RegisterCallback(PacketType.LoadURL, new NetworkManager.PacketCallback(LoadURLHandler)); // Movement complete callback Network.RegisterCallback(PacketType.AgentMovementComplete, new NetworkManager.PacketCallback(MovementCompleteHandler)); // Health callback Network.RegisterCallback(PacketType.HealthMessage, new NetworkManager.PacketCallback(HealthHandler)); // Money callback Network.RegisterCallback(PacketType.MoneyBalanceReply, new NetworkManager.PacketCallback(BalanceHandler)); //Agent update callback Network.RegisterCallback(PacketType.AgentDataUpdate, new NetworkManager.PacketCallback(AgentDataUpdateHandler)); // Animation callback Network.RegisterCallback(PacketType.AvatarAnimation, new NetworkManager.PacketCallback(AvatarAnimationHandler)); // Object colliding into our agent callback Network.RegisterCallback(PacketType.MeanCollisionAlert, new NetworkManager.PacketCallback(MeanCollisionAlertHandler)); // Region Crossing Network.RegisterCallback(PacketType.CrossedRegion, new NetworkManager.PacketCallback(CrossedRegionHandler)); Network.RegisterEventCallback("CrossedRegion", new Caps.EventQueueCallback(CrossedRegionEventHandler)); // CAPS callbacks Network.RegisterEventCallback("EstablishAgentCommunication", new Caps.EventQueueCallback(EstablishAgentCommunicationEventHandler)); // Incoming Group Chat Network.RegisterEventCallback("ChatterBoxInvitation", new Caps.EventQueueCallback(ChatterBoxInvitationEventHandler)); // Outgoing Group Chat Reply Network.RegisterEventCallback("ChatterBoxSessionEventReply", new Caps.EventQueueCallback(ChatterBoxSessionEventReplyEventHandler)); Network.RegisterEventCallback("ChatterBoxSessionStartReply", new Caps.EventQueueCallback(ChatterBoxSessionStartReplyEventHandler)); Network.RegisterEventCallback("ChatterBoxSessionAgentListUpdates", new Caps.EventQueueCallback(ChatterBoxSessionAgentListUpdatesEventHandler)); // Login Network.RegisterLoginResponseCallback(new NetworkManager.LoginResponseCallback(Network_OnLoginResponse)); // Alert Messages Network.RegisterCallback(PacketType.AlertMessage, new NetworkManager.PacketCallback(AlertMessageHandler)); // script control change messages, ie: when an in-world LSL script wants to take control of your agent. Network.RegisterCallback(PacketType.ScriptControlChange, new NetworkManager.PacketCallback(ScriptControlChangeHandler)); // Camera Constraint (probably needs to move to AgentManagerCamera TODO: Network.RegisterCallback(PacketType.CameraConstraint, new NetworkManager.PacketCallback(CameraConstraintHandler)); Network.RegisterCallback(PacketType.ScriptSensorReply, new NetworkManager.PacketCallback(ScriptSensorReplyHandler)); Network.RegisterCallback(PacketType.AvatarSitResponse, new NetworkManager.PacketCallback(AvatarSitResponseHandler)); }
public int SortAgentPriority(AgentMovement a1, AgentMovement a2) { return(a1.movePriority.CompareTo(a2.movePriority)); }
/// <summary> /// Método construtor, instancia um novo agente. /// </summary> /// <param name="id">ID único do agente.</param> /// <param name="pos">Posição inicial do agente.</param> /// <param name="kind"> /// Género inicial do agente (zombie ou humano). /// </param> /// <param name="movement">Tipo de movimento inicial do agente (por /// "inteligência artificial" ou controlado pelo jogador). /// </param> /// <param name="world">Referência ao mundo de simulação.</param> public Agent(int id, Coord pos, AgentKind kind, AgentMovement movement, World world) { // Género dos agentes considerados inimigos do agente a ser criado AgentKind enemy; // Indica se o agente a ser criado deve fugir (true) ou não (false) // dos inimigos bool runaway; // Guardar as referências passadas no construtor ID = id; Pos = pos; Kind = kind; Movement = movement; this.world = world; // Adicionar o agente ao mundo de simulação world.AddAgent(this); // Definir género dos inimigos e se o agente deve ou não fugir // deles, dependendo do género de agente a ser criado switch (kind) { case AgentKind.Zombie: // Se agente for zombie os seus inimigos são humanos e // não deve fugir deles (antes pelo contrário) enemy = AgentKind.Human; runaway = false; break; case AgentKind.Human: // Se agente for humando os seus inimigos são zombies e // deve fugir deles enemy = AgentKind.Zombie; runaway = true; break; default: // Lançar uma exceção caso seja um género desconhecido de // agente throw new InvalidEnumArgumentException( "Unknown agent kind"); } // Definir classe concreta que define o movimento dos agentes switch (movement) { case AgentMovement.Player: // Movimento controlado pelo jogador moveBehavior = new PlayerMovement(world); break; case AgentMovement.AI: // Movimento controlado por IA moveBehavior = new AIMovement(enemy, runaway, world); break; default: // Movimento desconhecido, lançar exceção throw new InvalidEnumArgumentException( "Unknown movement type"); } }
public void AddToDeclaredAgents(AgentMovement agentToAdd) { declaredAgents.Add(agentToAdd); }
public void RemoveFromList(AgentMovement agentToRemove) { agentsOnLocation.Remove(agentToRemove); }
public void AddToList(AgentMovement agentToAdd) { agentsOnLocation.Add(agentToAdd); }
private void Awake() { _am = GetComponent <AgentMovement>(); _renderer = GetComponent <Renderer>(); _scared = Scared; }
// Complete constructor public Settings(GameObject player, ref VoiceCommands voiceCommands, PlayerPhysics playerPhysics, ref CharacterController characterController, AgentMovement agentMovement, ref NavMeshAgent navMeshAgent, float speed, float sens, Camera main, PlayerControls controls, PlayerUISetUp ui) { this.player = player; this.voiceCommands = voiceCommands; this.playerPhysics = playerPhysics; this.characterController = characterController; this.agentMovement = agentMovement; this.navMeshAgent = navMeshAgent; playerUI = ui; playerControls = controls; // Other settings this.navMeshAgent.speed = speed; runSpeed = speed; sensitivity = sens; cam = main; }
/// <summary> /// Constructor, setup callbacks for packets related to our avatar /// </summary> /// <param name="client"></param> public AgentManager(SecondLife client) { Client = client; Movement = new AgentMovement(Client); NetworkManager.PacketCallback callback; Client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(Network_OnDisconnected); // Teleport callbacks callback = new NetworkManager.PacketCallback(TeleportHandler); Client.Network.RegisterCallback(PacketType.TeleportStart, callback); Client.Network.RegisterCallback(PacketType.TeleportProgress, callback); Client.Network.RegisterCallback(PacketType.TeleportFailed, callback); Client.Network.RegisterCallback(PacketType.TeleportFinish, callback); Client.Network.RegisterCallback(PacketType.TeleportCancel, callback); Client.Network.RegisterCallback(PacketType.TeleportLocal, callback); // Instant Message callback Client.Network.RegisterCallback(PacketType.ImprovedInstantMessage, new NetworkManager.PacketCallback(InstantMessageHandler)); // Chat callback Client.Network.RegisterCallback(PacketType.ChatFromSimulator, new NetworkManager.PacketCallback(ChatHandler)); // Script dialog callback Client.Network.RegisterCallback(PacketType.ScriptDialog, new NetworkManager.PacketCallback(ScriptDialogHandler)); // Script question callback Client.Network.RegisterCallback(PacketType.ScriptQuestion, new NetworkManager.PacketCallback(ScriptQuestionHandler)); // Movement complete callback Client.Network.RegisterCallback(PacketType.AgentMovementComplete, new NetworkManager.PacketCallback(MovementCompleteHandler)); // Health callback Client.Network.RegisterCallback(PacketType.HealthMessage, new NetworkManager.PacketCallback(HealthHandler)); // Money callback Client.Network.RegisterCallback(PacketType.MoneyBalanceReply, new NetworkManager.PacketCallback(BalanceHandler)); //Agent Update Callback Client.Network.RegisterCallback(PacketType.AgentDataUpdate, new NetworkManager.PacketCallback(AgentDataUpdateHandler)); // CAPS callbacks Client.Network.RegisterEventCallback("EstablishAgentCommunication", new Capabilities.EventQueueCallback(EstablishAgentCommunicationEventHandler)); // Login Client.Network.RegisterLoginResponseCallback(new NetworkManager.LoginResponseCallback(Network_OnLoginResponse)); }
private void Start() { animator = GetComponent <Animator>(); agentMovement = GetComponent <AgentMovement>(); island = GameObject.FindGameObjectWithTag("island").GetComponent <Island>(); }
/// <summary> /// Constructor, setup callbacks for packets related to our avatar /// </summary> /// <param name="client">A reference to the <seealso cref="T:OpenMetaverse.GridClient"/> Class</param> public AgentManager(GridClient client) { Client = client; Movement = new AgentMovement(Client); Client.Network.Disconnected += Network_OnDisconnected; // Teleport callbacks Client.Network.RegisterCallback(PacketType.TeleportStart, TeleportHandler); Client.Network.RegisterCallback(PacketType.TeleportProgress, TeleportHandler); Client.Network.RegisterCallback(PacketType.TeleportFailed, TeleportHandler); Client.Network.RegisterCallback(PacketType.TeleportCancel, TeleportHandler); Client.Network.RegisterCallback(PacketType.TeleportLocal, TeleportHandler); // these come in via the EventQueue Client.Network.RegisterEventCallback("TeleportFailed", new Caps.EventQueueCallback(TeleportFailedEventHandler)); Client.Network.RegisterEventCallback("TeleportFinish", new Caps.EventQueueCallback(TeleportFinishEventHandler)); // Instant message callback Client.Network.RegisterCallback(PacketType.ImprovedInstantMessage, InstantMessageHandler); // Chat callback Client.Network.RegisterCallback(PacketType.ChatFromSimulator, ChatHandler); // Script dialog callback Client.Network.RegisterCallback(PacketType.ScriptDialog, ScriptDialogHandler); // Script question callback Client.Network.RegisterCallback(PacketType.ScriptQuestion, ScriptQuestionHandler); // Script URL callback Client.Network.RegisterCallback(PacketType.LoadURL, LoadURLHandler); // Movement complete callback Client.Network.RegisterCallback(PacketType.AgentMovementComplete, MovementCompleteHandler); // Health callback Client.Network.RegisterCallback(PacketType.HealthMessage, HealthHandler); // Money callback Client.Network.RegisterCallback(PacketType.MoneyBalanceReply, MoneyBalanceReplyHandler); //Agent update callback Client.Network.RegisterCallback(PacketType.AgentDataUpdate, AgentDataUpdateHandler); // Animation callback Client.Network.RegisterCallback(PacketType.AvatarAnimation, AvatarAnimationHandler); // Object colliding into our agent callback Client.Network.RegisterCallback(PacketType.MeanCollisionAlert, MeanCollisionAlertHandler); // Region Crossing Client.Network.RegisterCallback(PacketType.CrossedRegion, CrossedRegionHandler); Client.Network.RegisterEventCallback("CrossedRegion", new Caps.EventQueueCallback(CrossedRegionEventHandler)); // CAPS callbacks Client.Network.RegisterEventCallback("EstablishAgentCommunication", new Caps.EventQueueCallback(EstablishAgentCommunicationEventHandler)); // Incoming Group Chat Client.Network.RegisterEventCallback("ChatterBoxInvitation", new Caps.EventQueueCallback(ChatterBoxInvitationEventHandler)); // Outgoing Group Chat Reply Client.Network.RegisterEventCallback("ChatterBoxSessionEventReply", new Caps.EventQueueCallback(ChatterBoxSessionEventReplyEventHandler)); Client.Network.RegisterEventCallback("ChatterBoxSessionStartReply", new Caps.EventQueueCallback(ChatterBoxSessionStartReplyEventHandler)); Client.Network.RegisterEventCallback("ChatterBoxSessionAgentListUpdates", new Caps.EventQueueCallback(ChatterBoxSessionAgentListUpdatesEventHandler)); // Login Client.Network.RegisterLoginResponseCallback(new NetworkManager.LoginResponseCallback(Network_OnLoginResponse)); // Alert Messages Client.Network.RegisterCallback(PacketType.AlertMessage, AlertMessageHandler); // script control change messages, ie: when an in-world LSL script wants to take control of your agent. Client.Network.RegisterCallback(PacketType.ScriptControlChange, ScriptControlChangeHandler); // Camera Constraint (probably needs to move to AgentManagerCamera TODO: Client.Network.RegisterCallback(PacketType.CameraConstraint, CameraConstraintHandler); Client.Network.RegisterCallback(PacketType.ScriptSensorReply, ScriptSensorReplyHandler); Client.Network.RegisterCallback(PacketType.AvatarSitResponse, AvatarSitResponseHandler); }
private void Start() { agentMovement = GetComponentInParent <AgentMovement>(); }