private void PlaceTransformInOneSlot(IEntityRootComponent entity, ISlotRootComponent slot)
        {
            // prepare entity
            SetSizeEntityOneSlot(entity, slot);
            entity.Transform.SetParent(slot.Transform);

            // place
            entity.Transform.localPosition = new Vector3();
        }
        /// <summary>
        /// Only for GridInventory
        /// </summary>
        public void PlaceEntityTransform(IEntityRootComponent entity, ISlotRootComponent slot)
        {
            var isAreaEntityForInventory = DatabaseReadOnly.IsAreaEntityForInventory(entity, slot.Data.DataInventory);

            if (isAreaEntityForInventory)
            {
                PlaceTransformInArea(entity, slot);
            }
            else
            {
                PlaceTransformInOneSlot(entity, slot);
            }
        }
Example #3
0
        public HandView([NotNull] IEntityRootComponent entityComponentHand, [NotNull] DataEntity dataEntityHand)
        {
            _handViewTransform  = entityComponentHand.Transform.gameObject.InstantiateOnRootCanvas().transform;
            entityComponentHand = _handViewTransform.GetComponent <IEntityRootComponent>();

            entityComponentHand.Init(null, dataEntityHand);

            var entityViewComponentHand = _handViewTransform.gameObject.GetComponent <EntityViewComponent>();

            entityViewComponentHand.Start();

            SetViewDifferentFromSourceEntity();
        }
        private Vector2 GetDeltaEntityAreaCenterToLeftTop(IEntityRootComponent entityComponent)
        {
            var entityArea = entityComponent.Data;

            // размеры картинки
            var sizeEntity = GetSizeEntityArea(entityArea);

            var sizeCellInImage = sizeEntity / entityArea.Dimensions;

            sizeEntity = (entityArea.Dimensions - new Vector2Int(1, 1)) * sizeCellInImage;
            var result = new Vector2(-sizeEntity.x / 2, sizeEntity.y / 2);

            //var scaleFactor = InventoryManager.CanvasRootRectTransform.localScale;
            return(result);// * scaleFactor;
        }
        private void PlaceTransformInArea(IEntityRootComponent entity, ISlotRootComponent slotLeftTop)
        {
            // prepare entity
            var entityTransform = entity.Transform;

            entity.RectTransform.sizeDelta = GetSizeEntityArea(entity.Data, slotLeftTop) * RatioSizeEntityToSlot;

            var canvasTransform = slotLeftTop.InventoryComponent.CanvasInventory.transform;

            entityTransform.SetParent(canvasTransform);
            entityTransform.SetAsLastSibling();

            // place
            var positionSlot = GetSlotPosition(slotLeftTop);

            var delta          = GetDeltaEntityAreaCenterToLeftTop(entity);
            var resultPosition = positionSlot - delta;

            entityTransform.localPosition = resultPosition;
        }
Example #6
0
 public bool IsAreaEntityForInventory(IEntityRootComponent entitySource, DataInventory inventoryTo)
 {
     return(entitySource.Data.IsAreaEntity &&
            inventoryTo.TypeInventory == DataInventory.TypeInventoryEnum.GridSupportMultislotEntity);
 }
        private void SetSizeEntityOneSlot(IEntityRootComponent entity, ISlotRootComponent slot)
        {
            var sizeEntityImage = GetSizeEntityOneSlot(slot);

            entity.RectTransform.sizeDelta = sizeEntityImage;
        }
 public void UnBindEntity(IEntityRootComponent entityComponent) => _bindEntityComponentToData.Remove(entityComponent);
 public void BindEntity(IEntityRootComponent entityComponent) => _bindEntityComponentToData.Add(entityComponent);
 public bool TryGetEntityComponent(DataEntity dataEntity, out IEntityRootComponent componentResult) =>
 _bindEntityComponentToData.TryGetComponent(dataEntity, out componentResult);