Архитектурный шаблон "Мрак в моделях" на нескольких языках и платформах
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
661B

  1. interface Context {
  2. itemsCount: number
  3. }
  4. interface Position {
  5. x: number
  6. y: number
  7. }
  8. function memoryGap(): number {
  9. return memorySide() + memorySpace()
  10. }
  11. function memorySide(): number {
  12. return 50
  13. }
  14. function memorySpace(): number {
  15. return 20
  16. }
  17. function memoryItemPositions(c: Context): Position[] {
  18. var pos: Position[] = []
  19. // @ts-ignore
  20. let ids = utsIndexArray(c.itemsCount);
  21. ids.forEach(i => {
  22. // @ts-ignore
  23. let row = utsFloor(Number(i) / 4)
  24. let x = memoryGap() + (Number(i) - row * 4) * memoryGap()
  25. let y = memoryGap() + row * memoryGap()
  26. // @ts-ignore
  27. pos.push(memoryCreatePosition(x, y))
  28. })
  29. return pos
  30. }