Ejemplo n.º 1
0
        public void UseElement(int id)
        {
            InteractiveElement e = m_Account.MapData.InteractiveElements.Keys.ToList().Find(i => i.Id == id);

            UseElement(id, e.EnabledSkills[0].SkillInstanceUid);
            m_elemId = -1;
        }
        public IEnumerator TestOnStateActivatedNewState()
        {
            // Create an interactive cube
            InteractiveElement interactiveElement = CreateInteractiveCube();

            yield return(null);

            // Create a new state
            interactiveElement.AddNewState(newStateName);

            bool stateActivated = false;

            // Use the OnStateActivated event in the State Manager to set stateActivated
            interactiveElement.StateManager.OnStateActivated.AddListener((state) =>
            {
                if (state.Name == newStateName)
                {
                    stateActivated = true;
                }
            });

            // Set the state on
            interactiveElement.SetStateOn(newStateName);

            // Make sure the state was activated
            Assert.True(stateActivated);
        }
Ejemplo n.º 3
0
    public static InteractiveElement CreateElement(string elementsClassName, Vector3Int position)
    {
        InteractiveElement element = CreateElement(elementsClassName);

        element.position = position;
        return(element);
    }
Ejemplo n.º 4
0
        private void HandleHovering()
        {
            _pointerEventData = new PointerEventData(eventSystem)
            {
                position = Input.mousePosition
            };

            List <RaycastResult> results = new List <RaycastResult>();

            raycaster.Raycast(_pointerEventData, results);

            foreach (var r in results)
            {
                var element = r.gameObject.GetComponent <InteractiveElement>();
                if (element != null)
                {
                    if (element != _hoveredElement)
                    {
                        _hoveredElement   = element;
                        _hasHoveringCache = true;

                        _outlineManager.ToggleHoverOutline(_hoveredElement);
                    }
                    return;
                }
            }

            if (_hasHoveringCache)
            {
                ResetHoveringCache();
                _outlineManager.ToggleHoverOutline();
            }
        }
Ejemplo n.º 5
0
 private bool isBorder(InteractiveElement element)
 {
     return(element.position.x == level.LevelLeftBound ||
            element.position.x == level.LevelRightBound + 1 ||
            element.position.y == level.LevelTopBound + 1 ||
            element.position.y == level.LevelBottomBound);
 }
        public IEnumerator TestClickedEventConfiguration()
        {
            // Create an interactive cube
            InteractiveElement interactiveElement = CreateInteractiveCube();

            yield return(null);

            // Add the clicked state
            InteractionState clicked = interactiveElement.AddNewState(clickedStateName);

            yield return(null);

            // Get the event configuration for the Clicked state
            var eventConfiguration = interactiveElement.GetStateEvents <ClickedEvents>(clickedStateName);

            bool onClicked = false;

            eventConfiguration.OnClicked.AddListener(() => { onClicked = true; });

            // Create a new hand and initialize it with an object in focus
            var leftHand = new TestHand(Handedness.Left);

            // Show hand at starting position
            yield return(ShowHandWithObjectInFocus(leftHand));

            // Click the hand to trigger far select events
            yield return(leftHand.Click());

            Assert.True(onClicked);
        }
Ejemplo n.º 7
0
    protected void FillPosition(int x, int y, string wallName)
    {
        InteractiveElement obstacle = SimpleInteractiveElementFactory.CreateElement(wallName);

        obstacle.position = new Vector3Int(x, y, 0);
        gameField.Add(obstacle.position, obstacle);
    }
Ejemplo n.º 8
0
    public Vector3Int GetNextHeadPosition()
    {
        InteractiveElement head = GetSnakesHead();

        SnakesDirection = NextDirection;
        return(SnakesDirectionHelper.NextHeadPosition(SnakesDirection, head.position));
    }
Ejemplo n.º 9
0
        void TankMoveDone(object sender, RoutedEventArgs e)
        {
            ReneCommunicatorBroadcast rcb = e.OriginalSource as ReneCommunicatorBroadcast;

            this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new System.Windows.Forms.MethodInvoker(delegate()
            {
                Vector v = (Vector)rcb.Data;
                foreach (User u in M.Session.Users)
                {
                    if (u.PublicKey == rcb.sender.PublicKey)
                    {
                        if (u.Tank.InteractiveElement == null)
                        {
                            InteractiveElement ie = new InteractiveElement();
                            ie.Background         = Brushes.Red;
                            ie.Width  = 25;
                            ie.Height = 25;
                            ie.HorizontalAlignment = HorizontalAlignment.Left;
                            ie.VerticalAlignment   = VerticalAlignment.Top;
                            Grid g = this.Template.FindName("PART_Tanks", this) as Grid;
                            g.Children.Add(ie);

                            u.Tank.InteractiveElement = ie;
                        }
                        u.Tank.InteractiveElement.SetPosition(v);

                        if (u.PublicKey == M.Session.User.PublicKey)
                        {
                            M.Session.User.Tank.InteractiveElement = u.Tank.InteractiveElement;
                        }
                    }
                }
            }));
        }
Ejemplo n.º 10
0
    void InteractWithElemetsAtPosition(Vector3Int position)
    {
        InteractiveElement element = app.model.level.GetElementWithPosition(position);

        element.Interact();
        element = app.model.snake.GetSnakesElementWithPosition(position);
        element.Interact();
    }
 public void Deserialize(IDataReader reader)
 {
     InteractiveElements = new InteractiveElement[reader.ReadShort()];
     for (var i = 0; i < InteractiveElements.Length; i++)
     {
         (InteractiveElements[i] = new InteractiveElement()).Deserialize(reader);
     }
 }
Ejemplo n.º 12
0
        public override void Serialize(IDataWriter writer)
        {
            writer.WriteShort(((short)(m_houses.Count)));
            int housesIndex;

            for (housesIndex = 0; (housesIndex < m_houses.Count); housesIndex = (housesIndex + 1))
            {
                HouseInformations objectToSend = m_houses[housesIndex];
                writer.WriteUShort(((ushort)(objectToSend.TypeID)));
                objectToSend.Serialize(writer);
            }
            writer.WriteShort(((short)(m_actors.Count)));
            int actorsIndex;

            for (actorsIndex = 0; (actorsIndex < m_actors.Count); actorsIndex = (actorsIndex + 1))
            {
                GameRolePlayActorInformations objectToSend = m_actors[actorsIndex];
                writer.WriteUShort(((ushort)(objectToSend.TypeID)));
                objectToSend.Serialize(writer);
            }
            writer.WriteShort(((short)(m_interactiveElements.Count)));
            int interactiveElementsIndex;

            for (interactiveElementsIndex = 0; (interactiveElementsIndex < m_interactiveElements.Count); interactiveElementsIndex = (interactiveElementsIndex + 1))
            {
                InteractiveElement objectToSend = m_interactiveElements[interactiveElementsIndex];
                writer.WriteUShort(((ushort)(objectToSend.TypeID)));
                objectToSend.Serialize(writer);
            }
            writer.WriteShort(((short)(m_statedElements.Count)));
            int statedElementsIndex;

            for (statedElementsIndex = 0; (statedElementsIndex < m_statedElements.Count); statedElementsIndex = (statedElementsIndex + 1))
            {
                StatedElement objectToSend = m_statedElements[statedElementsIndex];
                objectToSend.Serialize(writer);
            }
            writer.WriteShort(((short)(m_obstacles.Count)));
            int obstaclesIndex;

            for (obstaclesIndex = 0; (obstaclesIndex < m_obstacles.Count); obstaclesIndex = (obstaclesIndex + 1))
            {
                MapObstacle objectToSend = m_obstacles[obstaclesIndex];
                objectToSend.Serialize(writer);
            }
            writer.WriteShort(((short)(m_fights.Count)));
            int fightsIndex;

            for (fightsIndex = 0; (fightsIndex < m_fights.Count); fightsIndex = (fightsIndex + 1))
            {
                FightCommonInformations objectToSend = m_fights[fightsIndex];
                objectToSend.Serialize(writer);
            }
            m_fightStartPositions.Serialize(writer);
            writer.WriteVarShort(m_subAreaId);
            writer.WriteInt(m_mapId);
            writer.WriteBoolean(m_hasAggressiveMonsters);
        }
Ejemplo n.º 13
0
 public override void SpawnSnakeAtPosition(Vector3Int position, int snakesLength)
 {
     snake.Clear();
     for (int i = snakesLength; i > 0; i--)
     {
         InteractiveElement bodyElement = CreateSnakesBodyElement(new Vector3Int(i + position.x, position.y, position.z));
         snake.Add(bodyElement);
     }
 }
        public override void Deserialize(IDataReader reader)
        {
            mapId = reader.ReadInt();
            if (mapId < 0)
            {
                throw new Exception("Forbidden value on mapId = " + mapId + ", it doesn't respect the following condition : mapId < 0");
            }
            subareaId = reader.ReadShort();
            if (subareaId < 0)
            {
                throw new Exception("Forbidden value on subareaId = " + subareaId + ", it doesn't respect the following condition : subareaId < 0");
            }
            var limit = reader.ReadUShort();

            houses = new HouseInformations[limit];
            for (int i = 0; i < limit; i++)
            {
                houses[i] = (HouseInformations)ProtocolTypeManager.GetInstance(reader.ReadUShort());
                houses[i].Deserialize(reader);
            }
            limit  = reader.ReadUShort();
            actors = new GameRolePlayActorInformations[limit];
            for (int i = 0; i < limit; i++)
            {
                actors[i] = (GameRolePlayActorInformations)ProtocolTypeManager.GetInstance(reader.ReadUShort());
                actors[i].Deserialize(reader);
            }
            limit = reader.ReadUShort();
            interactiveElements = new InteractiveElement[limit];
            for (int i = 0; i < limit; i++)
            {
                interactiveElements[i] = new InteractiveElement();
                interactiveElements[i].Deserialize(reader);
            }
            limit          = reader.ReadUShort();
            statedElements = new StatedElement[limit];
            for (int i = 0; i < limit; i++)
            {
                statedElements[i] = new StatedElement();
                statedElements[i].Deserialize(reader);
            }
            limit     = reader.ReadUShort();
            obstacles = new MapObstacle[limit];
            for (int i = 0; i < limit; i++)
            {
                obstacles[i] = new MapObstacle();
                obstacles[i].Deserialize(reader);
            }
            limit  = reader.ReadUShort();
            fights = new FightCommonInformations[limit];
            for (int i = 0; i < limit; i++)
            {
                fights[i] = new FightCommonInformations();
                fights[i].Deserialize(reader);
            }
        }
Ejemplo n.º 15
0
    void SpawnFood()
    {
        Level level                 = app.model.level;
        InteractiveElement food     = GetFoodElement();
        Vector3Int         position = GetRandomPosition(level);

        food.position = position;
        level.SetElementAtPosition(position, food);
        app.Notify(SnakeNotifications.UpdateView);
    }
Ejemplo n.º 16
0
    public override void Move()
    {
        InteractiveElement head = GetSnakesHead();
        InteractiveElement tail = GetSnakesTail();

        snake.Remove(tail);
        tail.position = head.position;
        snake.Insert(1, tail);
        head.position = GetNextHeadPosition();
    }
        public IEnumerator TestTouchEventConfiguration()
        {
            // Create an interactive cube
            InteractiveElement interactiveElement = CreateInteractiveCube();

            yield return(null);

            // Add the touch state
            InteractionState touchState = interactiveElement.AddNewState(touchStateName);

            yield return(null);

            // Get the event configuration for the touch state
            var eventConfiguration = interactiveElement.GetStateEvents <TouchEvents>(touchStateName);

            bool onTouchStarted   = false;
            bool onTouchCompleted = false;
            bool onTouchUpdated   = false;

            eventConfiguration.OnTouchStarted.AddListener((eventData) =>
            {
                onTouchStarted = true;
            });

            eventConfiguration.OnTouchCompleted.AddListener((eventData) =>
            {
                onTouchCompleted = true;
            });

            eventConfiguration.OnTouchUpdated.AddListener((eventData) =>
            {
                onTouchUpdated = true;
            });

            // Create a new hand and initialize it with an object in focus
            var leftHand = new TestHand(Handedness.Left);

            // Show hand at starting position
            yield return(ShowHandWithObjectInFocus(leftHand));

            // Move hand to Touch the object
            yield return(MoveHandTouchObject(leftHand));

            Assert.True(onTouchStarted);
            yield return(null);

            Assert.True(onTouchUpdated);
            yield return(null);

            yield return(MoveHandOutOfFocus(leftHand));

            // Make sure the touch has completed when the hand moves off the object
            Assert.True(onTouchCompleted);
            yield return(null);
        }
Ejemplo n.º 18
0
 public override void Serialize(IDataWriter writer)
 {
     writer.WriteShort((short)((int)this.interactiveElements.Length));
     InteractiveElement[] interactiveElementArray = this.interactiveElements;
     for (int i = 0; i < (int)interactiveElementArray.Length; i++)
     {
         InteractiveElement interactiveElement = interactiveElementArray[i];
         writer.WriteShort(interactiveElement.TypeId);
         interactiveElement.Serialize(writer);
     }
 }
        public override void Deserialize(IDataReader reader)
        {
            uint num = (uint)reader.ReadUShort();

            for (int index = 0; (long)index < (long)num; ++index)
            {
                InteractiveElement instance = ProtocolTypeManager.GetInstance <InteractiveElement>((uint)reader.ReadUShort());
                instance.Deserialize(reader);
                this.interactiveElements.Add(instance);
            }
        }
        private InteractiveElement CreateInteractiveCube()
        {
            GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);

            cube.transform.position   = new Vector3(0, 0, 0.7f);
            cube.transform.localScale = new Vector3(0.2f, 0.2f, 0.2f);

            InteractiveElement basicButton = cube.AddComponent <InteractiveElement>();

            return(basicButton);
        }
Ejemplo n.º 21
0
        public override void Deserialize(IDataReader reader)
        {
            var limit = reader.ReadUShort();

            interactiveElements = new InteractiveElement[limit];
            for (int i = 0; i < limit; i++)
            {
                interactiveElements[i] = new InteractiveElement();
                interactiveElements[i].Deserialize(reader);
            }
        }
Ejemplo n.º 22
0
 public void ToggleHoverOutline(InteractiveElement element = null)
 {
     foreach (var item in _materialDictionary)
     {
         foreach (var i in item.Value)
         {
             var toHover = i.Item1 == element && element.CanBeSelected();
             i.Item2.SetColor(Constants.ColorShaderProperty, toHover ? hoverColor : Color.clear);
             i.Item2.SetFloat(Constants.EnabledShaderProperty, toHover ? 1f : 0f);
         }
     }
 }
Ejemplo n.º 23
0
        public override void Serialize(ICustomDataOutput writer)
        {
            writer.WriteShort(((short)(m_interactiveElements.Count)));
            int interactiveElementsIndex;

            for (interactiveElementsIndex = 0; (interactiveElementsIndex < m_interactiveElements.Count); interactiveElementsIndex = (interactiveElementsIndex + 1))
            {
                InteractiveElement objectToSend = m_interactiveElements[interactiveElementsIndex];
                writer.WriteUShort(((ushort)(objectToSend.TypeID)));
                objectToSend.Serialize(writer);
            }
        }
Ejemplo n.º 24
0
        public override void Deserialize(IDataReader reader)
        {
            var limit = reader.ReadShort();
            var interactiveElements_ = new InteractiveElement[limit];

            for (int i = 0; i < limit; i++)
            {
                interactiveElements_[i] = Types.ProtocolTypeManager.GetInstance <InteractiveElement>(reader.ReadShort());
                interactiveElements_[i].Deserialize(reader);
            }
            interactiveElements = interactiveElements_;
        }
Ejemplo n.º 25
0
    private void LoadNextPanorama(InteractiveElement element)
    {
        if (currentRequest != null)
        {
            currentRequest.Dispose();
        }

        zoom = usePreview? 0: panoramaMaxZoom;
        GoogleStreetViewRequest request = new GoogleStreetViewRequest(googleApiKey, element["id"] as string, zoom, true);

        request.OnSuccess += OnGoogleStreetViewSuccess;
    }
Ejemplo n.º 26
0
        public override void Deserialize(IDataReader reader)
        {
            var InteractiveElementsCount = reader.ReadShort();

            InteractiveElements = new List <InteractiveElement>();
            for (var i = 0; i < InteractiveElementsCount; i++)
            {
                InteractiveElement objectToAdd = ProtocolTypeManager.GetInstance(reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                InteractiveElements.Add(objectToAdd);
            }
        }
Ejemplo n.º 27
0
    void JumpSnake()
    {
        Snake snake                    = app.model.snake;
        InteractiveElement head        = snake.GetSnakesHead();
        Vector3Int         newPosition = GetMirrorPosition(head.position);

        if (!newPosition.Equals(head.position))
        {
            head.position = newPosition;
            app.Notify(SnakeNotifications.TryInteractSnake);
        }
    }
Ejemplo n.º 28
0
        public override void Deserialize(ICustomDataInput reader)
        {
            int interactiveElementsCount = reader.ReadUShort();
            int interactiveElementsIndex;

            m_interactiveElements = new System.Collections.Generic.List <InteractiveElement>();
            for (interactiveElementsIndex = 0; (interactiveElementsIndex < interactiveElementsCount); interactiveElementsIndex = (interactiveElementsIndex + 1))
            {
                InteractiveElement objectToAdd = ProtocolTypeManager.GetInstance <InteractiveElement>((short)reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                m_interactiveElements.Add(objectToAdd);
            }
        }
Ejemplo n.º 29
0
        public override void Deserialize(ICustomDataInput reader)
        {
            var countInteractiveElements = reader.ReadShort();

            InteractiveElements = new List <InteractiveElement>();
            for (short i = 0; i < countInteractiveElements; i++)
            {
                var interactiveElementstypeId = reader.ReadShort();
                InteractiveElement type       = new InteractiveElement();
                type.Deserialize(reader);
                InteractiveElements.Add(type);
            }
        }
Ejemplo n.º 30
0
        public void useZaap(int mapid)
        {
            InteractiveElement e = m_Account.MapData.InteractiveElements.Keys.ToList().Find(i => i.TypeId == 16);

            if (e != null)
            {
                MoveToSecureElement((int)e.Id);
                UseElement((int)e.Id, e.EnabledSkills[0].SkillInstanceUid);
                m_Account.Wait(500, 1000);
                TeleportRequestMessage msg = new TeleportRequestMessage(0, mapid);
                m_Account.SocketManager.Send(msg);
            }
        }