Example #1
0
 public void SetUp(IActorPart actor)
 {
     backpack?.RemoveOnAddItemListener(AddNewItem);
     backpack?.RemoveOnRemoveItemListener(RemoveItem);
     backpack = actor.GetBackpack();
     panel.Init(this);
     Start();
     backpack.AddOnAddItemListener(AddNewItem);
     backpack.AddOnRemoveItemListener(RemoveItem);
     gearUI.SetUp(actor.GetGear());
 }
Example #2
0
 public void Init(IEquipmentGear gear, IBackpack backpack, IController controller, IDamageable damageable)
 {
     if (inited)
     {
         return;
     }
     this.gear       = gear;
     this.backpack   = backpack;
     this.controller = controller;
     this.damageable = damageable;
     Init();
     inited = true;
 }
Example #3
0
 private void Awake()
 {
     if (!inited)
     {
         damageable = GetComponent <IDamageable>();
         gear       = GetComponent <IEquipmentGear>();
         backpack   = GetComponent <IBackpack>();
         controller = GetComponent <BaseController>();
         Init();
         inited = true;
         damageable.Init(gear, backpack, controller, damageable);
         backpack.Init(gear, backpack, controller, damageable);
         gear.Init(gear, backpack, controller, damageable);
         controller.Init(gear, backpack, controller, damageable);
     }
 }
Example #4
0
        public void BindItem(IActorPart item_owner, Item item)
        {
            item_name.text  = item.GetName();
            item_desc.text  = item.GetDescription();
            item_attr.text  = item.GetAttribute();
            item_type.text  = item.GetItemType();
            item_img.sprite = item.GetImage().sprite;
            item_img.color  = item.GetImage().color;
            int       i        = 0;
            IBackpack backpack = item_owner.GetBackpack();

            foreach (ItemOperation op in item.GetOperations())
            {
                UIButton btn;
                if (i < buttons.Count)
                {
                    btn = buttons[i];
                }
                else
                {
                    btn = Instantiate(btn_prototype, buttons_group.transform);
                    buttons.Add(btn);
                }
                btn.SetText(op.operation_name);
                switch (op.tag)
                {
                default:
                case OperationOverTag.Default:
                    btn.SetOnclick(() => op.callBack.Invoke(item, backpack));
                    break;

                case OperationOverTag.Close_Info_After_Op:
                    btn.SetOnclick(() => { op.callBack.Invoke(item, backpack); Hide(); });
                    break;

                case OperationOverTag.Close_Backpack_After_Op:
                    btn.SetOnclick(() => { op.callBack.Invoke(item, backpack); Hide(); backpackUI.Hide(); });
                    break;
                }
                btn.Show();
                i++;
            }
            for (; i < buttons.Count; i++)
            {
                buttons[i].Hide();
            }
        }
Example #5
0
 public StatusProcessor(ILogger <StatusProcessor> log, IShip ship, ICommander commander, INavRoute navRoute,
                        ICargo cargo, IMarket market, IModules modules, IBackpack backpack, IShipyard shipyard,
                        IOutfitting outfitting, IFileReader fileReader)
 {
     _log        = log;
     _ship       = ship;
     _commander  = commander;
     _navRoute   = navRoute;
     _cargo      = cargo;
     _market     = market;
     _modules    = modules;
     _backpack   = backpack;
     _shipyard   = shipyard;
     _outfitting = outfitting;
     _fileReader = fileReader;
     _cache      = new Dictionary <string, string>();
 }
Example #6
0
 public void CollectBy(IBackpack backpack)
 {
     print(gameObject + " collect by " + backpack);
     OnCollect?.Invoke(this, backpack);
     gameObject.SetActive(false);
 }
Example #7
0
 public override void DropItem(IBackpack backpack)
 {
     TakeOffItem(this, backpack);
     base.DropItem(backpack);
 }
Example #8
0
 public virtual void RemoveItem(Item item, IBackpack backpack)
 {
     item.SetUIPos(null);
 }
Example #9
0
 public virtual void AddNewItem(Item item, IBackpack backpack)
 {
     item.SetUIPos(content);
 }
Example #10
0
 /// <summary>
 /// add item to backpack
 /// </summary>
 /// <param name="backpack"></param>
 public void CollectItem(IBackpack backpack)
 {
     backpack.AddItem(this);
 }
Example #11
0
 public void DropItem(Item item, IBackpack backpack)
 {
     DropItem(backpack);
 }
Example #12
0
 public void CollectItem(Item item, IBackpack backpack)
 {
     CollectItem(backpack);
 }
Example #13
0
 //***********************************rewrite
 public void CollectItem(Collectable collectable, IBackpack backpack)
 {
     CollectItem(backpack);
 }
Example #14
0
 public virtual void DropItem(IBackpack backpack)
 {
     backpack.RemoveItem(this);
     collectable.Init(backpack.GetTransform().position);
 }
Example #15
0
 // события мыши
 private void UpdateInput()
 {
     ray = mainCamera.ScreenPointToRay(Input.mousePosition);
     // посылаем луч из камеры по направлению к курсору, маска по уровню Plane
     if (Physics.Raycast(ray, out hit, 500f, 1 << 8))
     {
         cursorPosition = hit.point;
     }
     // если нажата левая клавиша мыши
     if (Input.GetMouseButtonDown(0))
     {
         // посылаем луч из камеры по направлению к курсору, маска по уровню Backpack
         if (Physics.Raycast(ray, out hit, 500f, 1 << 9))
         {
             // проверяем интерфейс рюкзака
             backpack = hit.collider.GetComponent <IBackpack>();
             if (backpack != null)
             {
                 // показать UI рюкзака
                 backpack.SetActiveUI(true);
             }
             // посылаем луч из камеры по направлению к курсору
         }
         else if (Physics.Raycast(ray, out hit))
         {
             // проверяем интерфейс фигуры
             figure = hit.collider.GetComponent <IFigure>();
             if (figure != null)
             {
                 figure.StartMove();
             }
         }
     }
     // если держим фигуру и отпустили клавишу мыши
     if (Input.GetMouseButtonUp(0))
     {
         if (figure != null)
         {
             figure.EndMove();
         }
         // посылаем луч из камеры по направлению к курсору, маска по уровню Backpack
         if (Physics.Raycast(ray, out hit, 500f, 1 << 9))
         {
             // проверяем интерфейс рюкзака
             IBackpack backpack = hit.collider.GetComponent <IBackpack>();
             if (backpack != null)
             {
                 if (figure != null)
                 {
                     // кладем фигуру в рюкзак
                     backpack.PutFigure(figure);
                     // посылаем луч из камеры по направлению к курсору
                 }
                 else if (Physics.Raycast(ray, out hit, 500f))
                 {
                     // проверяем интерфейс фигуры
                     figure = hit.collider.GetComponent <IFigure>();
                     if (figure != null)
                     {
                         backpack.GetFigure(figure);
                     }
                 }
             }
         }
         if (backpack != null)
         {
             // скрыть UI рюкзака
             backpack.SetActiveUI(false);
         }
         backpack = null;
         figure   = null;
     }
 }