Пример #1
0
        public void Take()
        {
            if (!_isEnabled)
            {
                return;
            }

            if (!TakeFromWorkbench())
            {
                var objects = _triggerHand.GetObjects();

                if (!objects.Any())
                {
                    return;
                }

                float    min    = float.MaxValue;
                C_Object objMin = null;

                foreach (var obj in objects)
                {
                    var distance = Vector3.Distance(transform.position, obj.transform.position);
                    if (distance < min)
                    {
                        min    = distance;
                        objMin = obj;
                    }
                }

                Take(objMin);
            }
        }
Пример #2
0
        public void Release()
        {
            if (!_isEnabled)
            {
                return;
            }

            if (_object == null)
            {
                return;
            }

            if (_triggerWorkbench.CurrentWorkbench != null && _triggerWorkbench.CurrentWorkbench.WorkbenchType != _object.ObjectType)
            {
                SoundManager.PlaySound(SoundList.Sound.error, gameObject);
                return;
            }

            _object.transform.SetParent(null);

            if (_triggerBot.CurrentBot != null)
            {
                _triggerBot.CurrentBot.AddPart(_object, this.gameObject);
            }
            else
            {
                _object.Release(this.gameObject);
            }

            _object = null;

            EnableHand();
        }
Пример #3
0
 public void AddObjectToList(C_Object obj)
 {
     if (!_boxList.Objects.Contains(obj))
     {
         _boxList.Objects.Add(obj);
     }
 }
Пример #4
0
 public void RemoveObjectFromList(C_Object obj)
 {
     if (_boxList.Objects.Contains(obj))
     {
         _boxList.Objects.Remove(obj);
     }
 }
Пример #5
0
        public C_Object TakeObject()
        {
            _currentRobotArm  = null;
            _currentRobotPart = null;

            var obj = _currentObject;

            _currentObject = null;

            ChangeLEDColor(new Color(.04f, .04f, .04f));

            return(obj);
        }
Пример #6
0
        public void OnCollisionEnter(Collision collision)
        {
            if (_currentObject != null)
            {
                return;
            }

            var obj = collision.collider.GetComponent <C_Object>();

            if (obj == null || obj.ObjectType != _workbenchType)
            {
                return;
            }

            var robotArm  = collision.collider.GetComponent <C_RobotArm>();
            var robotPart = collision.collider.GetComponent <C_RobotPart>();

            if (robotArm == null && robotPart == null)
            {
                return;
            }

            _currentObject = obj;

            ChangeLEDColor(new Color(1.0f, 0.15f, 0));

            if (robotArm != null)
            {
                _currentRobotArm = robotArm;

                if (_currentRobotArm.Progress >= 1f)
                {
                    ChangeLEDColor(new Color(.04f, 1f, 0));
                }
            }
            else if (robotPart != null)
            {
                _currentRobotPart = robotPart;

                if (_currentRobotPart.Progress >= _currentRobotPart.Hardness)
                {
                    ChangeLEDColor(new Color(.04f, 1f, 0));
                }
            }

            obj.transform.SetParent(_objectPosition);
            obj.transform.localPosition = -obj.OffsetHand.localPosition;
            obj.transform.localRotation = Quaternion.identity;
            obj.EnterWorkbench();
        }
Пример #7
0
        public static List <C_Object> getGoods(C_Object goods)
        {
            List <C_Object> reslut = new List <C_Object>();

            if (goods.Type == 9)
            {
                reslut.Add(goods);
            }
            else
            {
                reslut.Concat(Getgood(goods, reslut));
            }
            return(reslut);
        }
Пример #8
0
 private static List <C_Object> Getgood(C_Object goods, List <C_Object> reslut)
 {
     foreach (var gs in goods.Subset)
     {
         if (gs.Type == 9)
         {
             reslut.Add(gs);
         }
         else
         {
             Getgood(gs, reslut);
         }
     }
     return(reslut);
 }
Пример #9
0
        private void Take(C_Object obj)
        {
            _character.Animator.SetTrigger("Grab");

            _object = obj;
            _object.Take(this.gameObject);
            _object.transform.SetParent(_hand);
            _object.transform.localPosition = _object.GetHandPosition();
            //_object.transform.localPosition = Vector3.zero;
            _object.transform.localRotation = Quaternion.identity;
            //_object.transform.localPosition = new Vector3(
            //    _object.OffsetHand.localPosition.x * _object.transform.localScale.x,
            //    _object.OffsetHand.localPosition.y * _object.transform.localScale.y,
            //    _object.OffsetHand.localPosition.z * _object.transform.localScale.z);

            DisableHand();
        }
Пример #10
0
        public ActionResult AddPost(ProductViewModel model)
        {
            C_Object Cmodel = new C_Object();

            Cmodel.Name           = model.Name;
            Cmodel.ParentId       = model.ParentId;
            Cmodel.Sort           = model.Sort;
            Cmodel.Creater        = UserId;
            Cmodel.CreateTime     = DateTime.Now;
            Cmodel.LastModifyTime = DateTime.Now;
            Cmodel.LastModifyUser = UserId;
            Cmodel.Status         = 0;
            Cmodel.Type           = (int)CommonEnum.TypeOfDbObject.Product;
            Cmodel.IsDelete       = false;
            this._ObjectService.Insert(Cmodel);

            C_File imgmodel = new C_File();

            imgmodel.FileName = model.Image;
            this._ObjectService.InsertImage(imgmodel);

            G_Name Gmodel = new G_Name();

            Gmodel.Id    = Cmodel.Id;
            Gmodel.Unit  = model.Unit;
            Gmodel.Image = imgmodel.Id;
            this._GoodsService.InsertUnit(Gmodel);

            CategorySearchCriteria SearchCriteria = new CategorySearchCriteria();

            SearchCriteria.ParentId = -1;
            SearchCriteria.Type     = (int)CommonEnum.TypeOfDbObject.Classification;
            var attrsTypes = this._ObjectService.SearchCategory(SearchCriteria).Item1;
            var typelist   = (from m in attrsTypes
                              select new SelectListItem
            {
                Text = m.Name,
                Value = m.Id.ToString()
            }).ToList();

            ViewBag.shopType = typelist;
            ViewBag.msg      = "添加成功";
            return(View(model));
        }
Пример #11
0
        public void Throw()
        {
            if (!_isEnabled)
            {
                return;
            }

            if (_object == null)
            {
                return;
            }

            if (_object.gameObject.layer == LayerMask.NameToLayer("Waste"))
            {
                _object.Throw(transform.forward, this.gameObject);
                _object = null;
                EnableHand();
                return;
            }

            var hits = Physics.RaycastAll(_character.transform.position + Vector3.up, transform.forward, _raycastDistance, LayerMask.GetMask("Wall", "WallObjectWaste"));

            if (!hits.Any())
            {
                var box = _object.GetComponent <C_Box>();
                if (box == null)
                {
                    _object.Throw(transform.forward, this.gameObject);
                }
                else
                {
                    box.Open(this.gameObject);
                }

                _object = null;

                EnableHand();
            }
        }
Пример #12
0
        public void AddPart(C_Object part, GameObject player)
        {
            if (part.ObjectType == ObjectType.WASTE ||
                _parts[part.ObjectType] != part.Version)
            {
                part.Release(player);
                return;
            }

            var robotArm  = part.GetComponent <C_RobotArm>();
            var robotPart = part.GetComponent <C_RobotPart>();

            if (robotArm == null && robotPart == null)
            {
                part.Release(player);
                return;
            }

            if ((robotArm != null && robotArm.Progress < 1) ||
                (robotPart != null && robotPart.Progress < robotPart.Hardness))
            {
                part.Release(player);
                return;
            }

            Transform partDestination = null;

            switch (part.ObjectType)
            {
            case ObjectType.CHEST:
                if (_chest)
                {
                    part.Release(player);
                    return;
                }
                _chest          = part;
                partDestination = _chestPosition;
                break;

            case ObjectType.HEAD:
                if (_head)
                {
                    part.Release(player);
                    return;
                }
                _head           = part;
                partDestination = _headPosition;
                break;

            case ObjectType.LEFT_ARM:
                if (_leftArm)
                {
                    part.Release(player);
                    return;
                }
                _leftArm        = part;
                partDestination = _leftArmPosition;
                break;

            case ObjectType.RIGHT_ARM:
                if (_rightArm)
                {
                    part.Release(player);
                    return;
                }
                _rightArm       = part;
                partDestination = _rightArmPosition;
                break;
            }
            SoundManager.PlaySound(SoundList.Sound.addpart);
            PopupManager.RemoveTipOnPlayer(this.gameObject);
            var botPartAnim = part.gameObject.AddComponent <C_BotPartAnimation>();

            partDestination = transform;
            botPartAnim.Init(partDestination, () =>
            {
                var go = GetGOFromTypeAndVersion(part.ObjectType, part.Version);
                go.SetActive(true);
                CheckBotCompleted();
            });
        }