From 579a7553851df822f7a825843ba6f5e91c6208d3 Mon Sep 17 00:00:00 2001 From: Fen Dweller Date: Thu, 9 Apr 2020 12:53:22 -0400 Subject: [PATCH] Speed up loads by only parsing units once for GIS-related entities Cloning an existing unit and changing its value is a fair bit faster. --- presets/naturals.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/presets/naturals.js b/presets/naturals.js index 583a18b6..b0796b72 100644 --- a/presets/naturals.js +++ b/presets/naturals.js @@ -929,25 +929,32 @@ function makeMountains() { } function makeGIS(data, category) { + const baseLength = math.unit(1, "meters"); + const baseArea = math.unit(1, "meters^2"); return { name: category, constructor: () => { views = {}; data.forEach(entry => { name = entry[0] + length = baseLength.clone(); + area = baseArea.clone(); + length.value = entry[2]; + area.value = entry[1]; + views[entry[0]] = { attributes: { height: { name: "Size", power: 1, type: "length", - base: math.unit(entry[2], "meters") + base: length }, area: { name: "Area", power: 2, type: "area", - base: math.unit(entry[1], "meters^2") + base: area }, }, name: name,