示例#1
0
        public void Init(BaseListElementData data)
        {
            OnDataChange(data);

            m_data = data;

            OnInit();
            ForceUpdateProperties();
        }
示例#2
0
        private void ElementChangeHandler(int index, BaseListElementData data)
        {
            var currentIndex = GetCurrentIndex();

            if (index >= currentIndex && index < currentIndex + m_pool.Count)
            {
                UpdateItem(m_pool[index - currentIndex], index);
            }
        }
示例#3
0
        private void ElementInsertHandler(int index, BaseListElementData data)
        {
            var element = InstantiateElement(data, index);

            m_elements.Insert(index, element);

            TryUpdateElementsAnimation();

            OnElementsCountChanged.Call();
        }
示例#4
0
        private void ElementAddHandler(BaseListElementData data)
        {
            var element = InstantiateElement(data);

            m_elements.Add(element);

            TryUpdateElementsAnimation();

            OnElementsCountChanged.Call();
        }
示例#5
0
        private void BuildingTypeSelectionChangedHandler(BaseListElementData element)
        {
            var typeData = element as BuildingTypeData;

            var config = GameplayHolderManager.Instance.Configs.BuildingConfigs.Find((x) => x.Type == typeData.Type);

            if (config == null)
            {
                isBuildCheckPassed.value = false;
                return;
            }

            var resourcer = GameplayManager.Instance.Player.Resourcer;

            isBuildCheckPassed.value = resourcer.IsEnough(ResourceTypes.Fruit, config.FruitCost) && resourcer.IsEnough(ResourceTypes.Meat, config.MeatCost);
        }
示例#6
0
        private BaseListElement InstantiateElement(BaseListElementData data, int index = -1)
        {
            var element = Instantiate(m_elementPrefab, m_content, false);

            if (index != -1)
            {
                element.transform.SetSiblingIndex(index);
            }
            element.Init(data);

            if (m_canDragElements)
            {
                var draggableElement = element as BaseDraggableListElement;
                draggableElement.OnPressed          += ElementPressHandler;
                draggableElement.OnCanStartDragging += ElementCanStartDragHandler;
                draggableElement.OnCanEndDragging   += ElementCanEndDragHandler;
            }
            return(element);
        }
示例#7
0
 protected virtual void OnDataChange(BaseListElementData newData)
 {
 }
示例#8
0
        private void ElementChangeHandler(int index, BaseListElementData data)
        {
            var element = m_elements[index];

            element.Init(data);
        }
示例#9
0
        private void ElementAddHandler(BaseListElementData data)
        {
            RebuildList();

            onElementsCountChanged.Call();
        }