private void RemoveCurrentProcessBorder(ProcessBorder processBorder) { EntityManager.DestroyEntity(processBorder.StartBorder); EntityManager.DestroyEntity(processBorder.EndBorder); EntityManager.DestroyEntity(processBorder.LineBorder); ProcessBorders.Remove(processBorder); }
public void RestAll() { foreach (var t in ProcessBorders) { EntityManager.DestroyEntity(t.End); EntityManager.DestroyEntity(t.Start); EntityManager.DestroyEntity(t.EndBorder); EntityManager.DestroyEntity(t.StartBorder); EntityManager.DestroyEntity(t.LineBorder); } EntityManager.DestroyEntity(_entityLineTemp); EntityManager.DestroyEntity(_entityLineTempOld); ProcessBorders = new List <ProcessBorder>(); _entityDirections = -1; _processBorder = new ProcessBorder(); _down = false; _oldPos = new float2(); _entityLineTemp = Entity.Null; _entityLineTempOld = Entity.Null; }
private void DrawBorder(Entity entity, bool down) { if (entity == Entity.Null) { return; } var pos = EntityManager.GetComponentData <Translation>(entity).Value; var index = EntityManager.GetComponentData <LevelBufferIndex>(entity).Index; if (_entityDirections == index) { return; } if (this._processBorder.Start != Entity.Null && this._processBorder.End == Entity.Null && down) { return; } // if click created line item, remove item var processBorder = GetProcessBorder(entity); if (processBorder != null) { RemoveCurrentProcessBorder(processBorder); } if (index % 2 == _entityDirections % 2) { RemoveCurrentProcessBorder(this._processBorder); this._processBorder = new ProcessBorder(); } _entityDirections = index; var entityClip = EntityManager.GetComponentData <TinyAnimationPlayer>(entity).CurrentClip; EntityManager.SetComponentData(entityClip, new TinyAnimationTime() { Value = 0 }); var entityB = EntityManager.Instantiate(_gamePrefabsComponent.Border); EntityManager.SetComponentData(entityB, new Translation { Value = pos }); if (this._processBorder.Start == Entity.Null) { this._processBorder.StartBorder = entityB; this._processBorder.Start = entity; } else if (this._processBorder.End == Entity.Null) { this._processBorder.EndBorder = entityB; this._processBorder.End = entity; } if (this._processBorder.Start != Entity.Null && this._processBorder.End != Entity.Null && this._processBorder.LineBorder == Entity.Null) { this._processBorder.LineBorder = DrawLine(); ProcessBorders.Add(this._processBorder); this._processBorder = new ProcessBorder(); _entityDirections = -1; Entity mainEntity = GetSingletonEntity <GamePrefabsComponent>(); EntityManager.AddComponent(mainEntity, typeof(CheckResultComponent)); } }