Exemple #1
0
        /// <summary>
        ///     Вызывается в каждом кадре
        /// </summary>
        public void Update()
        {
            if (Input.GetMouseButton(1))
            {
                RaycastHit hit;
                Ray        ray = _camera.ScreenPointToRay(Input.mousePosition);

                if (Physics.Raycast(ray, out hit))                           // Бросаем луч
                {
                    GameObject   objectHit       = hit.transform.gameObject; // Получаем обьект на который попали лучем
                    ISmartObject smartObjectMenu = objectHit.GetComponent <ISmartObject>();
                    if (smartObjectMenu != null)                             // Если этот объект поддерживает контекстное меню
                    {
                        if (MenuMemory.menuItems.Count > 0)
                        {
                            foreach (var item in MenuMemory.menuItems)
                            {
                                item.SetActive(false);
                            }
                        }
                        smartObjectMenu.ShowMenu();
                    }
                }
            }
        }
            public FormattableSmartObject(ISmartObject smartObject, Func <object, string> formatFunc, Func <string, object, bool> parseFunc)
            {
                this.smartObject = smartObject;
                this.formatFunc  = formatFunc;
                this.parseFunc   = parseFunc;

                smartObject.ValueChanged += smartObject_ValueChanged;
            }
        public void LoadSmartObjects(ISmartObject deviceWithSmartObjects)
        {
            Device.LoadSmartObjects(deviceWithSmartObjects);
#if DEBUG
            foreach (var o in Device.SmartObjects)
            {
                o.Value.SigChange += ValueOnSigChange;
            }
#endif
        }
Exemple #4
0
        /// <summary>
        /// Determines what happens if the ICollidable getSetEntity is intersecting another entity's hitbox
        /// </summary>
        /// <param name="source">.</param>
        /// <param name="data">CollisionEvent which contains the entity being collided with</param>
        public virtual void newCollision(object source, CollisionEvent data)
        {
            ICollidable cRef = (ICollidable)getSetEntity;

            if (data.collidable is ISmartObject)
            {
                smartObj        = (ISmartObject)data.collidable;
                smartObjCollide = true;
            }
            else if (data.collidable is ISmartStructure)
            {
                smartStruct        = (ISmartStructure)data.collidable;
                smartStructCollide = true;

                if (cRef.getSetCenter.X < data.collidable.getSetCenter.X)
                {
                    data.mtv.X *= -1;
                }

                if (cRef.getSetCenter.Y < data.collidable.getSetCenter.Y)
                {
                    data.mtv.Y *= -1;
                }

                getSetMoveVector = data.mtv * (getSetSpeed);
                //mPos += getSetMoveVector;

                physicsCollide = true;
                //getSetSpeed *= 0.1f;
            }
            else
            {
                if (cRef.getSetCenter.X < data.collidable.getSetCenter.X)
                {
                    data.mtv.X *= -1;
                }

                if (cRef.getSetCenter.Y < data.collidable.getSetCenter.Y)
                {
                    data.mtv.Y *= -1;
                }

                getSetMoveVector = data.mtv * (getSetSpeed);
                //mPos += getSetMoveVector;

                physicsCollide = true;
                //getSetSpeed *= 0.1f;
            }
        }
Exemple #5
0
 /// <summary>
 ///  Initializes a new instance of the <see cref="SmartObjectController" /> class.
 /// </summary>
 /// <param name="smartObject"></param>
 public SmartObjectController(ISmartObject smartObject)
 {
     _smartObject = smartObject;
 }
Exemple #6
0
 public uint LoadSmartObjects(ISmartObject deviceWithSmartObjects)
 {
     //  this._InUse
     //  throw new NotImplementedException();
     return(0);
 }