public GroupWaitConditional CreateWaitItem(LiteFunc <bool> ConditionFunc) { var Item = new GroupWaitConditional(this, ConditionFunc); ItemList_.Add(Item); return(Item); }
public void Initialize(int TotalCount, int Index, LiteFunc <int, LiteLoopViewItem> CreateItem, LiteAction <LiteLoopViewItem> DeleteItem, LiteAction <int, LiteLoopViewItem> UpdateItem) { LayoutRebuilder.ForceRebuildLayoutImmediate(GetComponent <RectTransform>()); ViewBounds_ = new Bounds(Viewport.rect.center, Viewport.rect.size); ViewItemCount_ = InternalCalculateViewItemCount(); Content.sizeDelta = InternalCalculateContentSize(); ContentBounds_ = GetBounds(); if (ViewItemCount_ > TotalCount) { ViewItemCount_ = TotalCount; } this.TotalCount = TotalCount; this.Content.sizeDelta = InternalCalculateContentSize(); this.CurrentIndex_ = Mathf.Clamp(Index, 0, TotalCount - ViewItemCount_); this.PreviousIndex_ = this.CurrentIndex_; this.OnCreateItem_ = CreateItem; this.OnDeleteItem_ = DeleteItem; this.OnUpdateItem_ = UpdateItem; this.Dragging_ = false; this.PrevPosition_ = Vector2.zero; this.Velocity_ = Vector2.zero; this.IsInit_ = true; FillItemList(); }
public ObjectPoolEntity(string PoolName, LiteFunc <T> CreateFunc, LiteAction <T> SpawnFunc, LiteAction <T> RecycleFunc, LiteAction <T> DisposeFunc) : base(PoolName, typeof(T)) { ObjectCacheList_ = new Queue <T>(); this.CreateFunc_ = CreateFunc; this.SpawnFunc_ = SpawnFunc; this.RecycleFunc_ = RecycleFunc; this.DisposeFunc_ = DisposeFunc; }
/// <summary> /// Return T when TickFunc return true /// </summary> public T ForeachReturn(LiteFunc <T, bool> TickFunc) { Flush(); InEach_++; foreach (var Item in Values_) { if (TickFunc?.Invoke(Item) == true) { return(Item); } } InEach_--; return(default);
public override void Dispose() { foreach (var Cache in ObjectCacheList_) { TriggerDispose(Cache); } ObjectCacheList_.Clear(); UsedCount = 0; IdleCount = 0; CreateFunc_ = null; SpawnFunc_ = null; RecycleFunc_ = null; DisposeFunc_ = null; }
public GroupWaitConditional(GroupEntity Master, LiteFunc <bool> ConditionFunc) : base(Master, null) { ConditionFunc_ = ConditionFunc; }
public MotionContainer Wait(LiteFunc <bool> ConditionFunc) { MotionList_.Add(new WaitConditionalMotion(ConditionFunc)); return(this); }
public WaitConditionalMotion(LiteFunc <bool> ConditionFunc) : base() { ConditionFunc_ = ConditionFunc; }