less copy protection, more size visualization
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

164 lines
5.9 KiB

  1. const scenes = {};
  2. scenes["Default"] = () => {
  3. importScene({ "entities": [{ "name": "Fen", "scale": 1, "view": "back", "x": "0", "y": "0" }], "world": { "height": 2.9053707516337908, "unit": "meters" }, "version": 0 });
  4. fitWorld(true);
  5. }
  6. function makeSlice(min, max) {
  7. return () => {
  8. const characters = availableEntities["characters"].filter(x => {
  9. const entity = x.constructor();
  10. return math.compare(entity.views[entity.view].height, min) == 1 && math.compare(entity.views[entity.view].height, max) != 1
  11. });
  12. characters.forEach(character => {
  13. const entity = character.constructor();
  14. displayEntity(entity, entity.view, 0, 0);
  15. });
  16. arrangeEntities(getSortedEntities());
  17. fitWorld(true);
  18. }
  19. }
  20. scenes["<10m"] = makeSlice(math.unit(0, "meters"), math.unit(10, "meters"));
  21. scenes["10m-100m"] = makeSlice(math.unit(10, "meters"), math.unit(100, "meters"));
  22. scenes["100m-1km"] = makeSlice(math.unit(100, "meters"), math.unit(1000, "meters"));
  23. scenes["1km-10km"] = makeSlice(math.unit(1000, "meters"), math.unit(10000, "meters"));
  24. scenes["10km-100km"] = makeSlice(math.unit(10000, "meters"), math.unit(100000, "meters"));
  25. scenes["100km-1000km"] = makeSlice(math.unit(100000, "meters"), math.unit(1000000, "meters"));
  26. scenes["Everyone"] = () => {
  27. config.height = math.unit(11, "meters");
  28. let entities = availableEntities.characters.map(maker => {
  29. return maker.constructor();
  30. })
  31. if (confirm("This scene will load " + entities.length + " entities -- are you sure?")) {
  32. entities.reduce((counter, entity) => {
  33. entity.views[entity.view].height = math.unit(1, "meter");
  34. const count = availableEntities.characters.length;
  35. const x = 0.05 + math.floor(counter / 10) / math.ceil(count / 10);
  36. const y = (counter % 10) / 10 + 0.1;
  37. displayEntity(entity, entity.view, x, y);
  38. return counter + 1;
  39. }, 0);
  40. updateSizes(true);
  41. }
  42. }
  43. scenes["EVERYTHING"] = () => {
  44. config.height = math.unit(11, "meters");
  45. let entities = Object.values(availableEntitiesByName).map(maker => {
  46. return maker.constructor();
  47. })
  48. if (confirm("This scene will load " + entities.length + " entities -- are you sure?")) {
  49. entities.reduce((counter, entity) => {
  50. entity.views[entity.view].height = math.unit(1, "meter");
  51. const count = Object.values(availableEntitiesByName).length;
  52. const x = 0.05 + math.floor(counter / 10) / math.ceil(count / 10);
  53. const y = (counter % 10) / 10 + 0.1;
  54. displayEntity(entity, entity.view, x, y);
  55. return counter + 1;
  56. }, 0);
  57. updateSizes(true);
  58. }
  59. }
  60. scenes["EVERY VIEW AAAAA"] = () => {
  61. config.height = math.unit(11, "meters");
  62. let entities = Object.values(availableEntitiesByName).map(maker => {
  63. return maker.constructor();
  64. }).flatMap(entity => {
  65. return Object.keys(entity.views).map(view => {
  66. const newEntity = availableEntitiesByName[entity.identifier].constructor();
  67. newEntity.view = view;
  68. return newEntity;
  69. });
  70. })
  71. if (confirm("This scene will load " + entities.length + " entities -- are you sure?")) {
  72. entities.reduce((counter, entity) => {
  73. entity.views[entity.view].height = math.unit(1, "meter");
  74. const count = Object.values(availableEntitiesByName).length;
  75. const x = 0.05 + math.floor(counter / 10) / math.ceil(count / 10);
  76. const y = (counter % 10) / 10 + 0.1;
  77. displayEntity(entity, entity.view, x, y);
  78. return counter + 1;
  79. }, 0);
  80. updateSizes(true);
  81. }
  82. }
  83. function makeViewsScene(constructor) {
  84. return () => {
  85. Object.keys(constructor.constructor().views).forEach(view => {
  86. if (view.indexOf("Northwest") >= 0) {
  87. const entity = constructor.constructor()
  88. displayEntity(entity, view, 0, 1)
  89. }
  90. })
  91. arrangeEntities(getSortedEntities());
  92. }
  93. }
  94. function makeOwnerScene(owners) {
  95. return () => {
  96. owners.flatMap(owner => {
  97. return availableEntities["characters"].filter(x => {
  98. const entity = x.constructor();
  99. const owners = ownersOf(entity.views[entity.view].image.source);
  100. if (owners)
  101. return owners.indexOf(owner) != -1;
  102. else
  103. return false;
  104. })
  105. }).map(maker => {
  106. return maker.constructor();
  107. }).sort((e1, e2) => {
  108. return e1.views[e1.view].height.toNumber() - e2.views[e2.view].height.toNumber()
  109. }).forEach(entity => {
  110. console.log(entity)
  111. displayEntity(entity, entity.view, 0, 1);
  112. });
  113. arrangeEntities(getSortedEntities());
  114. }
  115. }
  116. function makeOwnerSceneViews(owners) {
  117. return () => {
  118. owners.flatMap(owner => {
  119. return availableEntities["characters"].filter(x => {
  120. const entity = x.constructor();
  121. const owners = ownersOf(entity.views[entity.view].image.source);
  122. if (owners)
  123. return owners.indexOf(owner) != -1;
  124. else
  125. return false;
  126. })
  127. }).map(maker => {
  128. return maker.constructor();
  129. }).flatMap(entity => {
  130. return Object.keys(entity.views).map(view => {
  131. const newEnt = availableEntitiesByName[entity.identifier].constructor();
  132. newEnt.view = view;
  133. return newEnt;
  134. });
  135. }).sort((e1, e2) => {
  136. return e1.views[e1.view].height.toNumber() - e2.views[e2.view].height.toNumber()
  137. }).forEach(entity => {
  138. console.log(entity)
  139. displayEntity(entity, entity.view, 0, 1);
  140. });
  141. arrangeEntities(getSortedEntities());
  142. fitWorld(true);
  143. }
  144. }