private Vector2 GetSizeEntityOneSlot(ISlotRootComponent slot) { var slotSize = GetSizeSlot(slot); var sizeEntityImage = slotSize * RatioSizeEntityToSlot; return(sizeEntityImage); }
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); } }
private Vector2 GetSizeEntityArea(DataEntity dataEntity, ISlotRootComponent slot) { if (dataEntity.DataInventory.TypeInventory == DataInventory.TypeInventoryEnum.FreeSlots) { return(GetSizeEntityOneSlot(slot)); } else // grid TypeInventory { var sizeSlot = GetSizeSlot(slot); var sizeResult = sizeSlot * dataEntity.Dimensions; return(sizeResult); } }
private Vector2 GetSlotPosition(ISlotRootComponent slotLeftTop) { if (slotLeftTop.Data.DataInventory.TypeInventory == DataInventory.TypeInventoryEnum.FreeSlots) { return(slotLeftTop.Transform.localPosition); } else { var inventoryComponent = slotLeftTop.InventoryComponent; var gridLayoutGroup = inventoryComponent.GridLayoutGroup; UpdateGrid(gridLayoutGroup); var gridRect = inventoryComponent.RectTransform; var slotRect = slotLeftTop.RectTransform; return(GetChildLocalPosition(gridRect, slotRect)); } }
private void Awake() { _debugMode = Debug.DebugMode; if (_debugMode) { _slotComponent = GetComponent <ISlotRootComponent>(); var dataSlot = _slotComponent.Data; _outline = GetComponent <Outline>(); var textRow = transform.Cast <Transform>().First(tr => tr.name == TextRow); textRow.GetComponent <Text>().text = dataSlot.Row.ToString(); textRow.gameObject.SetActive(true); var textColumn = transform.Cast <Transform>().First(tr => tr.name == TextColumn); textColumn.GetComponent <Text>().text = dataSlot.Column.ToString(); textColumn.gameObject.SetActive(true); } }
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; }
private Vector2 GetSizeSlot(ISlotRootComponent slotLeftTop) { var inventoryComponent = slotLeftTop.InventoryComponent; var typeInventory = slotLeftTop.Data.DataInventory.TypeInventory; switch (typeInventory) { case DataInventory.TypeInventoryEnum.Grid: case DataInventory.TypeInventoryEnum.GridSupportMultislotEntity: { System.Diagnostics.Debug.Assert(inventoryComponent.GridLayoutGroup != null, "inventoryComponent.GridLayoutGroup != null"); return(inventoryComponent.GridLayoutGroup.cellSize); } case DataInventory.TypeInventoryEnum.FreeSlots: var slotSize = slotLeftTop.RectTransform.sizeDelta; return(slotSize); default: throw new Exception(); } }
private void Awake() { SlotComponent = GetComponent <ISlotRootComponent>(); }
private void SetSizeEntityOneSlot(IEntityRootComponent entity, ISlotRootComponent slot) { var sizeEntityImage = GetSizeEntityOneSlot(slot); entity.RectTransform.sizeDelta = sizeEntityImage; }
public bool TryGetSlotComponent(DataSlot dataSlot, out ISlotRootComponent componentResult) => _bindSlots.TryGetComponent(dataSlot, out componentResult);