@carbonenginejs/runtime 0.1.0-alpha.6 → 0.1.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @carbonenginejs/runtime might be problematic. Click here for more details.
- package/dist/global/consts/effectPaths.js +4 -1
- package/dist/global/consts/effectPaths.js.map +1 -1
- package/dist/global/consts/index.js +1 -1
- package/dist/global/index.js +1 -1
- package/dist/index.js +3 -3
- package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js +19 -2
- package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
- package/dist/resource/format/index.js +1 -1
- package/dist/resource/formats/hlsl/core/carbonTypedViews.js +121 -65
- package/dist/resource/formats/hlsl/core/carbonTypedViews.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +10 -7
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgpu/core/effectBackendBodySet.js +3 -1
- package/dist/resource/formats/webgpu/core/effectBackendBodySet.js.map +1 -1
- package/dist/resource/formats/webgpu/core/packageEffect.js +5 -0
- package/dist/resource/formats/webgpu/core/packageEffect.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/emitWgsl.js +20 -0
- package/dist/resource/formats/webgpu/core/wgsl/emitWgsl.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/emulatedAddressing.js +93 -4
- package/dist/resource/formats/webgpu/core/wgsl/emulatedAddressing.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js +74 -64
- package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/lowerFragmentProgram.js +16 -7
- package/dist/resource/formats/webgpu/core/wgsl/lowerFragmentProgram.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/wgslTypedViews.js +69 -27
- package/dist/resource/formats/webgpu/core/wgsl/wgslTypedViews.js.map +1 -1
- package/dist/resource/geometry/registerGeometryResources.js +10 -1
- package/dist/resource/geometry/registerGeometryResources.js.map +1 -1
- package/dist/sof/EveSOFDNA.js +4 -2
- package/dist/sof/EveSOFDNA.js.map +1 -1
- package/dist/sof/EveSOFDataMgr.js +83 -69
- package/dist/sof/EveSOFDataMgr.js.map +1 -1
- package/dist/trinity/core/Tr2Denoiser.js +6 -1
- package/dist/trinity/core/Tr2Denoiser.js.map +1 -1
- package/dist/trinity/core/Tr2ShadowMap.js +7 -2
- package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
- package/dist/trinity/core/context/Tr2RenderContext.js +43 -0
- package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
- package/dist/trinity/core/device/Tr2GpuStructuredBuffer.js +134 -0
- package/dist/trinity/core/device/Tr2GpuStructuredBuffer.js.map +1 -0
- package/dist/trinity/core/index.js +1 -0
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +410 -124
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/eve/effect/lensflare/EveLensflare.js +303 -312
- package/dist/trinity/eve/effect/lensflare/EveLensflare.js.map +1 -1
- package/dist/trinity/eve/effect/lensflare/EveOccluder.js +117 -0
- package/dist/trinity/eve/effect/lensflare/EveOccluder.js.map +1 -0
- package/dist/trinity/eve/index.js +1 -0
- package/dist/trinity/eve/index.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceScene.js +286 -6
- package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +212 -32
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
- package/dist/trinity/generated/eve/effect/index.js +0 -1
- package/dist/trinity/generated/eve/effect/index.js.map +1 -1
- package/dist/trinity/generated/eve/index.js +0 -1
- package/dist/trinity/generated/eve/index.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -2
- package/dist/trinity/generated/index.js.map +1 -1
- package/dist/trinity/generated/trinityCore/index.js +0 -1
- package/dist/trinity/generated/trinityCore/index.js.map +1 -1
- package/dist/trinity/index.js +2 -2
- package/dist/trinity/postProcess/Tr2PostProcessRenderer.js +4 -1
- package/dist/trinity/postProcess/Tr2PostProcessRenderer.js.map +1 -1
- package/dist/trinity/postProcess/Tr2SSAO.js +282 -21
- package/dist/trinity/postProcess/Tr2SSAO.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2RuntimeTextureParameter.js +71 -53
- package/dist/trinity/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +81 -18
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +46 -4
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +32 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +27 -0
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +29 -4
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js +32 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js +57 -5
- package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js.map +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js +111 -5
- package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -1
- package/docs/trinity/reference/classes/generated.md +20 -20
- package/docs/trinity/reference/classes/post-process.md +1 -1
- package/package.json +1 -1
- package/dist/trinity/generated/eve/effect/EveOccluder.js +0 -38
- package/dist/trinity/generated/eve/effect/EveOccluder.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2GpuStructuredBuffer.js +0 -48
- package/dist/trinity/generated/trinityCore/Tr2GpuStructuredBuffer.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveSOFDataMgr.js","sources":["../../../src/sof/EveSOFDataMgr.js"],"sourcesContent":["import { normalizeResourcePath } from \"#utils/path\";\n\n// Source: trinity/trinity/Eve/SpaceObjectFactory/EveSOFDataMgr.h\n// Source: trinity/trinity/Eve/SpaceObjectFactory/EveSOFDataMgr.cpp\n// Source: trinity/trinity/Eve/SpaceObjectFactory/EveSOFDataMgr_Blue.cpp\nimport { CjsModel } from \"#model\";\nimport { CjsSchema, carbon, impl, type } from \"#schema\";\nimport { mat4 } from \"#math/mat4\";\nimport { vec3 } from \"#math/vec3\";\n\nconst LOGO_KEYS = Object.freeze([\"Primary\", \"Secondary\", \"Tertiary\", \"Marking_01\", \"Marking_02\"]);\n\n\n/**\n * Owns the CPU-side SOF lookup tables consumed by EveSOFDNA and EveSOF.\n *\n * Carbon declares its many projection records as nested C++ structs. They are\n * plain JavaScript records here; they are not persisted fields on the manager.\n */\n@type.define({ className: \"EveSOFDataMgr\", family: \"eve\" })\nexport class EveSOFDataMgr extends CjsModel\n{\n\n static DistributionMethod = Object.freeze({\n RANDOM_INCLUCION: 0,\n PARENT_MATCH: 1,\n DEPLETION_COUNTER: 2,\n GRAPHIC_SETTING_MAP: 3\n });\n\n #hullData = new Map();\n\n #factionData = new Map();\n\n #raceData = new Map();\n\n #materialData = new Map();\n\n #patternData = new Map();\n\n #layoutData = new Map();\n\n #genericData = createGenericData(null);\n\n #hasGenericData = false;\n\n #resourceLoader = null;\n\n #loadOperations = new Map();\n\n /** Supplies the GPU-free object loader used by LoadData. */\n SetResourceLoader(loader)\n {\n if (loader !== null && typeof loader !== \"function\")\n {\n throw new TypeError(\"EveSOFDataMgr resource loader must be a function or null\");\n }\n this.#resourceLoader = loader;\n return this;\n }\n\n /** Loads an EveSOFData graph through the configured synchronous loader. */\n @carbon.method\n @impl.implemented\n LoadData(filePath)\n {\n if (!this.#resourceLoader) return false;\n const data = this.#resourceLoader(filePath);\n if (data && typeof data.then === \"function\")\n {\n throw new TypeError(\"EveSOFDataMgr.LoadData requires a synchronous loader\");\n }\n return this.SetData(data);\n }\n\n /** Loads and consumes SOF data through a promise-capable object loader. */\n async LoadDataAsync(filePath)\n {\n const loader = this.#resourceLoader;\n if (!loader) return false;\n const key = normalizeResourcePath(filePath);\n const existing = this.#loadOperations.get(key);\n if (existing) return existing;\n\n const operation = Promise.resolve()\n .then(() => loader(key))\n .then(data => this.SetData(data));\n this.#loadOperations.set(key, operation);\n const clear = () =>\n {\n if (this.#loadOperations.get(key) === operation) this.#loadOperations.delete(key);\n };\n operation.then(clear, clear);\n return operation;\n }\n\n /** Rebuilds the manager's lookup tables from a hydrated EveSOFData graph. */\n @carbon.method\n @impl.implemented\n SetData(data)\n {\n if (!data) return false;\n\n this.#clear();\n if (!indexNamed(data.hull, this.#hullData, projectHull)) return false;\n if (!indexNamed(data.faction, this.#factionData, projectFaction)) return false;\n if (!indexNamed(data.race, this.#raceData, projectRace)) return false;\n if (!indexNamed(data.material, this.#materialData, projectMaterial)) return false;\n if (!indexNamed(data.pattern, this.#patternData, projectPattern)) return false;\n if (!indexNamed(data.layout, this.#layoutData, projectLayout)) return false;\n if (!data.generic) return false;\n this.#genericData = createGenericData(data.generic);\n this.#hasGenericData = true;\n return true;\n }\n\n /** Tests the exact hull key in the manager's normalized projection table. */\n @carbon.method\n @impl.implemented\n HasHullData(name)\n {\n return this.#hullData.has(String(name));\n }\n\n /**\n * Returns the normalized hull projection for an exact key, or null when\n * absent.\n */\n @carbon.method\n @impl.implemented\n GetHullData(name)\n {\n return this.#hullData.get(String(name)) ?? null;\n }\n\n /** Tests the exact faction key in the manager's normalized projection table. */\n @carbon.method\n @impl.implemented\n HasFactionData(name)\n {\n return this.#factionData.has(String(name));\n }\n\n /**\n * Returns the normalized faction projection for an exact key, or null when\n * absent.\n */\n @carbon.method\n @impl.implemented\n GetFactionData(name)\n {\n return this.#factionData.get(String(name)) ?? null;\n }\n\n /** Tests the exact race key in the manager's normalized projection table. */\n @carbon.method\n @impl.implemented\n HasRaceData(name)\n {\n return this.#raceData.has(String(name));\n }\n\n /**\n * Returns the normalized race projection for an exact key, or null when\n * absent.\n */\n @carbon.method\n @impl.implemented\n GetRaceData(name)\n {\n return this.#raceData.get(String(name)) ?? null;\n }\n\n /** Tests the exact material key in the manager's normalized projection table. */\n @carbon.method\n @impl.implemented\n HasMaterialData(name)\n {\n return this.#materialData.has(String(name));\n }\n\n /**\n * Returns the normalized material projection for an exact key, or null when\n * absent.\n */\n @carbon.method\n @impl.implemented\n GetMaterialData(name)\n {\n return this.#materialData.get(String(name)) ?? null;\n }\n\n /** Tests the exact pattern key in the manager's normalized projection table. */\n @carbon.method\n @impl.implemented\n HasPatternData(name)\n {\n return this.#patternData.has(String(name));\n }\n\n /**\n * Returns the normalized pattern projection for an exact key, or null when\n * absent.\n */\n @carbon.method\n @impl.implemented\n GetPatternData(name)\n {\n return this.#patternData.get(String(name)) ?? null;\n }\n\n /** Tests the exact layout key in the manager's normalized projection table. */\n @carbon.method\n @impl.implemented\n HasLayoutData(name)\n {\n return this.#layoutData.has(String(name));\n }\n\n /** Returns one layout, or filters an ordered list of layout names. */\n @carbon.method\n @impl.implemented\n GetLayoutData(nameOrNames)\n {\n if (Array.isArray(nameOrNames))\n {\n const result = [];\n for (const name of nameOrNames)\n {\n const layout = this.GetLayoutData(name);\n if (layout) result.push(layout);\n }\n return result;\n }\n return this.#layoutData.get(String(nameOrNames)) ?? null;\n }\n\n /**\n * Exposes the current normalized generic projection used by DNA and SOF\n * assembly.\n */\n @carbon.method\n @impl.implemented\n GetGenericData()\n {\n return this.#genericData;\n }\n\n /** Reports whether generic catalog data has been installed. */\n HasGenericData()\n {\n return this.#hasGenericData;\n }\n\n /** Lists canonical hull names for read-only catalog consumers. */\n ListHullDataNames()\n {\n return listCatalogNames(this.#hullData);\n }\n\n /** Lists canonical faction names for read-only catalog consumers. */\n ListFactionDataNames()\n {\n return listCatalogNames(this.#factionData);\n }\n\n /** Lists canonical race names for read-only catalog consumers. */\n ListRaceDataNames()\n {\n return listCatalogNames(this.#raceData);\n }\n\n /** Lists canonical material names for read-only catalog consumers. */\n ListMaterialDataNames()\n {\n return listCatalogNames(this.#materialData);\n }\n\n /** Lists canonical pattern names for read-only catalog consumers. */\n ListPatternDataNames()\n {\n return listCatalogNames(this.#patternData);\n }\n\n /** Lists canonical pattern names with an application for one known hull. */\n ListPatternDataNamesForHull(hullName)\n {\n if (!getCatalogValue(this.#hullData, hullName)) return null;\n const result = [];\n for (const [name, pattern] of this.#patternData)\n {\n if (getMapValue(getPatternApplications(pattern), hullName))\n {\n result.push(normalizeCatalogName(name));\n }\n }\n return [...new Set(result.filter(Boolean))]\n .sort((left, right) => left.localeCompare(right));\n }\n\n /** Lists canonical layout names for read-only catalog consumers. */\n ListLayoutDataNames()\n {\n return listCatalogNames(this.#layoutData);\n }\n\n /** Returns one detached JSON-compatible hull projection, case-insensitively. */\n GetHullDataJson(name)\n {\n return getCatalogJson(this.#hullData, name);\n }\n\n /** Returns one detached JSON-compatible faction projection, case-insensitively. */\n GetFactionDataJson(name)\n {\n return getCatalogJson(this.#factionData, name);\n }\n\n /** Returns one detached JSON-compatible race projection, case-insensitively. */\n GetRaceDataJson(name)\n {\n return getCatalogJson(this.#raceData, name);\n }\n\n /** Returns one detached JSON-compatible material projection, case-insensitively. */\n GetMaterialDataJson(name)\n {\n return getCatalogJson(this.#materialData, name);\n }\n\n /** Returns one detached JSON-compatible layout projection, case-insensitively. */\n GetLayoutDataJson(name)\n {\n return getCatalogJson(this.#layoutData, name);\n }\n\n /** Returns only one pattern's detached application for one hull. */\n GetPatternHullDataJson(patternName, hullName)\n {\n const pattern = getCatalogValue(this.#patternData, patternName);\n if (!pattern) return null;\n const application = getMapValue(getPatternApplications(pattern), hullName);\n return application ? projectJsonValue(application) : null;\n }\n\n /**\n * Normalizes a supplied hull graph and stores its projection under the\n * requested key.\n */\n @carbon.method\n @impl.implemented\n UpdateHull(name, value)\n {\n return updateNamed(this.#hullData, name, value, projectHull);\n }\n\n /**\n * Normalizes a supplied faction graph and stores its projection under the\n * requested key.\n */\n @carbon.method\n @impl.implemented\n UpdateFaction(name, value)\n {\n return updateNamed(this.#factionData, name, value, projectFaction);\n }\n\n /**\n * Normalizes a supplied race graph and stores its projection under the\n * requested key.\n */\n @carbon.method\n @impl.implemented\n UpdateRace(name, value)\n {\n return updateNamed(this.#raceData, name, value, projectRace);\n }\n\n /**\n * Normalizes a supplied material graph and stores its projection under the\n * requested key.\n */\n @carbon.method\n @impl.implemented\n UpdateMaterial(name, value)\n {\n return updateNamed(this.#materialData, name, value, projectMaterial);\n }\n\n /**\n * Rejects a missing value, otherwise normalizes and replaces the keyed pattern\n * projection.\n */\n @carbon.method\n @impl.implemented\n UpdatePattern(name, value)\n {\n if (!value) return false;\n return updateNamed(this.#patternData, name, value, projectPattern);\n }\n\n /**\n * Rejects a missing value, otherwise normalizes and replaces the keyed layout\n * projection.\n */\n @carbon.method\n @impl.implemented\n UpdateLayout(name, value)\n {\n if (!value) return false;\n return updateNamed(this.#layoutData, name, value, projectLayout);\n }\n\n /**\n * Rejects a missing value, otherwise replaces the manager's normalized generic\n * projection.\n */\n @carbon.method\n @impl.implemented\n UpdateGeneric(value)\n {\n if (!value) return false;\n this.#genericData = createGenericData(value);\n this.#hasGenericData = true;\n return true;\n }\n\n /**\n * Empties every named projection table and restores an empty normalized\n * generic record.\n */\n #clear()\n {\n this.#hullData.clear();\n this.#factionData.clear();\n this.#raceData.clear();\n this.#materialData.clear();\n this.#patternData.clear();\n this.#layoutData.clear();\n this.#genericData = createGenericData(null);\n this.#hasGenericData = false;\n }\n\n}\n\n\n\nfunction indexNamed(values, target, projector)\n{\n for (const value of Array.isArray(values) ? values : [])\n {\n if (!value || target.has(String(value.name))) return false;\n target.set(String(value.name), projector(value));\n }\n return true;\n}\n\nfunction listCatalogNames(values)\n{\n return [...new Set(\n [...values.keys()]\n .map(normalizeCatalogName)\n .filter(Boolean)\n )].sort((left, right) => left.localeCompare(right));\n}\n\nfunction getCatalogValue(values, name)\n{\n const requested = normalizeCatalogName(name);\n if (!requested) return null;\n for (const [key, value] of values)\n {\n if (normalizeCatalogName(key) === requested) return value;\n }\n return null;\n}\n\nfunction getCatalogJson(values, name)\n{\n const value = getCatalogValue(values, name);\n return value ? projectJsonValue(value) : null;\n}\n\nfunction getMapValue(values, name)\n{\n if (!(values instanceof Map)) return null;\n const requested = normalizeCatalogName(name);\n if (!requested) return null;\n for (const [key, value] of values)\n {\n if (normalizeCatalogName(key) === requested) return value;\n }\n return null;\n}\n\nfunction getPatternApplications(pattern)\n{\n return pattern?.sof6 === true\n ? pattern.applicationData\n : pattern?.oldApplicationData;\n}\n\nfunction normalizeCatalogName(value)\n{\n return String(value ?? \"\").trim().toLowerCase();\n}\n\nconst OMIT_JSON_VALUE = Symbol(\"omitJsonValue\");\n\nfunction projectJsonValue(value, stack = new Set())\n{\n if (value === undefined || typeof value === \"function\" || typeof value === \"symbol\")\n {\n return OMIT_JSON_VALUE;\n }\n if (value === null || typeof value === \"string\" || typeof value === \"boolean\")\n {\n return value;\n }\n if (typeof value === \"number\")\n {\n return Number.isFinite(value) ? value : null;\n }\n if (typeof value === \"bigint\")\n {\n return String(value);\n }\n if (value instanceof ArrayBuffer)\n {\n return Array.from(new Uint8Array(value));\n }\n if (value instanceof DataView)\n {\n return Array.from(new Uint8Array(value.buffer, value.byteOffset, value.byteLength));\n }\n if (ArrayBuffer.isView(value))\n {\n return Array.from(value, item => {\n const projected = projectJsonValue(item, stack);\n return projected === OMIT_JSON_VALUE ? null : projected;\n });\n }\n if (stack.has(value))\n {\n throw new TypeError(\"SOF catalog JSON projection cannot contain circular values\");\n }\n\n stack.add(value);\n try\n {\n if (value instanceof Map)\n {\n const result = {};\n const entries = [...value.entries()]\n .map(([key, item]) => [String(key), item])\n .sort(([left], [right]) => left.localeCompare(right));\n for (const [key, item] of entries)\n {\n const projected = projectJsonValue(item, stack);\n if (projected !== OMIT_JSON_VALUE) result[key] = projected;\n }\n return result;\n }\n if (value instanceof Set)\n {\n return [...value]\n .map(item => projectJsonValue(item, stack))\n .filter(item => item !== OMIT_JSON_VALUE)\n .sort(compareJsonValues);\n }\n if (Array.isArray(value))\n {\n return value.map(item => {\n const projected = projectJsonValue(item, stack);\n return projected === OMIT_JSON_VALUE ? null : projected;\n });\n }\n if (CjsSchema.isModelInstance(value))\n {\n return projectJsonValue(\n value.GetValues({ refs: true, typeTags: true }),\n stack\n );\n }\n\n const result = {};\n for (const key of Object.keys(value).sort((left, right) => left.localeCompare(right)))\n {\n const projected = projectJsonValue(value[key], stack);\n if (projected !== OMIT_JSON_VALUE) result[key] = projected;\n }\n return result;\n }\n finally\n {\n stack.delete(value);\n }\n}\n\nfunction compareJsonValues(left, right)\n{\n return JSON.stringify(left).localeCompare(JSON.stringify(right));\n}\n\nfunction updateNamed(target, name, value, projector)\n{\n if (!value) return false;\n target.set(String(name), projector(value));\n return true;\n}\n\nfunction projectHull(value)\n{\n const opaqueAreas = projectAreas(value.opaqueAreas);\n const meshIndexToOpaqueAreaLookup = new Map();\n opaqueAreas.forEach((area, index) => meshIndexToOpaqueAreaLookup.set(area.index, index));\n const locatorSets = new Map();\n const locatorState = { uniqueID: 0 };\n for (const locatorSet of Array.isArray(value.locatorSets) ? value.locatorSets : [])\n {\n projectLocatorSet(locatorSet, locatorSets, locatorState);\n }\n return {\n ...value,\n impactEffectType: Number(value.impactEffectType ?? 0),\n geometryResFilePath: String(value.geometryResFilePath ?? \"\"),\n boundingSphere: copyArray(value.boundingSphere, [0, 0, 0, 0]),\n shapeEllipsoidCenter: copyArray(value.shapeEllipsoidCenter, [0, 0, 0]),\n shapeEllipsoidRadius: copyArray(value.shapeEllipsoidRadius, [-1, -1, -1]),\n shapeEllipsoid: {\n center: copyArray(value.shapeEllipsoidCenter, [0, 0, 0]),\n radius: copyArray(value.shapeEllipsoidRadius, [-1, -1, -1])\n },\n opaqueAreas,\n decalAreas: projectAreas(value.decalAreas),\n transparentAreas: projectAreas(value.transparentAreas),\n additiveAreas: projectAreas(value.additiveAreas),\n distortionAreas: projectAreas(value.distortionAreas),\n hullDecalSets: projectHullDecalSets(value.decalSets),\n hullLightSets: projectHullLightSets(value.lightSets),\n spriteSets: projectHullSpriteSets(value.spriteSets),\n spotlightSets: projectHullSpotlightSets(value.spotlightSets),\n planeSets: projectHullPlaneSets(value.planeSets),\n spriteLineSets: projectHullSpriteLineSets(value.spriteLineSets),\n hazeSets: projectHullHazeSets(value.hazeSets),\n banners: projectHullBanners(value.banners),\n bannerSets: projectHullBannerSets(value.bannerSets),\n children: projectHullChildren(value.children),\n childSets: projectHullChildSets(value.childSets),\n instancedMeshes: projectHullInstancedMeshes(value.instancedMeshes),\n animations: projectHullAnimations(value.animations),\n soundEmitters: projectHullSoundEmitters(value.soundEmitters),\n controllers: projectHullControllers(value.controllers),\n boosters: projectHullBooster(value.booster),\n modelRotationCurvePath: String(value.modelRotationCurvePath ?? \"\"),\n modelTranslationCurvePath: String(value.modelTranslationCurvePath ?? \"\"),\n locatorTurrets: (Array.isArray(value.locatorTurrets) ? value.locatorTurrets : []).map(locator => ({\n name: String(locator?.name ?? \"\"),\n transform: copyArray(locator?.transform, identityMatrix())\n })),\n locatorSets,\n meshIndexToOpaqueAreaLookup,\n audioPosition: copyArray(value.audioPosition, [0, 0, 0]),\n defaultPattern: projectPatternProjection(value.defaultPattern?.transformLayer1)\n };\n}\n\nfunction projectHullChildren(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\n redFilePath: String(value.redFilePath ?? \"\"),\n lowestLodVisible: Number(value.lowestLodVisible ?? 0),\n translation: copyArray(value.translation, [0, 0, 0]),\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\n scaling: copyArray(value.scaling, [1, 1, 1]),\n id: Number(value.id ?? -1),\n groupIndex: Number(value.groupIndex ?? -1),\n buildFilter: Number(value.buildFilter ?? 0xffffffff) >>> 0\n }));\n}\n\nfunction projectHullChildSets(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\n // Carbon hashes the group and keeps no name; the catalog retains it so\n // callers can report which groups a hull offers (never emitted in a document).\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(item => ({\n redFilePath: String(item.redFilePath ?? \"\"),\n lowestLodVisible: Number(item.lowestLodVisible ?? 0),\n translation: copyArray(item.translation, [0, 0, 0]),\n rotation: copyArray(item.rotation, [0, 0, 0, 1]),\n scaling: copyArray(item.scaling, [1, 1, 1]),\n buildFilter: Number(item.buildFilter ?? 0xffffffff) >>> 0\n }))\n }));\n}\n\nfunction projectHullAnimations(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\n name: String(value.name ?? \"\"),\n startRotationValue: copyArray(value.startRotationValue, [0, 0, 0, 1]),\n endRotationValue: copyArray(value.endRotationValue, [0, 0, 0, 1]),\n startRotationTime: Number(value.startRotationTime ?? -1),\n endRotationTime: Number(value.endRotationTime ?? -1),\n startTranslationValue: copyArray(value.startTranslationValue, [0, 0, 0]),\n endTranslationValue: copyArray(value.endTranslationValue, [0, 0, 0]),\n startTranslationTime: Number(value.startTranslationTime ?? -1),\n endTranslationTime: Number(value.endTranslationTime ?? -1),\n id: Number(value.id ?? -1),\n startRate: Number(value.startRate ?? -1),\n endRate: Number(value.endRate ?? -1)\n }));\n}\n\nfunction projectHullSoundEmitters(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\n name: String(value.name ?? \"\"),\n prefix: String(value.prefix ?? \"\"),\n position: copyArray(value.position, [0, 0, 0]),\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\n attenuationScalingFactor: Number(value.attenuationScalingFactor ?? 1)\n }));\n}\n\nfunction projectHullControllers(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\n path: String(value.path ?? \"\"),\n buildFilter: Number(value.buildFilter ?? 0xffffffff) >>> 0\n }));\n}\n\nfunction projectHullBooster(value)\n{\n return {\n alwaysOn: value?.alwaysOn === true,\n hasTrails: value?.hasTrails !== false,\n // Per-hull booster overrides (Carbon EveSOFDataHullBooster,\n // EveSOFData.h:1088-1092; read at EveSOFDataMgr.cpp:695-709): empty\n // strings mean the EveChildBoosterSet defaults apply.\n driveName: String(value?.driveName ?? \"\"),\n effectPath: String(value?.effectPath ?? \"\"),\n parameters: projectParameterMap(value?.parameters),\n textures: projectTextureMap(value?.textures),\n items: (Array.isArray(value?.items) ? value.items : []).filter(Boolean).map(item => ({\n transform: copyArray(item.transform, identityMatrix()),\n functionality: copyArray(item.functionality, [0, 1, 1, 1]),\n hasTrail: item.hasTrail !== false,\n atlasIndex0: Number(item.atlasIndex0 ?? 0) >>> 0,\n atlasIndex1: Number(item.atlasIndex1 ?? 0) >>> 0,\n lightScale: Number(item.lightScale ?? 1)\n }))\n };\n}\n\nfunction projectHullInstancedMeshes(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => {\n const bounds = createEmptyBounds();\n const instances = (Array.isArray(value.instances) ? value.instances : []).filter(Boolean).map(item => {\n const scaling = copyArray(item.scaling, [1, 1, 1]);\n const matrix = mat4.fromRotationTranslationScale(\n mat4.create(),\n copyArray(item.rotation, [0, 0, 0, 1]),\n copyArray(item.translation, [0, 0, 0]),\n scaling\n );\n includeTransformedScalingBounds(bounds, matrix, scaling);\n const transform0 = [matrix[0], matrix[4], matrix[8], matrix[12]];\n const transform1 = [matrix[1], matrix[5], matrix[9], matrix[13]];\n const transform2 = [matrix[2], matrix[6], matrix[10], matrix[14]];\n return {\n transform0,\n transform1,\n transform2,\n lastTransform0: transform0.slice(),\n lastTransform1: transform1.slice(),\n lastTransform2: transform2.slice(),\n boneIndex: Number(item.boneIndex ?? 0) | 0\n };\n });\n const textures = new Map();\n for (const texture of Array.isArray(value.textures) ? value.textures : [])\n {\n if (!texture) continue;\n textures.set(String(texture.name ?? \"\"), {\n resFilePath: String(texture.resFilePath ?? \"\")\n });\n }\n return {\n name: String(value.name ?? \"\"),\n lowestLodVisible: Number(value.lowestLodVisible ?? 0),\n displayModifier: Number(value.displayModifier ?? 5),\n geometryResPath: String(value.geometryResPath ?? \"\"),\n shader: String(value.shader ?? \"\"),\n textures: new Map([...textures.entries()].sort(([left], [right]) => left.localeCompare(right))),\n instances,\n bounds: finalizeBounds(bounds)\n };\n });\n}\n\nfunction createEmptyBounds()\n{\n return {\n min: [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY],\n max: [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n populated: false\n };\n}\n\n/** Mirrors Carbon's authored AABB[-scaling,+scaling] transform projection. */\nfunction includeTransformedScalingBounds(bounds, matrix, scaling)\n{\n const extent = scaling.map(Math.abs);\n for (const x of [-extent[0], extent[0]])\n {\n for (const y of [-extent[1], extent[1]])\n {\n for (const z of [-extent[2], extent[2]])\n {\n const point = vec3.transformMat4(vec3.create(), [x, y, z], matrix);\n for (let axis = 0; axis < 3; axis++)\n {\n bounds.min[axis] = Math.min(bounds.min[axis], point[axis]);\n bounds.max[axis] = Math.max(bounds.max[axis], point[axis]);\n }\n bounds.populated = true;\n }\n }\n }\n}\n\nfunction finalizeBounds(bounds)\n{\n return bounds.populated\n ? { min: bounds.min, max: bounds.max }\n : { min: [0, 0, 0], max: [0, 0, 0] };\n}\n\nfunction projectHullBanners(values)\n{\n const groups = new Map();\n let reference = 0;\n for (const value of Array.isArray(values) ? values : [])\n {\n if (!value) continue;\n const usage = Number(value.usage ?? 3);\n if (!groups.has(usage)) groups.set(usage, { usage, items: [] });\n const light = value.lightOverride ?? {};\n groups.get(usage).items.push({\n item: projectBannerItem(value, reference++),\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\n bannerLight: {\n radiusMultiplier: Number(light.radiusMultiplier ?? 1),\n brightness: Number(light.brightness ?? 1),\n innerRadiusMultiplier: Number(light.innerRadiusMultiplier ?? 0.3),\n noiseAmplitude: Number(light.noiseAmplitude ?? 0),\n noiseFrequency: Number(light.noiseFrequency ?? 1),\n noiseOctaves: Number(light.noiceOctaves ?? light.noiseOctaves ?? 1),\n saturation: Number(light.saturation ?? 1)\n }\n });\n }\n return [...groups.values()];\n}\n\nfunction projectHullBannerSets(values)\n{\n const result = [];\n let reference = 0;\n for (const value of Array.isArray(values) ? values : [])\n {\n if (!value) continue;\n const groups = new Map();\n for (const banner of Array.isArray(value.banners) ? value.banners : [])\n {\n if (!banner) continue;\n const usage = Number(banner.usage ?? 3);\n if (!groups.has(usage)) groups.set(usage, []);\n groups.get(usage).push({\n item: projectBannerItem(banner, reference++),\n light: projectPointLightAttachment(banner.light)\n });\n }\n result.push({\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\n bannerTypes: new Map([...groups.entries()].sort(([left], [right]) => left - right))\n });\n }\n return result;\n}\n\nfunction projectBannerItem(value, reference)\n{\n return {\n position: copyArray(value.position, [0, 0, 0]),\n scaling: copyArray(value.scaling, [1, 1, 1]),\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\n angleX: Number(value.angleX ?? 0),\n angleY: Number(value.angleY ?? 0),\n bone: Number(value.boneIndex ?? -1),\n reference\n };\n}\n\nfunction projectHullHazeSets(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\n hazeType: Number(value.hazeType ?? 0),\n skinned: value.skinned === true,\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(item => ({\n colorType: Number(item.colorType ?? 0),\n boneIndex: Number(item.boneIndex ?? -1),\n position: copyArray(item.position, [0, 0, 0]),\n scaling: copyArray(item.scaling, [1, 1, 1]),\n rotation: copyArray(item.rotation, [0, 0, 0, 1]),\n hazeBrightness: Number(item.hazeBrightness ?? 1),\n hazeFalloff: Number(item.hazeFalloff ?? 6),\n sourceBrightness: Number(item.sourceBrightness ?? 2),\n sourceSize: Number(item.sourceSize ?? 0.2),\n boosterGainInfluence: item.boosterGainInfluence === true,\n saturation: Number(item.saturation ?? 1),\n lights: (Array.isArray(item.lights) ? item.lights : []).filter(Boolean).map(projectPointLightAttachment)\n }))\n }));\n}\n\nfunction projectHullSpriteLineSets(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\n skinned: value.skinned === true,\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(item => ({\n blinkPhaseShift: Number(item.blinkPhaseShift ?? 0),\n blinkPhase: Number(item.blinkPhase ?? 0),\n blinkRate: Number(item.blinkRate ?? 0.1),\n boneIndex: Number(item.boneIndex ?? 0),\n falloff: Number(item.falloff ?? 0),\n maxScale: Number(item.maxScale ?? 10),\n minScale: Number(item.minScale ?? 1),\n position: copyArray(item.position, [0, 0, 0]),\n scaling: copyArray(item.scaling, [1, 1, 1]),\n rotation: copyArray(item.rotation, [0, 0, 0, 1]),\n spacing: Number(item.spacing ?? 1),\n isCircle: item.isCircle === true,\n intensity: Number(item.intensity ?? 1),\n saturation: Number(item.saturation ?? 1),\n colorType: Number(item.colorType ?? 0),\n light: projectPointLightAttachment(item.light)\n }))\n }));\n}\n\nfunction projectHullPlaneSets(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\n layer1MapResPath: String(value.layer1MapResPath ?? \"\"),\n layer2MapResPath: String(value.layer2MapResPath ?? \"\"),\n maskMapResPath: String(value.maskMapResPath ?? \"\"),\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\n atlasSize: Number(value.atlasSize ?? 1) >>> 0,\n atlasAspectRatio: copyArray(value.atlasAspectRatio, [1, 1]),\n skinned: value.skinned === true,\n usage: Number(value.usage ?? 0),\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(item => ({\n boneIndex: Number(item.boneIndex ?? -1),\n layer1Scroll: copyArray(item.layer1Scroll, [0, 0, 0, 0]),\n layer1Transform: copyArray(item.layer1Transform, [0, 0, 0, 0]),\n layer2Scroll: copyArray(item.layer2Scroll, [0, 0, 0, 0]),\n layer2Transform: copyArray(item.layer2Transform, [0, 0, 0, 0]),\n position: copyArray(item.position, [0, 0, 0]),\n rotation: copyArray(item.rotation, [0, 0, 0, 1]),\n scaling: copyArray(item.scaling, [1, 1, 1]),\n color: copyArray(item.color, [1, 1, 1, 1]),\n colorType: Number(item.colorType ?? 0),\n intensity: Number(item.intensity ?? 1),\n groupIndex: Number(item.groupIndex ?? -1),\n maskMapAtlasIndex: Number(item.maskMapAtlasIndex ?? 0),\n rate: Number(item.blinkRate ?? 1),\n phase: Number(item.blinkPhase ?? 0),\n dutyCycle: Number(item.dutyCycle ?? 1),\n blinkMode: Number(item.blinkMode ?? 0),\n saturation: Number(item.saturation ?? 1),\n lights: (Array.isArray(item.lights) ? item.lights : []).filter(Boolean).map(projectPointLightAttachment)\n }))\n }));\n}\n\nfunction projectHullSpotlightSets(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\n skinned: value.skinned === true,\n zOffset: Number(value.zOffset ?? 0),\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\n coneTextureResPath: String(value.coneTextureResPath ?? \"\"),\n glowTextureResPath: String(value.glowTextureResPath ?? \"\"),\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(item => ({\n boneIndex: Number(item.boneIndex ?? 0),\n boosterGainInfluence: item.boosterGainInfluence === true,\n colorType: Number(item.colorType ?? 12),\n spriteScale: copyArray(item.spriteScale, [1, 1, 1]),\n transform: copyArray(item.transform, identityMatrix()),\n groupIndex: Number(item.groupIndex ?? -1),\n coneIntensity: Number(item.coneIntensity ?? 0),\n flareIntensity: Number(item.flareIntensity ?? 0),\n spriteIntensity: Number(item.spriteIntensity ?? 0),\n saturation: Number(item.saturation ?? 1),\n light: projectSpotLightAttachment(item.light)\n }))\n }));\n}\n\nfunction projectSpotLightAttachment(value)\n{\n if (!value) return null;\n return {\n translation: copyArray(value.translation, [0, 0, 0]),\n saturation: Number(value.saturation ?? 1),\n intensity: Number(value.intensity ?? 1),\n innerAngleMultiplier: Number(value.innerAngleMultiplier ?? 0.5),\n outerAngleMultiplier: Number(value.outerAngleMultiplier ?? 1),\n innerScaleMultiplier: Number(value.innerScaleMultiplier ?? 1),\n outerScaleMultiplier: Number(value.outerScaleMultiplier ?? 1),\n noiseAmplitude: Number(value.noiseAmplitude ?? 0),\n noiseFrequency: Number(value.noiseFrequency ?? 1),\n noiseOctaves: Number(value.noiseOctaves ?? 1),\n lightProfilePath: String(value.lightProfilePath ?? \"\")\n };\n}\n\nfunction projectHullSpriteSets(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\n skinned: value.skinned === true,\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(item => ({\n position: copyArray(item.position, [0, 0, 0]),\n blinkRate: Number(item.blinkRate ?? 0.1),\n blinkPhase: Number(item.blinkPhase ?? 0),\n minScale: Number(item.minScale ?? 1),\n maxScale: Number(item.maxScale ?? 10),\n falloff: Number(item.falloff ?? 0),\n intensity: Number(item.intensity ?? 1),\n saturation: Number(item.saturation ?? 1),\n boneIndex: Number(item.boneIndex ?? 0),\n colorType: Number(item.colorType ?? 0),\n light: projectPointLightAttachment(item.light)\n }))\n }));\n}\n\nfunction projectPointLightAttachment(value)\n{\n if (!value) return null;\n return {\n translation: copyArray(value.translation, [0, 0, 0]),\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\n saturation: Number(value.saturation ?? 1),\n intensity: Number(value.intensity ?? 1),\n innerScaleMultiplier: Number(value.innerScaleMultiplier ?? 1),\n outerScaleMultiplier: Number(value.outerScaleMultiplier ?? 2),\n noiseAmplitude: Number(value.noiseAmplitude ?? 0),\n noiseFrequency: Number(value.noiseFrequency ?? 1),\n noiseOctaves: Number(value.noiseOctaves ?? 1),\n lightProfilePath: String(value.lightProfilePath ?? \"\")\n };\n}\n\nfunction projectHullLightSets(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(projectHullLightSetItem)\n }));\n}\n\nfunction projectHullLightSetItem(value)\n{\n return {\n type: getHullLightType(value),\n position: copyArray(value.position, [0, 0, 0]),\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\n radius: Number(value.radius ?? 0),\n innerRadius: Number(value.innerRadius ?? 0),\n brightness: Number(value.brightness ?? 0),\n noiseAmplitude: Number(value.noiseAmplitude ?? 0),\n noiseFrequency: Number(value.noiseFrequency ?? 1),\n noiseOctaves: Number(value.noiseOctaves ?? 1),\n lightColor: Number(value.lightColor ?? 0),\n texturePath: String(value.texturePath ?? \"\"),\n innerAngle: Number(value.innerAngle ?? 0),\n outerAngle: Number(value.outerAngle ?? 0),\n boneIndex: Number(value.boneIndex ?? -1),\n flags: Number(value.flags ?? 1)\n };\n}\n\nfunction getHullLightType(value)\n{\n if (Number.isInteger(value?.type)) return Number(value.type);\n const className = getStableClassName(value);\n if (className.endsWith(\"TexturedPointLight\")) return 1;\n if (className.endsWith(\"SpotLight\")) return 2;\n return 0;\n}\n\nfunction getStableClassName(value)\n{\n return String(CjsSchema.getClassName(value?.constructor) ?? value?._sourceClassName ?? \"\");\n}\n\nfunction projectLocatorSet(value, target, state)\n{\n if (!value) return;\n if (Array.isArray(value.locators))\n {\n const name = String(value.name ?? \"\");\n for (const locator of value.locators)\n {\n if (!target.has(name)) target.set(name, []);\n const locators = target.get(name);\n locators.push({\n position: copyArray(locator?.position, [0, 0, 0]),\n rotation: copyArray(locator?.rotation, [0, 0, 0, 1]),\n scaling: copyArray(locator?.scaling, [1, 1, 1]),\n boneIndex: Number(locator?.boneIndex ?? -1),\n uniqueID: state.uniqueID++\n });\n }\n return;\n }\n for (const child of Array.isArray(value.locatorSets) ? value.locatorSets : [])\n {\n projectLocatorSet(child, target, state);\n }\n}\n\nfunction projectHullDecalSets(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(projectHullDecalSetItem)\n }));\n}\n\nfunction projectHullDecalSetItem(value)\n{\n return {\n usage: Number(value.usage ?? 0),\n position: copyArray(value.position, [0, 0, 0]),\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\n scaling: copyArray(value.scaling, [1, 1, 1]),\n boneIndex: Number(value.boneIndex ?? -1),\n meshIndex: Number(value.meshIndex ?? -1),\n glowColorType: Number(value.glowColorType ?? 0),\n logoType: Number(value.logoType ?? 0),\n textures: projectTextureMap(value.textures),\n parameters: projectParameterMap(value.parameters),\n indexBuffers: projectDecalIndexBuffers(value.indexBuffers),\n multiHullIndexBuffers: (Array.isArray(value.multiHullIndexBuffers) ? value.multiHullIndexBuffers : [])\n .filter(Boolean)\n .map(item => ({\n combinedGeometryResPath: String(item.combinedGeometryResPath ?? \"\"),\n indexBuffers: projectDecalIndexBuffers(item.indexBuffers)\n }))\n };\n}\n\nfunction projectDecalIndexBuffers(values)\n{\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => {\n return Array.from(value.indexBuffer ?? [], index => Number(index) >>> 0);\n });\n}\n\nfunction projectFaction(value)\n{\n const logos = LOGO_KEYS.map(key => ({\n textures: projectTextureMap(selectNamedSlot(value.logoSet, key, \"logos\")?.textures)\n }));\n const visibilityGroups = (Array.isArray(value.visibilityGroupSet?.visibilityGroups)\n ? value.visibilityGroupSet.visibilityGroups\n : []).map(item => String(item?.str ?? \"\"));\n const visibilityData = new Set(visibilityGroups.map(name => fnv1(name)));\n const spotlightSetsColors = new Map();\n for (const set of Array.isArray(value.spotlightSets) ? value.spotlightSets : [])\n {\n if (!set) continue;\n spotlightSetsColors.set(Number(set.groupIndex ?? -1), {\n coneColor: copyArray(set.coneColor, [0, 0, 0, 0]),\n flareColor: copyArray(set.flareColor, [0, 0, 0, 0]),\n spriteColor: copyArray(set.spriteColor, [0, 0, 0, 0])\n });\n }\n const planeSetsColors = new Map();\n for (const set of Array.isArray(value.planeSets) ? value.planeSets : [])\n {\n if (!set) continue;\n planeSetsColors.set(Number(set.groupIndex ?? -1), {\n color: copyArray(set.color, [0, 0, 0, 0])\n });\n }\n const factionChildren = new Map();\n for (const child of Array.isArray(value.children) ? value.children : [])\n {\n if (!child) continue;\n factionChildren.set(Number(child.groupIndex ?? -1), {\n groupIndex: Number(child.groupIndex ?? -1),\n name: String(child.name ?? \"\"),\n isVisible: child.isVisible === true\n });\n }\n return {\n ...value,\n colorData: {\n colors: value.colorSet\n ? FACTION_COLOR_KEYS.map((key, index) =>\n {\n const color = selectNamedSlot(value.colorSet, key, \"colors\");\n return isVector4(color) ? copyVector(color) : factionColorDefault(index);\n })\n : FACTION_COLOR_KEYS.map(() => [0, 0, 0, 0])\n },\n areaMaterials: projectAreaMaterials(value.areaTypes),\n visibilityGroups,\n logoSetData: { logos },\n visibilityData,\n spotlightSetsColors,\n planeSetsColors,\n factionChildren,\n materialUsageList: [\n value.materialUsageMtl1 ?? 0,\n value.materialUsageMtl2 ?? 1,\n value.materialUsageMtl3 ?? 2,\n value.materialUsageMtl4 ?? 3\n ],\n defaultPatternInfo: projectPatternLayer(value.defaultPattern, null),\n defaultPatternLayer1MaterialName: String(value.defaultPatternLayer1MaterialName ?? \"\"),\n defaultPatternLayer2MaterialName: String(value.defaultPatternLayer2MaterialName ?? \"\"),\n defaultPatternName: String(value.defaultPatternName ?? \"\")\n };\n}\n\nfunction projectRace(value)\n{\n const areaMaterials = createAreaMaterialData();\n areaMaterials.glowColor.set(\"0:GeneralHeatGlowColor\", Number(value.hullPrimaryHeatColorType ?? 0));\n areaMaterials.glowColor.set(\"3:GeneralHeatGlowColor\", Number(value.hullReactorHeatColorType ?? 0));\n return {\n ...value,\n areaMaterials,\n boosters: projectRaceBooster(value.booster),\n damage: projectRaceDamage(value.damage)\n };\n}\n\nfunction projectRaceBooster(value)\n{\n return {\n scale: copyArray(value?.scale, [1, 1, 1, 1]),\n glowScale: Number(value?.glowScale ?? 1),\n glowColor: copyArray(value?.glowColor, [0, 0, 0, 0]),\n warpGlowColor: copyArray(value?.warpGlowColor, [0, 0, 0, 0]),\n symHaloScale: Number(value?.symHaloScale ?? 1),\n haloScaleX: Number(value?.haloScaleX ?? 1),\n haloScaleY: Number(value?.haloScaleY ?? 1),\n haloColor: copyArray(value?.haloColor, [0, 0, 0, 0]),\n warpHaloColor: copyArray(value?.warpHaloColor ?? value?.warpHalpColor, [0, 0, 0, 0]),\n trailColor: copyArray(value?.trailColor, [0, 0, 0, 0]),\n trailSize: copyArray(value?.trailSize, [0, 0, 0, 0]),\n shape0: projectRaceBoosterShape(value?.shape0),\n shape1: projectRaceBoosterShape(value?.shape1),\n warpShape0: projectRaceBoosterShape(value?.warpShape0),\n warpShape1: projectRaceBoosterShape(value?.warpShape1),\n shapeAtlasResPath: String(value?.shapeAtlasResPath ?? \"\"),\n gradient0ResPath: String(value?.gradient0ResPath ?? \"\"),\n gradient1ResPath: String(value?.gradient1ResPath ?? \"\"),\n shapeAtlasHeight: Number(value?.shapeAtlasHeight ?? 0) >>> 0,\n shapeAtlasCount: Number(value?.shapeAtlasCount ?? 0) >>> 0,\n lightOffset: Number(value?.lightOffset ?? 0),\n lightRadius: Number(value?.lightRadius ?? 0),\n lightWarpRadius: Number(value?.lightWarpRadius ?? 0),\n lightFlickerAmplitude: Number(value?.lightFlickerAmplitude ?? 0),\n lightFlickerFrequency: Number(value?.lightFlickerFrequency ?? 0),\n lightColor: copyArray(value?.lightColor, [0, 0, 0, 0]),\n lightWarpColor: copyArray(value?.lightWarpColor, [0, 0, 0, 0])\n };\n}\n\nfunction projectRaceBoosterShape(value)\n{\n return {\n noiseFunction: Number(value?.noiseFunction ?? 0),\n noiseSpeed: Number(value?.noiseSpeed ?? 0),\n noiseAmplitureStart: copyArray(value?.noiseAmplitureStart, [0, 0, 0, 0]),\n noiseAmplitureEnd: copyArray(value?.noiseAmplitureEnd, [0, 0, 0, 0]),\n noiseFrequency: copyArray(value?.noiseFrequency, [0, 0, 0, 0]),\n color: copyArray(value?.color, [0, 0, 0, 0])\n };\n}\n\nfunction projectRaceDamage(value)\n{\n return {\n armorDamageParameters: projectParameterMap(value?.armorImpactParameters),\n armorDamageTextures: projectTextureMap(value?.armorImpactTextures),\n shieldDamageParameters: projectParameterMap(value?.shieldImpactParameters),\n shieldDamageTextures: projectTextureMap(value?.shieldImpactTextures)\n };\n}\n\nfunction projectParameterMap(values)\n{\n const result = new Map();\n for (const value of Array.isArray(values) ? values : [])\n {\n if (value) result.set(String(value.name ?? \"\"), flattenParameterValue(value));\n }\n return new Map([...result].sort(([a], [b]) => a.localeCompare(b)));\n}\n\nfunction projectTextureMap(values)\n{\n const result = new Map();\n for (const value of Array.isArray(values) ? values : [])\n {\n if (value) result.set(String(value.name ?? \"\"), { resFilePath: String(value.resFilePath ?? \"\") });\n }\n return new Map([...result].sort(([a], [b]) => a.localeCompare(b)));\n}\n\nfunction projectMaterial(value)\n{\n const parameters = new Map();\n for (const parameter of Array.isArray(value.parameters) ? value.parameters : [])\n {\n // Carbon copies the Vector4 by value into the map through the virtual\n // GetValue (EveSOFDataMgr.cpp:1845-1855); do not alias the authored array.\n if (parameter) parameters.set(String(parameter.name), flattenParameterValue(parameter));\n }\n return { ...value, parameters };\n}\n\nfunction projectPattern(value)\n{\n const oldApplicationData = new Map();\n const applicationData = new Map();\n // Carbon copies the layer struct BY VALUE into every application pair\n // (EveSOFDataMgr.cpp:1538-1570 push_back(make_pair(pld, ppd))), so each\n // hull application owns an independent layer record.\n for (const hull of Array.isArray(value.projections) ? value.projections : [])\n {\n oldApplicationData.set(String(hull?.name ?? \"\"), {\n layerAndProjection: [\n { layer: projectPatternLayer(value.layer1, null), projection: projectPatternProjection(hull?.transformLayer1) },\n { layer: projectPatternLayer(value.layer2, null), projection: projectPatternProjection(hull?.transformLayer2) }\n ]\n });\n }\n for (const group of Array.isArray(value.applicationGroups) ? value.applicationGroups : [])\n {\n for (const hull of Array.isArray(group?.projections) ? group.projections : [])\n {\n const layerAndProjection = [];\n if (value.layer1 && group.layer1Properties && hull?.transformLayer1)\n {\n layerAndProjection.push({\n layer: projectPatternLayer(value.layer1, group.layer1Properties),\n projection: projectPatternProjection(hull.transformLayer1)\n });\n }\n if (value.layer2 && group.layer2Properties && hull?.transformLayer2)\n {\n layerAndProjection.push({\n layer: projectPatternLayer(value.layer2, group.layer2Properties),\n projection: projectPatternProjection(hull.transformLayer2)\n });\n }\n applicationData.set(String(hull?.name ?? \"\"), { layerAndProjection });\n }\n }\n return { ...value, oldApplicationData, applicationData };\n}\n\nfunction projectPatternLayer(layer, properties)\n{\n const applicableAreas = new Map(Array.from({ length: 11 }, (_, index) => [index, true]));\n if (properties)\n {\n const keys = [\"Primary\", \"Glass\", \"Sails\", \"Reactor\", \"Darkhull\", null, \"Rock\", \"Monument\", \"Ornament\", \"SimplePrimary\", null];\n keys.forEach((key, index) => {\n applicableAreas.set(index, key ? properties[key] !== false : true);\n });\n }\n if (!layer)\n {\n return {\n textureName: \"\",\n textureResFilePath: \"\",\n projectionAddressModeU: 1,\n projectionAddressModeV: 1,\n materialSourceID: 0,\n materialTargets: [0, 0, 0, 0],\n applicableAreas\n };\n }\n const source = properties ?? layer;\n return {\n textureName: String(layer.textureName ?? \"\"),\n textureResFilePath: String(layer.textureResFilePath ?? \"\"),\n projectionAddressModeU: projectAddressMode(source.projectionTypeU),\n projectionAddressModeV: projectAddressMode(source.projectionTypeV),\n materialSourceID: Number(layer.materialSource ?? 0),\n materialTargets: [source.isTargetMtl1, source.isTargetMtl2, source.isTargetMtl3, source.isTargetMtl4]\n .map(value => value === false ? 0 : 1),\n applicableAreas\n };\n}\n\nfunction projectPatternProjection(value)\n{\n return value ? {\n enabled: true,\n position: copyArray(value.position, [0, 0, 0]),\n scaling: copyArray(value.scaling, [1, 1, 1]),\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\n isMirrored: value.isMirrored === true\n } : {\n enabled: false,\n position: [0, 0, 0],\n scaling: [1, 1, 1],\n rotation: [0, 0, 0, 1],\n isMirrored: false\n };\n}\n\nfunction projectAddressMode(value)\n{\n if (Number(value) === 1) return 3;\n if (Number(value) === 2) return 4;\n return 1;\n}\n\nfunction projectLayout(value)\n{\n return {\n name: String(value?.name ?? \"\"),\n seed: Number(value?.seed ?? 1337) >>> 0,\n scrambleSeed: value?.randomizeSeedOnLoad === true,\n placements: projectExtensionPlacements(value?.placements),\n depletionCounters: projectDepletionCounters(value?.depletionCounters)\n };\n}\n\nfunction projectExtensionPlacements(values)\n{\n return (Array.isArray(values) ? values : [])\n .filter(Boolean)\n .map(projectExtensionPlacement);\n}\n\nfunction projectExtensionPlacement(value)\n{\n if (isExtensionPlacementGroup(value))\n {\n return {\n name: String(value.name ?? \"\"),\n enabled: value.enabled !== false,\n isAGroup: true,\n depletionCounters: projectDepletionCounters(value.depletionCounters),\n placements: projectExtensionPlacements(value.placements),\n placementConditions: projectDistributionConditions(value.distributionConditions)\n };\n }\n\n return {\n name: String(value.name ?? \"\"),\n enabled: value.enabled !== false,\n offset: copyArray(value.offset, [0, 0, 0]),\n locatorSetName: String(value.locatorSetName ?? \"\"),\n descriptor: projectDnaDescriptor(value.descriptor),\n isInstanced: value.isInstanced !== false,\n isShared: value.isShared === true,\n extendsBoundingSphere: value.extendsBoundingSphere !== false,\n extendsShieldEllipsoid: value.extendsShieldEllipsoid !== false,\n hasDistribution: value.distribution != null,\n distribution: projectPlacementDistribution(value.distribution),\n placementConditions: projectDistributionConditions(value.distributionConditions),\n isAGroup: false,\n depletionCounters: [],\n placements: []\n };\n}\n\nfunction isExtensionPlacementGroup(value)\n{\n const className = getStableClassName(value);\n // Carbon's unpacker currently casts Bucket through its concrete Placement\n // lineage, so it does not recurse into Bucket. JavaScript deliberately keeps\n // Bucket group-like because the authored type owns `placements`; retain this\n // compatibility repair until authored data or a native fixture proves the\n // native leaf behavior is required.\n if (className === \"EveSOFDataHullExtensionBucket\") return true;\n if (className === \"EveSOFDataHullExtensionPlacementGroup\") return true;\n if (className === \"EveSOFDataHullExtensionPlacement\") return false;\n return Array.isArray(value?.placements)\n && !Object.hasOwn(value, \"descriptor\")\n && !Object.hasOwn(value, \"locatorSetName\");\n}\n\nfunction projectDnaDescriptor(value)\n{\n return {\n hull: String(value?.hull ?? \"\"),\n faction: String(value?.faction ?? \"\"),\n race: String(value?.race ?? \"\"),\n pattern: String(value?.pattern ?? \"\"),\n material1: String(value?.material1 ?? \"\"),\n material2: String(value?.material2 ?? \"\"),\n material3: String(value?.material3 ?? \"\"),\n material4: String(value?.material4 ?? \"\"),\n layout: String(value?.layout ?? \"\"),\n seed: String(value?.seed ?? \"\")\n };\n}\n\nfunction projectPlacementDistribution(value)\n{\n return {\n completeness: Number(value?.completeness ?? 1),\n placementBias: copyArray(value?.placementBias, [0, 0, 0]),\n centerBias: Number(value?.centerBias ?? 0),\n cap: Number(value?.cap ?? 0) | 0,\n randomRotationStepSizeYPR: copyArray(\n value?.randomRotationStepSizeYPR,\n [0.008802, 0.0086497, 0.0086497, 0.9998864]\n ),\n randomRotationMaxSteps: copyArray(value?.randomRotationMaxSteps, [0, 0, 0]),\n randomScaleMin: copyArray(value?.randomScaleMin, [1, 1, 1]),\n randomScaleMax: copyArray(value?.randomScaleMax, [1, 1, 1]),\n uniformScaling: value?.uniformScale !== false,\n occupyLocators: value?.occupyLocators !== false\n };\n}\n\nfunction projectDistributionConditions(values)\n{\n return (Array.isArray(values) ? values : [])\n .filter(Boolean)\n .map(projectDistributionCondition);\n}\n\nfunction projectDistributionCondition(value)\n{\n const className = getStableClassName(value);\n const result = {\n distributionType: EveSOFDataMgr.DistributionMethod.RANDOM_INCLUCION,\n seed: 0,\n spaceObjectParentDescriptor: projectDnaDescriptor(null),\n depletionCounters: [],\n triggerChance: 0,\n displayModifier: 0\n };\n\n if (className.endsWith(\"ParentMatch\") || Object.hasOwn(value, \"parentDescriptor\"))\n {\n result.distributionType = EveSOFDataMgr.DistributionMethod.PARENT_MATCH;\n result.spaceObjectParentDescriptor = projectDnaDescriptor(value.parentDescriptor);\n }\n else if (className.endsWith(\"DepletionCounter\") || Object.hasOwn(value, \"depletionCounters\"))\n {\n result.distributionType = EveSOFDataMgr.DistributionMethod.DEPLETION_COUNTER;\n result.depletionCounters = projectDepletionCounters(value.depletionCounters);\n }\n else if (className.endsWith(\"MapGraphicSettings\") || Object.hasOwn(value, \"displayFilter\"))\n {\n result.distributionType = EveSOFDataMgr.DistributionMethod.GRAPHIC_SETTING_MAP;\n result.displayModifier = Number(value.displayFilter ?? 5) | 0;\n }\n else if (className.endsWith(\"RandomChance\") || Object.hasOwn(value, \"chanceOfUsage\"))\n {\n result.triggerChance = Number(value.chanceOfUsage ?? 1);\n }\n\n return result;\n}\n\nfunction projectDepletionCounters(values)\n{\n return (Array.isArray(values) ? values : [])\n .filter(Boolean)\n .map(value => ({\n counterName: String(value.name ?? value.counterName ?? \"\"),\n counterValue: Number(value.value ?? value.counterValue ?? 1) | 0\n }));\n}\n\nfunction createGenericData(value)\n{\n if (!value)\n {\n return {\n materialPrefixes: [],\n patternMaterialPrefixes: [],\n variants: new Map(),\n areaShaderData: new Map(),\n decalShaderData: new Map(),\n decalMinScreenSize: [0, 0, 0, 0, 0, 0, 0],\n damage: projectGenericDamage(null),\n hullDamage: projectGenericHullDamage(null),\n swarmBehavior: projectSwarmBehavior(null)\n };\n }\n\n const materialPrefixes = (Array.isArray(value.materialPrefixes) ? value.materialPrefixes : [])\n .map(item => typeof item === \"string\" ? item : String(item?.str ?? \"\"));\n const patternMaterialPrefixes = (Array.isArray(value.patternMaterialPrefixes) ? value.patternMaterialPrefixes : [])\n .map(item => typeof item === \"string\" ? item : String(item?.str ?? \"\"));\n const areaShaderData = new Map();\n for (const shader of Array.isArray(value.areaShaders) ? value.areaShaders : [])\n {\n if (shader) areaShaderData.set(String(shader.shader), projectGenericShader(shader));\n }\n const decalShaderData = new Map();\n for (const shader of Array.isArray(value.decalShaders) ? value.decalShaders : [])\n {\n if (shader) decalShaderData.set(String(shader.shader), {\n parameters: (Array.isArray(shader.parameters) ? shader.parameters : [])\n .map(item => typeof item === \"string\" ? item : String(item?.str ?? \"\")),\n defaultTextures: projectTextureMap(shader.defaultTextures),\n parentTextures: (Array.isArray(shader.parentTextures) ? shader.parentTextures : [])\n .map(item => typeof item === \"string\" ? item : String(item?.str ?? \"\")),\n additive: shader.additive === true\n });\n }\n const variants = new Map();\n for (const variant of Array.isArray(value.variants) ? value.variants : [])\n {\n if (!variant?.hullArea) continue;\n variants.set(String(variant.name), {\n ...variant,\n hullAreaData: projectHullArea(variant.hullArea)\n });\n }\n const categoryData = new Map();\n for (const category of Array.isArray(value.hullCategoriesData) ? value.hullCategoriesData : [])\n {\n if (category?.name) categoryData.set(String(category.name), Number(category.reflectionMode ?? 0));\n }\n return {\n ...value,\n materialPrefixes,\n patternMaterialPrefixes,\n areaShaderData,\n decalShaderData,\n categoryData,\n decalMinScreenSize: [\n Number(value.decalMinScreenSizeSTANDARD ?? 0),\n Number(value.decalMinScreenSizeKILLCOUNTER ?? 0),\n Number(value.decalMinScreenSizeHOLE ?? 0),\n Number(value.decalMinScreenSizeCYLINDRICAL ?? 0),\n Number(value.decalMinScreenSizeGLOWCYLINDRICAL ?? 0),\n Number(value.decalMinScreenSizeGLOWSTANDARD ?? 0),\n Number(value.decalMinScreenSizeLOGO ?? 0)\n ],\n genericWreckMaterialData: projectSingleAreaMaterial(value.genericWreckMaterial, 5),\n damage: projectGenericDamage(value.damage),\n hullDamage: projectGenericHullDamage(value.hullDamage),\n swarmBehavior: projectSwarmBehavior(value.swarm),\n variants,\n bannerShader: value.bannerShader ? projectGenericShader(value.bannerShader) : null\n };\n}\n\nfunction projectSwarmBehavior(value)\n{\n return {\n mass: 1,\n speedMultiplier: Number(value?.speedMultiplier ?? 1.1),\n speedMinimum: Number(value?.speedMinimum ?? 10),\n agility: 2,\n maxDistance0: Number(value?.maxDistance0 ?? 500),\n maxDistance1: Number(value?.maxDistance1 ?? 125),\n timeMultiplier: 1,\n maxTime: Number(value?.maxTime ?? 0.2),\n speed0: Number(value?.speed0 ?? 700),\n speed1: Number(value?.speed1 ?? 1000),\n weightCohesion: Number(value?.weightCohesion ?? 0.1),\n weightSeparation: Number(value?.weightSeparation ?? 0.1),\n separationDistance: Number(value?.separationDistance ?? 250),\n weightAlign: Number(value?.weightAlign ?? 50),\n weightWander: Number(value?.weightWander ?? 0.33),\n wanderFluctuation: Number(value?.wanderFluctuation ?? 0.05),\n wanderDistance: Number(value?.wanderDistance ?? 100),\n wanderRadius: Number(value?.wanderRadius ?? 80),\n weightAnchor: Number(value?.weightAnchor ?? 0.5),\n anchorRadius0: Number(value?.anchorRadius0 ?? 75),\n anchorRadius1: Number(value?.anchorRadius1 ?? 250),\n weightDecelerate: Number(value?.weightDeceleration ?? 0.1),\n maxDeceleration: Number(value?.maxDeceleration ?? 200),\n weightFormation: Number(value?.weightFormation ?? 1),\n formationDistance: Number(value?.formationDistance ?? 50)\n };\n}\n\nfunction projectGenericDamage(value)\n{\n if (!value)\n {\n value = {};\n }\n return {\n flickerPerlinSpeed: Number(value.flickerPerlinSpeed ?? 0),\n flickerPerlinAlpha: Number(value.flickerPerlinAlpha ?? 0),\n flickerPerlinBeta: Number(value.flickerPerlinBeta ?? 0),\n flickerPerlinN: Number(value.flickerPerlinN ?? 0),\n armorParticleRate: Number(value.armorParticleRate ?? 0),\n armorParticleAngle: Number(value.armorParticleAngle ?? 0),\n armorParticleMinMaxSpeed: copyArray(value.armorParticleMinMaxSpeed, [0, 0]),\n armorParticleMinMaxLifeTime: copyArray(value.armorParticleMinMaxLifeTime, [0, 0]),\n armorParticleSizes: copyArray(value.armorParticleSizes, [0, 0, 0, 0]),\n armorParticleColors: [\n copyVector(value.armorParticleColor0),\n copyVector(value.armorParticleColor1),\n copyVector(value.armorParticleColor2),\n copyVector(value.armorParticleColor3)\n ],\n armorParticleTextureIndex: Number(value.armorParticleTextureIndex ?? 0),\n armorParticleVelocityStretchRotation: Number(value.armorParticleVelocityStretchRotation ?? 0),\n armorParticleDrag: Number(value.armorParticleDrag ?? 0),\n armorParticleTurbulenceAmplitude: Number(value.armorParticleTurbulenceAmplitude ?? 0),\n armorParticleTurbulenceFrequency: Number(value.armorParticleTurbulenceFrequency ?? 0),\n armorParticleColorMidPoint: Number(value.armorParticleColorMidPoint ?? 0),\n armorShader: String(value.armorShader ?? \"\"),\n shieldShaderEllipsoid: String(value.shieldShaderEllipsoid ?? \"\"),\n shieldShaderHull: String(value.shieldShaderHull ?? \"\"),\n shieldGeometryResFilePath: String(value.shieldGeometryResFilePath ?? \"\")\n };\n}\n\nfunction projectGenericHullDamage(value)\n{\n if (!value)\n {\n value = {};\n }\n return {\n hullParticleRate: Number(value.hullParticleRate ?? 0),\n hullParticleAngle: Number(value.hullParticleAngle ?? 0),\n hullParticleInnerAngle: Number(value.hullParticleInnerAngle ?? 0),\n hullParticleColorMidpoint: Number(value.hullParticleColorMidpoint ?? 0),\n hullParticleMinMaxSpeed: copyArray(value.hullParticleMinMaxSpeed, [0, 0]),\n hullParticleMinMaxLifeTime: copyArray(value.hullParticleMinMaxLifeTime, [0, 0]),\n hullParticleSizes: copyArray(value.hullParticleSizes, [0, 0, 0, 0]),\n hullParticleColors: [\n copyVector(value.hullParticleColor0),\n copyVector(value.hullParticleColor1),\n copyVector(value.hullParticleColor2),\n copyVector(value.hullParticleColor3)\n ],\n hullParticleTextureIndex: Number(value.hullParticleTextureIndex ?? 0),\n hullParticleVelocityStretchRotation: Number(value.hullParticleVelocityStretchRotation ?? 0),\n hullParticleDrag: Number(value.hullParticleDrag ?? 0),\n hullParticleTurbulenceAmplitude: Number(value.hullParticleTurbulenceAmplitude ?? 0),\n hullParticleTurbulenceFrequency: Number(value.hullParticleTurbulenceFrequency ?? 0)\n };\n}\n\nfunction projectAreas(values)\n{\n return (Array.isArray(values) ? values : []).map(projectHullArea);\n}\n\nfunction projectHullArea(value)\n{\n const textures = new Map();\n for (const texture of Array.isArray(value?.textures) ? value.textures : [])\n {\n if (texture) textures.set(String(texture.name), { resFilePath: String(texture.resFilePath ?? \"\") });\n }\n const parameters = new Map();\n for (const parameter of Array.isArray(value?.parameters) ? value.parameters : [])\n {\n if (parameter) parameters.set(String(parameter.name), flattenParameterValue(parameter));\n }\n return {\n index: Number(value?.index ?? 0),\n count: Number(value?.count ?? 1),\n blockedMaterials: Number(value?.blockedMaterials ?? 0),\n shader: String(value?.shader ?? \"\"),\n areaType: Number(value?.areaType ?? 0),\n name: String(value?.name ?? \"\"),\n textures,\n parameters\n };\n}\n\nfunction projectGenericShader(value)\n{\n const defaultTextures = new Map();\n for (const texture of Array.isArray(value.defaultTextures) ? value.defaultTextures : [])\n {\n if (texture) defaultTextures.set(String(texture.name), { resFilePath: String(texture.resFilePath ?? \"\") });\n }\n const defaultParameters = new Map();\n for (const parameter of Array.isArray(value.defaultParameters) ? value.defaultParameters : [])\n {\n if (parameter) defaultParameters.set(String(parameter.name), flattenParameterValue(parameter));\n }\n const parameters = (Array.isArray(value.parameters) ? value.parameters : [])\n .map(item => typeof item === \"string\" ? item : String(item?.str ?? \"\"));\n return {\n shader: String(value.shader ?? \"\"),\n parameters,\n defaultParameters,\n defaultTextures,\n transparencyTextureName: String(value.transparencyTextureName ?? \"\"),\n doGenerateDepthArea: value.doGenerateDepthArea !== false\n };\n}\n\nconst AREA_MATERIAL_KEYS = Object.freeze([\n \"Primary\",\n \"Glass\",\n \"Sails\",\n \"Reactor\",\n \"Darkhull\",\n \"Wreck\",\n \"Rock\",\n \"Monument\",\n \"Ornament\",\n \"SimplePrimary\",\n \"Turret\"\n]);\n\nconst FACTION_COLOR_KEYS = Object.freeze([\n \"Primary\",\n \"Secondary\",\n \"Tertiary\",\n \"Black\",\n \"White\",\n \"Yellow\",\n \"Orange\",\n \"Red\",\n \"Blue\",\n \"Green\",\n \"Cyan\",\n \"Fire\",\n \"Hull\",\n \"Glass\",\n \"Reactor\",\n \"Darkhull\",\n \"Booster\",\n \"Killmark\",\n \"PrimaryLight\",\n \"SecondaryLight\",\n \"TertiaryLight\",\n \"WhiteLight\",\n \"PrimaryHologram\",\n \"SecondaryHologram\",\n \"TertiaryHologram\",\n \"State0\",\n \"State1\",\n \"State2\",\n \"State3\",\n \"StateVulnerable\",\n \"StateInvulnerable\",\n \"PrimaryForcefield\",\n \"SecondaryForcefield\",\n \"PrimaryBanner\",\n \"PrimaryFx\",\n \"SecondaryFx\",\n \"PrimarySpotlight\",\n \"SecondarySpotlight\",\n \"TertiarySpotlight\",\n \"PrimaryBillboard\",\n \"PrimaryWarpFx\",\n \"PrimaryAttackFX\",\n \"PrimarySiegeFX\",\n \"PrimaryDockedFX\"\n]);\n\nfunction factionColorDefault(index)\n{\n switch (index)\n {\n case 39: return [2.5, 2.5, 2.5, 2.5];\n case 40: return [1, 99 / 255, 51 / 255, 1];\n case 41: return [1, 24 / 255, 11 / 255, 1];\n case 42: return [1, 94 / 255, 45 / 255, 1];\n case 43: return [76 / 255, 130 / 255, 226 / 255, 1];\n default: return [0, 0, 0, 1];\n }\n}\n\nfunction createAreaMaterialData()\n{\n return {\n materialNames: new Map(),\n glowColor: new Map()\n };\n}\n\nfunction projectAreaMaterials(areaTypes)\n{\n const result = createAreaMaterialData();\n if (!areaTypes) return result;\n AREA_MATERIAL_KEYS.forEach((key, areaType) =>\n mergeAreaMaterial(result, selectAreaMaterial(areaTypes, key), areaType));\n return result;\n}\n\nfunction selectAreaMaterial(areaTypes, key)\n{\n return selectNamedSlot(areaTypes, key, \"materials\");\n}\n\n/**\n * Carbon's generated records declare one property per slot (EveSOFDataArea's\n * AreaType properties, EveSOFDataFactionColorSet's ColorType properties), but\n * the decoded data.black record carries those slots as a lowercase-keyed child\n * map instead. Both shapes reach these projections, and reading only the\n * declared property names silently produced empty area materials and\n * all-black faction colors.\n */\nfunction selectNamedSlot(container, key, mapName)\n{\n if (!container) return null;\n if (container[key] !== undefined && container[key] !== null) return container[key];\n const slots = container[mapName];\n if (!slots) return null;\n const lowercase = key.toLowerCase();\n const direct = slots instanceof Map ? slots.get(lowercase) ?? slots.get(key) : slots[lowercase] ?? slots[key];\n if (direct !== undefined && direct !== null) return direct;\n\n // CASE-INSENSITIVE AGAINST THE SLOT KEYS. Carbon indexes a colour set by\n // the type enum (EveSOF.cpp:1103-1108, 1287), so a name's casing never\n // mattered there. Here the slot keys are camelCase (\"primarySpotlight\")\n // and the requested names mix PascalCase and acronyms (\"PrimarySpotlight\",\n // \"PrimaryFx\", \"PrimaryAttackFX\"); lower-casing only the request found\n // single-word types and sent every multi-word one to the black default.\n const entries = slots instanceof Map ? slots.entries() : Object.entries(slots);\n for (const [ slotKey, value ] of entries)\n {\n if (String(slotKey).toLowerCase() === lowercase) return value ?? null;\n }\n return null;\n}\n\nfunction projectSingleAreaMaterial(value, areaType)\n{\n const result = createAreaMaterialData();\n mergeAreaMaterial(result, value, areaType);\n return result;\n}\n\nfunction mergeAreaMaterial(result, value, areaType)\n{\n if (!value) return;\n [\n areaMaterialName(value.material1, \"material1\"),\n areaMaterialName(value.material2, \"material2\"),\n areaMaterialName(value.material3, \"material3\"),\n areaMaterialName(value.material4, \"material4\")\n ].forEach((name, materialIndex) => {\n if (name) result.materialNames.set(`${areaType}:${materialIndex}`, name);\n });\n result.glowColor.set(`${areaType}:GeneralGlowColor`, Number(value.colorType ?? 0));\n}\n\n/**\n * Carbon's m_material[N] is a plain string, but the decoded data.black record\n * wraps each slot in its own single-key object ({ material1: \"name\" }).\n * Stringifying that wrapper produced \"[object Object]\" material names, so no\n * material record was ever found.\n */\nfunction areaMaterialName(value, key)\n{\n if (!value) return \"\";\n if (typeof value === \"string\") return value;\n return String(value[key] ?? value.name ?? value.str ?? \"\");\n}\n\nfunction isVector4(value)\n{\n return value && typeof value !== \"string\" && typeof value.length === \"number\" && value.length === 4;\n}\n\nfunction copyVector(value)\n{\n return value ? Array.from(value) : [0, 0, 0, 0];\n}\n\n/**\n * Flattens one authored parameter record to a shader vec4 the way Carbon's\n * virtual EveSOFDataParameter::GetValue does (EveSOFData.cpp:85-102): typed\n * records answer through GetValue when they are live class instances, and\n * plain data flattens by value shape - booleans and numbers broadcast to all\n * four components, two-component values zero-pad z and w, three-component\n * values zero-pad w (0, not 1), four-component values copy through.\n */\nfunction flattenParameterValue(parameter)\n{\n if (typeof parameter?.GetValue === \"function\") return Array.from(parameter.GetValue());\n const value = parameter?.value;\n if (typeof value === \"boolean\")\n {\n const scalar = value ? 1 : 0;\n return [scalar, scalar, scalar, scalar];\n }\n if (typeof value === \"number\") return [value, value, value, value];\n if (value?.length === 2) return [Number(value[0]), Number(value[1]), 0, 0];\n if (value?.length === 3) return [Number(value[0]), Number(value[1]), Number(value[2]), 0];\n return copyArray(value, [0, 0, 0, 0]);\n}\n\nfunction copyArray(value, fallback)\n{\n return value && typeof value.length === \"number\" ? Array.from(value) : fallback.slice();\n}\n\nfunction identityMatrix()\n{\n return [\n 1, 0, 0, 0,\n 0, 1, 0, 0,\n 0, 0, 1, 0,\n 0, 0, 0, 1\n ];\n}\n\nfunction fnv1(value)\n{\n let hash = 2166136261;\n for (const byte of new TextEncoder().encode(value))\n {\n hash = Math.imul(hash, 16777619);\n hash ^= byte > 127 ? byte - 256 : byte;\n }\n return hash >>> 0;\n}\n"],"names":["LOGO_KEYS","Object","freeze","_EveSOFDataMgr","_identity","EveSOFDataMgr","CjsModel","e","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","implemented","Map","createGenericData","SetResourceLoader","loader","TypeError","LoadData","filePath","data","then","SetData","LoadDataAsync","key","normalizeResourcePath","existing","get","operation","Promise","resolve","set","clear","delete","indexNamed","hull","projectHull","faction","projectFaction","race","projectRace","material","projectMaterial","pattern","projectPattern","layout","projectLayout","generic","HasHullData","name","has","String","GetHullData","HasFactionData","GetFactionData","HasRaceData","GetRaceData","HasMaterialData","GetMaterialData","HasPatternData","GetPatternData","HasLayoutData","GetLayoutData","nameOrNames","Array","isArray","result","push","GetGenericData","HasGenericData","ListHullDataNames","listCatalogNames","ListFactionDataNames","ListRaceDataNames","ListMaterialDataNames","ListPatternDataNames","ListPatternDataNamesForHull","hullName","getCatalogValue","getMapValue","getPatternApplications","normalizeCatalogName","Set","filter","Boolean","sort","left","right","localeCompare","ListLayoutDataNames","GetHullDataJson","getCatalogJson","GetFactionDataJson","GetRaceDataJson","GetMaterialDataJson","GetLayoutDataJson","GetPatternHullDataJson","patternName","application","projectJsonValue","UpdateHull","value","updateNamed","UpdateFaction","UpdateRace","UpdateMaterial","UpdatePattern","UpdateLayout","UpdateGeneric","#clear","DistributionMethod","RANDOM_INCLUCION","PARENT_MATCH","DEPLETION_COUNTER","GRAPHIC_SETTING_MAP","constructor","values","target","projector","keys","map","requested","sof6","applicationData","oldApplicationData","trim","toLowerCase","OMIT_JSON_VALUE","Symbol","stack","undefined","Number","isFinite","ArrayBuffer","from","Uint8Array","DataView","buffer","byteOffset","byteLength","isView","item","projected","add","entries","compareJsonValues","CjsSchema","isModelInstance","GetValues","refs","typeTags","JSON","stringify","opaqueAreas","projectAreas","meshIndexToOpaqueAreaLookup","forEach","area","index","locatorSets","locatorState","uniqueID","locatorSet","projectLocatorSet","impactEffectType","geometryResFilePath","boundingSphere","copyArray","shapeEllipsoidCenter","shapeEllipsoidRadius","shapeEllipsoid","center","radius","decalAreas","transparentAreas","additiveAreas","distortionAreas","hullDecalSets","projectHullDecalSets","decalSets","hullLightSets","projectHullLightSets","lightSets","spriteSets","projectHullSpriteSets","spotlightSets","projectHullSpotlightSets","planeSets","projectHullPlaneSets","spriteLineSets","projectHullSpriteLineSets","hazeSets","projectHullHazeSets","banners","projectHullBanners","bannerSets","projectHullBannerSets","children","projectHullChildren","childSets","projectHullChildSets","instancedMeshes","projectHullInstancedMeshes","animations","projectHullAnimations","soundEmitters","projectHullSoundEmitters","controllers","projectHullControllers","boosters","projectHullBooster","booster","modelRotationCurvePath","modelTranslationCurvePath","locatorTurrets","locator","transform","identityMatrix","audioPosition","defaultPattern","projectPatternProjection","transformLayer1","redFilePath","lowestLodVisible","translation","rotation","scaling","id","groupIndex","buildFilter","visibilityGroup","fnv1","visibilityGroupName","items","startRotationValue","endRotationValue","startRotationTime","endRotationTime","startTranslationValue","endTranslationValue","startTranslationTime","endTranslationTime","startRate","endRate","prefix","position","attenuationScalingFactor","path","alwaysOn","hasTrails","driveName","effectPath","parameters","projectParameterMap","textures","projectTextureMap","functionality","hasTrail","atlasIndex0","atlasIndex1","lightScale","bounds","createEmptyBounds","instances","matrix","mat4","fromRotationTranslationScale","create","includeTransformedScalingBounds","transform0","transform1","transform2","lastTransform0","slice","lastTransform1","lastTransform2","boneIndex","texture","resFilePath","displayModifier","geometryResPath","shader","finalizeBounds","min","POSITIVE_INFINITY","max","NEGATIVE_INFINITY","populated","extent","Math","abs","x","y","z","point","vec3","transformMat4","axis","groups","reference","usage","light","lightOverride","projectBannerItem","bannerLight","radiusMultiplier","brightness","innerRadiusMultiplier","noiseAmplitude","noiseFrequency","noiseOctaves","noiceOctaves","saturation","banner","projectPointLightAttachment","bannerTypes","angleX","angleY","bone","hazeType","skinned","colorType","hazeBrightness","hazeFalloff","sourceBrightness","sourceSize","boosterGainInfluence","lights","blinkPhaseShift","blinkPhase","blinkRate","falloff","maxScale","minScale","spacing","isCircle","intensity","layer1MapResPath","layer2MapResPath","maskMapResPath","atlasSize","atlasAspectRatio","layer1Scroll","layer1Transform","layer2Scroll","layer2Transform","color","maskMapAtlasIndex","rate","phase","dutyCycle","blinkMode","zOffset","coneTextureResPath","glowTextureResPath","spriteScale","coneIntensity","flareIntensity","spriteIntensity","projectSpotLightAttachment","innerAngleMultiplier","outerAngleMultiplier","innerScaleMultiplier","outerScaleMultiplier","lightProfilePath","projectHullLightSetItem","getHullLightType","innerRadius","lightColor","texturePath","innerAngle","outerAngle","flags","isInteger","getStableClassName","endsWith","getClassName","_sourceClassName","state","locators","child","projectHullDecalSetItem","meshIndex","glowColorType","logoType","indexBuffers","projectDecalIndexBuffers","multiHullIndexBuffers","combinedGeometryResPath","indexBuffer","logos","selectNamedSlot","logoSet","visibilityGroups","visibilityGroupSet","str","visibilityData","spotlightSetsColors","coneColor","flareColor","spriteColor","planeSetsColors","factionChildren","isVisible","colorData","colors","colorSet","FACTION_COLOR_KEYS","isVector4","copyVector","factionColorDefault","areaMaterials","projectAreaMaterials","areaTypes","logoSetData","materialUsageList","materialUsageMtl1","materialUsageMtl2","materialUsageMtl3","materialUsageMtl4","defaultPatternInfo","projectPatternLayer","defaultPatternLayer1MaterialName","defaultPatternLayer2MaterialName","defaultPatternName","createAreaMaterialData","glowColor","hullPrimaryHeatColorType","hullReactorHeatColorType","projectRaceBooster","damage","projectRaceDamage","scale","glowScale","warpGlowColor","symHaloScale","haloScaleX","haloScaleY","haloColor","warpHaloColor","warpHalpColor","trailColor","trailSize","shape0","projectRaceBoosterShape","shape1","warpShape0","warpShape1","shapeAtlasResPath","gradient0ResPath","gradient1ResPath","shapeAtlasHeight","shapeAtlasCount","lightOffset","lightRadius","lightWarpRadius","lightFlickerAmplitude","lightFlickerFrequency","lightWarpColor","noiseFunction","noiseSpeed","noiseAmplitureStart","noiseAmplitureEnd","armorDamageParameters","armorImpactParameters","armorDamageTextures","armorImpactTextures","shieldDamageParameters","shieldImpactParameters","shieldDamageTextures","shieldImpactTextures","flattenParameterValue","a","b","parameter","projections","layerAndProjection","layer","layer1","projection","layer2","transformLayer2","group","applicationGroups","layer1Properties","layer2Properties","properties","applicableAreas","length","_","textureName","textureResFilePath","projectionAddressModeU","projectionAddressModeV","materialSourceID","materialTargets","source","projectAddressMode","projectionTypeU","projectionTypeV","materialSource","isTargetMtl1","isTargetMtl2","isTargetMtl3","isTargetMtl4","enabled","isMirrored","seed","scrambleSeed","randomizeSeedOnLoad","placements","projectExtensionPlacements","depletionCounters","projectDepletionCounters","projectExtensionPlacement","isExtensionPlacementGroup","isAGroup","placementConditions","projectDistributionConditions","distributionConditions","offset","locatorSetName","descriptor","projectDnaDescriptor","isInstanced","isShared","extendsBoundingSphere","extendsShieldEllipsoid","hasDistribution","distribution","projectPlacementDistribution","hasOwn","material1","material2","material3","material4","completeness","placementBias","centerBias","cap","randomRotationStepSizeYPR","randomRotationMaxSteps","randomScaleMin","randomScaleMax","uniformScaling","uniformScale","occupyLocators","projectDistributionCondition","distributionType","spaceObjectParentDescriptor","triggerChance","parentDescriptor","displayFilter","chanceOfUsage","counterName","counterValue","materialPrefixes","patternMaterialPrefixes","variants","areaShaderData","decalShaderData","decalMinScreenSize","projectGenericDamage","hullDamage","projectGenericHullDamage","swarmBehavior","projectSwarmBehavior","areaShaders","projectGenericShader","decalShaders","defaultTextures","parentTextures","additive","variant","hullArea","hullAreaData","projectHullArea","categoryData","category","hullCategoriesData","reflectionMode","decalMinScreenSizeSTANDARD","decalMinScreenSizeKILLCOUNTER","decalMinScreenSizeHOLE","decalMinScreenSizeCYLINDRICAL","decalMinScreenSizeGLOWCYLINDRICAL","decalMinScreenSizeGLOWSTANDARD","decalMinScreenSizeLOGO","genericWreckMaterialData","projectSingleAreaMaterial","genericWreckMaterial","swarm","bannerShader","mass","speedMultiplier","speedMinimum","agility","maxDistance0","maxDistance1","timeMultiplier","maxTime","speed0","speed1","weightCohesion","weightSeparation","separationDistance","weightAlign","weightWander","wanderFluctuation","wanderDistance","wanderRadius","weightAnchor","anchorRadius0","anchorRadius1","weightDecelerate","weightDeceleration","maxDeceleration","weightFormation","formationDistance","flickerPerlinSpeed","flickerPerlinAlpha","flickerPerlinBeta","flickerPerlinN","armorParticleRate","armorParticleAngle","armorParticleMinMaxSpeed","armorParticleMinMaxLifeTime","armorParticleSizes","armorParticleColors","armorParticleColor0","armorParticleColor1","armorParticleColor2","armorParticleColor3","armorParticleTextureIndex","armorParticleVelocityStretchRotation","armorParticleDrag","armorParticleTurbulenceAmplitude","armorParticleTurbulenceFrequency","armorParticleColorMidPoint","armorShader","shieldShaderEllipsoid","shieldShaderHull","shieldGeometryResFilePath","hullParticleRate","hullParticleAngle","hullParticleInnerAngle","hullParticleColorMidpoint","hullParticleMinMaxSpeed","hullParticleMinMaxLifeTime","hullParticleSizes","hullParticleColors","hullParticleColor0","hullParticleColor1","hullParticleColor2","hullParticleColor3","hullParticleTextureIndex","hullParticleVelocityStretchRotation","hullParticleDrag","hullParticleTurbulenceAmplitude","hullParticleTurbulenceFrequency","count","blockedMaterials","areaType","defaultParameters","transparencyTextureName","doGenerateDepthArea","AREA_MATERIAL_KEYS","materialNames","mergeAreaMaterial","selectAreaMaterial","container","mapName","slots","lowercase","direct","slotKey","areaMaterialName","materialIndex","GetValue","scalar","fallback","hash","byte","TextEncoder","encode","imul"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveSOFDataMgr.js","sources":["../../../src/sof/EveSOFDataMgr.js"],"sourcesContent":["import { normalizeResourcePath } from \"#utils/path\";\r\n\r\n// Source: trinity/trinity/Eve/SpaceObjectFactory/EveSOFDataMgr.h\r\n// Source: trinity/trinity/Eve/SpaceObjectFactory/EveSOFDataMgr.cpp\r\n// Source: trinity/trinity/Eve/SpaceObjectFactory/EveSOFDataMgr_Blue.cpp\r\nimport { CjsModel } from \"#model\";\r\nimport { CjsSchema, carbon, impl, type } from \"#schema\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { EveSOFDataFactionColorSet } from \"./faction/EveSOFDataFactionColorSet.js\";\r\n\r\n// CARBON'S DEFAULTS FOR ABSENT COLOUR TYPES. A .black record stores only the\r\n// fields that differ from the class default, so a missing colour type means\r\n// the constructor's value, never 0 (Primary): EveSOFDataAreaMaterial's glow\r\n// is Hull (EveSOFData.cpp:32), EveSOFDataRace's heat glows Booster and\r\n// Reactor (EveSOFData.cpp:356-357). Falling back to 0 gave every hull area\r\n// the faction's Primary colour as its glow - an ordinary colour where an HDR\r\n// glow belongs, about ten times too dark.\r\nconst { TYPE_HULL, TYPE_BOOSTER, TYPE_REACTOR } = EveSOFDataFactionColorSet.ColorType;\r\n\r\nconst LOGO_KEYS = Object.freeze([\"Primary\", \"Secondary\", \"Tertiary\", \"Marking_01\", \"Marking_02\"]);\r\n\r\n\r\n/**\r\n * Owns the CPU-side SOF lookup tables consumed by EveSOFDNA and EveSOF.\r\n *\r\n * Carbon declares its many projection records as nested C++ structs. They are\r\n * plain JavaScript records here; they are not persisted fields on the manager.\r\n */\r\n@type.define({ className: \"EveSOFDataMgr\", family: \"eve\" })\r\nexport class EveSOFDataMgr extends CjsModel\r\n{\r\n\r\n static DistributionMethod = Object.freeze({\r\n RANDOM_INCLUCION: 0,\r\n PARENT_MATCH: 1,\r\n DEPLETION_COUNTER: 2,\r\n GRAPHIC_SETTING_MAP: 3\r\n });\r\n\r\n #hullData = new Map();\r\n\r\n #factionData = new Map();\r\n\r\n #raceData = new Map();\r\n\r\n #materialData = new Map();\r\n\r\n #patternData = new Map();\r\n\r\n #layoutData = new Map();\r\n\r\n #genericData = createGenericData(null);\r\n\r\n #hasGenericData = false;\r\n\r\n #resourceLoader = null;\r\n\r\n #loadOperations = new Map();\r\n\r\n /** Supplies the GPU-free object loader used by LoadData. */\r\n SetResourceLoader(loader)\r\n {\r\n if (loader !== null && typeof loader !== \"function\")\r\n {\r\n throw new TypeError(\"EveSOFDataMgr resource loader must be a function or null\");\r\n }\r\n this.#resourceLoader = loader;\r\n return this;\r\n }\r\n\r\n /** Loads an EveSOFData graph through the configured synchronous loader. */\r\n @carbon.method\r\n @impl.implemented\r\n LoadData(filePath)\r\n {\r\n if (!this.#resourceLoader) return false;\r\n const data = this.#resourceLoader(filePath);\r\n if (data && typeof data.then === \"function\")\r\n {\r\n throw new TypeError(\"EveSOFDataMgr.LoadData requires a synchronous loader\");\r\n }\r\n return this.SetData(data);\r\n }\r\n\r\n /** Loads and consumes SOF data through a promise-capable object loader. */\r\n async LoadDataAsync(filePath)\r\n {\r\n const loader = this.#resourceLoader;\r\n if (!loader) return false;\r\n const key = normalizeResourcePath(filePath);\r\n const existing = this.#loadOperations.get(key);\r\n if (existing) return existing;\r\n\r\n const operation = Promise.resolve()\r\n .then(() => loader(key))\r\n .then(data => this.SetData(data));\r\n this.#loadOperations.set(key, operation);\r\n const clear = () =>\r\n {\r\n if (this.#loadOperations.get(key) === operation) this.#loadOperations.delete(key);\r\n };\r\n operation.then(clear, clear);\r\n return operation;\r\n }\r\n\r\n /** Rebuilds the manager's lookup tables from a hydrated EveSOFData graph. */\r\n @carbon.method\r\n @impl.implemented\r\n SetData(data)\r\n {\r\n if (!data) return false;\r\n\r\n this.#clear();\r\n if (!indexNamed(data.hull, this.#hullData, projectHull)) return false;\r\n if (!indexNamed(data.faction, this.#factionData, projectFaction)) return false;\r\n if (!indexNamed(data.race, this.#raceData, projectRace)) return false;\r\n if (!indexNamed(data.material, this.#materialData, projectMaterial)) return false;\r\n if (!indexNamed(data.pattern, this.#patternData, projectPattern)) return false;\r\n if (!indexNamed(data.layout, this.#layoutData, projectLayout)) return false;\r\n if (!data.generic) return false;\r\n this.#genericData = createGenericData(data.generic);\r\n this.#hasGenericData = true;\r\n return true;\r\n }\r\n\r\n /** Tests the exact hull key in the manager's normalized projection table. */\r\n @carbon.method\r\n @impl.implemented\r\n HasHullData(name)\r\n {\r\n return this.#hullData.has(String(name));\r\n }\r\n\r\n /**\r\n * Returns the normalized hull projection for an exact key, or null when\r\n * absent.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetHullData(name)\r\n {\r\n return this.#hullData.get(String(name)) ?? null;\r\n }\r\n\r\n /** Tests the exact faction key in the manager's normalized projection table. */\r\n @carbon.method\r\n @impl.implemented\r\n HasFactionData(name)\r\n {\r\n return this.#factionData.has(String(name));\r\n }\r\n\r\n /**\r\n * Returns the normalized faction projection for an exact key, or null when\r\n * absent.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetFactionData(name)\r\n {\r\n return this.#factionData.get(String(name)) ?? null;\r\n }\r\n\r\n /** Tests the exact race key in the manager's normalized projection table. */\r\n @carbon.method\r\n @impl.implemented\r\n HasRaceData(name)\r\n {\r\n return this.#raceData.has(String(name));\r\n }\r\n\r\n /**\r\n * Returns the normalized race projection for an exact key, or null when\r\n * absent.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetRaceData(name)\r\n {\r\n return this.#raceData.get(String(name)) ?? null;\r\n }\r\n\r\n /** Tests the exact material key in the manager's normalized projection table. */\r\n @carbon.method\r\n @impl.implemented\r\n HasMaterialData(name)\r\n {\r\n return this.#materialData.has(String(name));\r\n }\r\n\r\n /**\r\n * Returns the normalized material projection for an exact key, or null when\r\n * absent.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetMaterialData(name)\r\n {\r\n return this.#materialData.get(String(name)) ?? null;\r\n }\r\n\r\n /** Tests the exact pattern key in the manager's normalized projection table. */\r\n @carbon.method\r\n @impl.implemented\r\n HasPatternData(name)\r\n {\r\n return this.#patternData.has(String(name));\r\n }\r\n\r\n /**\r\n * Returns the normalized pattern projection for an exact key, or null when\r\n * absent.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetPatternData(name)\r\n {\r\n return this.#patternData.get(String(name)) ?? null;\r\n }\r\n\r\n /** Tests the exact layout key in the manager's normalized projection table. */\r\n @carbon.method\r\n @impl.implemented\r\n HasLayoutData(name)\r\n {\r\n return this.#layoutData.has(String(name));\r\n }\r\n\r\n /** Returns one layout, or filters an ordered list of layout names. */\r\n @carbon.method\r\n @impl.implemented\r\n GetLayoutData(nameOrNames)\r\n {\r\n if (Array.isArray(nameOrNames))\r\n {\r\n const result = [];\r\n for (const name of nameOrNames)\r\n {\r\n const layout = this.GetLayoutData(name);\r\n if (layout) result.push(layout);\r\n }\r\n return result;\r\n }\r\n return this.#layoutData.get(String(nameOrNames)) ?? null;\r\n }\r\n\r\n /**\r\n * Exposes the current normalized generic projection used by DNA and SOF\r\n * assembly.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetGenericData()\r\n {\r\n return this.#genericData;\r\n }\r\n\r\n /** Reports whether generic catalog data has been installed. */\r\n HasGenericData()\r\n {\r\n return this.#hasGenericData;\r\n }\r\n\r\n /** Lists canonical hull names for read-only catalog consumers. */\r\n ListHullDataNames()\r\n {\r\n return listCatalogNames(this.#hullData);\r\n }\r\n\r\n /** Lists canonical faction names for read-only catalog consumers. */\r\n ListFactionDataNames()\r\n {\r\n return listCatalogNames(this.#factionData);\r\n }\r\n\r\n /** Lists canonical race names for read-only catalog consumers. */\r\n ListRaceDataNames()\r\n {\r\n return listCatalogNames(this.#raceData);\r\n }\r\n\r\n /** Lists canonical material names for read-only catalog consumers. */\r\n ListMaterialDataNames()\r\n {\r\n return listCatalogNames(this.#materialData);\r\n }\r\n\r\n /** Lists canonical pattern names for read-only catalog consumers. */\r\n ListPatternDataNames()\r\n {\r\n return listCatalogNames(this.#patternData);\r\n }\r\n\r\n /** Lists canonical pattern names with an application for one known hull. */\r\n ListPatternDataNamesForHull(hullName)\r\n {\r\n if (!getCatalogValue(this.#hullData, hullName)) return null;\r\n const result = [];\r\n for (const [name, pattern] of this.#patternData)\r\n {\r\n if (getMapValue(getPatternApplications(pattern), hullName))\r\n {\r\n result.push(normalizeCatalogName(name));\r\n }\r\n }\r\n return [...new Set(result.filter(Boolean))]\r\n .sort((left, right) => left.localeCompare(right));\r\n }\r\n\r\n /** Lists canonical layout names for read-only catalog consumers. */\r\n ListLayoutDataNames()\r\n {\r\n return listCatalogNames(this.#layoutData);\r\n }\r\n\r\n /** Returns one detached JSON-compatible hull projection, case-insensitively. */\r\n GetHullDataJson(name)\r\n {\r\n return getCatalogJson(this.#hullData, name);\r\n }\r\n\r\n /** Returns one detached JSON-compatible faction projection, case-insensitively. */\r\n GetFactionDataJson(name)\r\n {\r\n return getCatalogJson(this.#factionData, name);\r\n }\r\n\r\n /** Returns one detached JSON-compatible race projection, case-insensitively. */\r\n GetRaceDataJson(name)\r\n {\r\n return getCatalogJson(this.#raceData, name);\r\n }\r\n\r\n /** Returns one detached JSON-compatible material projection, case-insensitively. */\r\n GetMaterialDataJson(name)\r\n {\r\n return getCatalogJson(this.#materialData, name);\r\n }\r\n\r\n /** Returns one detached JSON-compatible layout projection, case-insensitively. */\r\n GetLayoutDataJson(name)\r\n {\r\n return getCatalogJson(this.#layoutData, name);\r\n }\r\n\r\n /** Returns only one pattern's detached application for one hull. */\r\n GetPatternHullDataJson(patternName, hullName)\r\n {\r\n const pattern = getCatalogValue(this.#patternData, patternName);\r\n if (!pattern) return null;\r\n const application = getMapValue(getPatternApplications(pattern), hullName);\r\n return application ? projectJsonValue(application) : null;\r\n }\r\n\r\n /**\r\n * Normalizes a supplied hull graph and stores its projection under the\r\n * requested key.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateHull(name, value)\r\n {\r\n return updateNamed(this.#hullData, name, value, projectHull);\r\n }\r\n\r\n /**\r\n * Normalizes a supplied faction graph and stores its projection under the\r\n * requested key.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateFaction(name, value)\r\n {\r\n return updateNamed(this.#factionData, name, value, projectFaction);\r\n }\r\n\r\n /**\r\n * Normalizes a supplied race graph and stores its projection under the\r\n * requested key.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateRace(name, value)\r\n {\r\n return updateNamed(this.#raceData, name, value, projectRace);\r\n }\r\n\r\n /**\r\n * Normalizes a supplied material graph and stores its projection under the\r\n * requested key.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateMaterial(name, value)\r\n {\r\n return updateNamed(this.#materialData, name, value, projectMaterial);\r\n }\r\n\r\n /**\r\n * Rejects a missing value, otherwise normalizes and replaces the keyed pattern\r\n * projection.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdatePattern(name, value)\r\n {\r\n if (!value) return false;\r\n return updateNamed(this.#patternData, name, value, projectPattern);\r\n }\r\n\r\n /**\r\n * Rejects a missing value, otherwise normalizes and replaces the keyed layout\r\n * projection.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLayout(name, value)\r\n {\r\n if (!value) return false;\r\n return updateNamed(this.#layoutData, name, value, projectLayout);\r\n }\r\n\r\n /**\r\n * Rejects a missing value, otherwise replaces the manager's normalized generic\r\n * projection.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateGeneric(value)\r\n {\r\n if (!value) return false;\r\n this.#genericData = createGenericData(value);\r\n this.#hasGenericData = true;\r\n return true;\r\n }\r\n\r\n /**\r\n * Empties every named projection table and restores an empty normalized\r\n * generic record.\r\n */\r\n #clear()\r\n {\r\n this.#hullData.clear();\r\n this.#factionData.clear();\r\n this.#raceData.clear();\r\n this.#materialData.clear();\r\n this.#patternData.clear();\r\n this.#layoutData.clear();\r\n this.#genericData = createGenericData(null);\r\n this.#hasGenericData = false;\r\n }\r\n\r\n}\r\n\r\n\r\n\r\nfunction indexNamed(values, target, projector)\r\n{\r\n for (const value of Array.isArray(values) ? values : [])\r\n {\r\n if (!value || target.has(String(value.name))) return false;\r\n target.set(String(value.name), projector(value));\r\n }\r\n return true;\r\n}\r\n\r\nfunction listCatalogNames(values)\r\n{\r\n return [...new Set(\r\n [...values.keys()]\r\n .map(normalizeCatalogName)\r\n .filter(Boolean)\r\n )].sort((left, right) => left.localeCompare(right));\r\n}\r\n\r\nfunction getCatalogValue(values, name)\r\n{\r\n const requested = normalizeCatalogName(name);\r\n if (!requested) return null;\r\n for (const [key, value] of values)\r\n {\r\n if (normalizeCatalogName(key) === requested) return value;\r\n }\r\n return null;\r\n}\r\n\r\nfunction getCatalogJson(values, name)\r\n{\r\n const value = getCatalogValue(values, name);\r\n return value ? projectJsonValue(value) : null;\r\n}\r\n\r\nfunction getMapValue(values, name)\r\n{\r\n if (!(values instanceof Map)) return null;\r\n const requested = normalizeCatalogName(name);\r\n if (!requested) return null;\r\n for (const [key, value] of values)\r\n {\r\n if (normalizeCatalogName(key) === requested) return value;\r\n }\r\n return null;\r\n}\r\n\r\nfunction getPatternApplications(pattern)\r\n{\r\n return pattern?.sof6 === true\r\n ? pattern.applicationData\r\n : pattern?.oldApplicationData;\r\n}\r\n\r\nfunction normalizeCatalogName(value)\r\n{\r\n return String(value ?? \"\").trim().toLowerCase();\r\n}\r\n\r\nconst OMIT_JSON_VALUE = Symbol(\"omitJsonValue\");\r\n\r\nfunction projectJsonValue(value, stack = new Set())\r\n{\r\n if (value === undefined || typeof value === \"function\" || typeof value === \"symbol\")\r\n {\r\n return OMIT_JSON_VALUE;\r\n }\r\n if (value === null || typeof value === \"string\" || typeof value === \"boolean\")\r\n {\r\n return value;\r\n }\r\n if (typeof value === \"number\")\r\n {\r\n return Number.isFinite(value) ? value : null;\r\n }\r\n if (typeof value === \"bigint\")\r\n {\r\n return String(value);\r\n }\r\n if (value instanceof ArrayBuffer)\r\n {\r\n return Array.from(new Uint8Array(value));\r\n }\r\n if (value instanceof DataView)\r\n {\r\n return Array.from(new Uint8Array(value.buffer, value.byteOffset, value.byteLength));\r\n }\r\n if (ArrayBuffer.isView(value))\r\n {\r\n return Array.from(value, item => {\r\n const projected = projectJsonValue(item, stack);\r\n return projected === OMIT_JSON_VALUE ? null : projected;\r\n });\r\n }\r\n if (stack.has(value))\r\n {\r\n throw new TypeError(\"SOF catalog JSON projection cannot contain circular values\");\r\n }\r\n\r\n stack.add(value);\r\n try\r\n {\r\n if (value instanceof Map)\r\n {\r\n const result = {};\r\n const entries = [...value.entries()]\r\n .map(([key, item]) => [String(key), item])\r\n .sort(([left], [right]) => left.localeCompare(right));\r\n for (const [key, item] of entries)\r\n {\r\n const projected = projectJsonValue(item, stack);\r\n if (projected !== OMIT_JSON_VALUE) result[key] = projected;\r\n }\r\n return result;\r\n }\r\n if (value instanceof Set)\r\n {\r\n return [...value]\r\n .map(item => projectJsonValue(item, stack))\r\n .filter(item => item !== OMIT_JSON_VALUE)\r\n .sort(compareJsonValues);\r\n }\r\n if (Array.isArray(value))\r\n {\r\n return value.map(item => {\r\n const projected = projectJsonValue(item, stack);\r\n return projected === OMIT_JSON_VALUE ? null : projected;\r\n });\r\n }\r\n if (CjsSchema.isModelInstance(value))\r\n {\r\n return projectJsonValue(\r\n value.GetValues({ refs: true, typeTags: true }),\r\n stack\r\n );\r\n }\r\n\r\n const result = {};\r\n for (const key of Object.keys(value).sort((left, right) => left.localeCompare(right)))\r\n {\r\n const projected = projectJsonValue(value[key], stack);\r\n if (projected !== OMIT_JSON_VALUE) result[key] = projected;\r\n }\r\n return result;\r\n }\r\n finally\r\n {\r\n stack.delete(value);\r\n }\r\n}\r\n\r\nfunction compareJsonValues(left, right)\r\n{\r\n return JSON.stringify(left).localeCompare(JSON.stringify(right));\r\n}\r\n\r\nfunction updateNamed(target, name, value, projector)\r\n{\r\n if (!value) return false;\r\n target.set(String(name), projector(value));\r\n return true;\r\n}\r\n\r\nfunction projectHull(value)\r\n{\r\n const opaqueAreas = projectAreas(value.opaqueAreas);\r\n const meshIndexToOpaqueAreaLookup = new Map();\r\n opaqueAreas.forEach((area, index) => meshIndexToOpaqueAreaLookup.set(area.index, index));\r\n const locatorSets = new Map();\r\n const locatorState = { uniqueID: 0 };\r\n for (const locatorSet of Array.isArray(value.locatorSets) ? value.locatorSets : [])\r\n {\r\n projectLocatorSet(locatorSet, locatorSets, locatorState);\r\n }\r\n return {\r\n ...value,\r\n impactEffectType: Number(value.impactEffectType ?? 0),\r\n geometryResFilePath: String(value.geometryResFilePath ?? \"\"),\r\n boundingSphere: copyArray(value.boundingSphere, [0, 0, 0, 0]),\r\n shapeEllipsoidCenter: copyArray(value.shapeEllipsoidCenter, [0, 0, 0]),\r\n shapeEllipsoidRadius: copyArray(value.shapeEllipsoidRadius, [-1, -1, -1]),\r\n shapeEllipsoid: {\r\n center: copyArray(value.shapeEllipsoidCenter, [0, 0, 0]),\r\n radius: copyArray(value.shapeEllipsoidRadius, [-1, -1, -1])\r\n },\r\n opaqueAreas,\r\n decalAreas: projectAreas(value.decalAreas),\r\n transparentAreas: projectAreas(value.transparentAreas),\r\n additiveAreas: projectAreas(value.additiveAreas),\r\n distortionAreas: projectAreas(value.distortionAreas),\r\n hullDecalSets: projectHullDecalSets(value.decalSets),\r\n hullLightSets: projectHullLightSets(value.lightSets),\r\n spriteSets: projectHullSpriteSets(value.spriteSets),\r\n spotlightSets: projectHullSpotlightSets(value.spotlightSets),\r\n planeSets: projectHullPlaneSets(value.planeSets),\r\n spriteLineSets: projectHullSpriteLineSets(value.spriteLineSets),\r\n hazeSets: projectHullHazeSets(value.hazeSets),\r\n banners: projectHullBanners(value.banners),\r\n bannerSets: projectHullBannerSets(value.bannerSets),\r\n children: projectHullChildren(value.children),\r\n childSets: projectHullChildSets(value.childSets),\r\n instancedMeshes: projectHullInstancedMeshes(value.instancedMeshes),\r\n animations: projectHullAnimations(value.animations),\r\n soundEmitters: projectHullSoundEmitters(value.soundEmitters),\r\n controllers: projectHullControllers(value.controllers),\r\n boosters: projectHullBooster(value.booster),\r\n modelRotationCurvePath: String(value.modelRotationCurvePath ?? \"\"),\r\n modelTranslationCurvePath: String(value.modelTranslationCurvePath ?? \"\"),\r\n locatorTurrets: (Array.isArray(value.locatorTurrets) ? value.locatorTurrets : []).map(locator => ({\r\n name: String(locator?.name ?? \"\"),\r\n transform: copyArray(locator?.transform, identityMatrix())\r\n })),\r\n locatorSets,\r\n meshIndexToOpaqueAreaLookup,\r\n audioPosition: copyArray(value.audioPosition, [0, 0, 0]),\r\n defaultPattern: projectPatternProjection(value.defaultPattern?.transformLayer1)\r\n };\r\n}\r\n\r\nfunction projectHullChildren(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\r\n redFilePath: String(value.redFilePath ?? \"\"),\r\n lowestLodVisible: Number(value.lowestLodVisible ?? 0),\r\n translation: copyArray(value.translation, [0, 0, 0]),\r\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\r\n scaling: copyArray(value.scaling, [1, 1, 1]),\r\n id: Number(value.id ?? -1),\r\n groupIndex: Number(value.groupIndex ?? -1),\r\n buildFilter: Number(value.buildFilter ?? 0xffffffff) >>> 0\r\n }));\r\n}\r\n\r\nfunction projectHullChildSets(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\r\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\r\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\r\n // Carbon hashes the group and keeps no name; the catalog retains it so\r\n // callers can report which groups a hull offers (never emitted in a document).\r\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\r\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(item => ({\r\n redFilePath: String(item.redFilePath ?? \"\"),\r\n lowestLodVisible: Number(item.lowestLodVisible ?? 0),\r\n translation: copyArray(item.translation, [0, 0, 0]),\r\n rotation: copyArray(item.rotation, [0, 0, 0, 1]),\r\n scaling: copyArray(item.scaling, [1, 1, 1]),\r\n buildFilter: Number(item.buildFilter ?? 0xffffffff) >>> 0\r\n }))\r\n }));\r\n}\r\n\r\nfunction projectHullAnimations(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\r\n name: String(value.name ?? \"\"),\r\n startRotationValue: copyArray(value.startRotationValue, [0, 0, 0, 1]),\r\n endRotationValue: copyArray(value.endRotationValue, [0, 0, 0, 1]),\r\n startRotationTime: Number(value.startRotationTime ?? -1),\r\n endRotationTime: Number(value.endRotationTime ?? -1),\r\n startTranslationValue: copyArray(value.startTranslationValue, [0, 0, 0]),\r\n endTranslationValue: copyArray(value.endTranslationValue, [0, 0, 0]),\r\n startTranslationTime: Number(value.startTranslationTime ?? -1),\r\n endTranslationTime: Number(value.endTranslationTime ?? -1),\r\n id: Number(value.id ?? -1),\r\n startRate: Number(value.startRate ?? -1),\r\n endRate: Number(value.endRate ?? -1)\r\n }));\r\n}\r\n\r\nfunction projectHullSoundEmitters(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\r\n name: String(value.name ?? \"\"),\r\n prefix: String(value.prefix ?? \"\"),\r\n position: copyArray(value.position, [0, 0, 0]),\r\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\r\n attenuationScalingFactor: Number(value.attenuationScalingFactor ?? 1)\r\n }));\r\n}\r\n\r\nfunction projectHullControllers(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\r\n path: String(value.path ?? \"\"),\r\n buildFilter: Number(value.buildFilter ?? 0xffffffff) >>> 0\r\n }));\r\n}\r\n\r\nfunction projectHullBooster(value)\r\n{\r\n return {\r\n alwaysOn: value?.alwaysOn === true,\r\n hasTrails: value?.hasTrails !== false,\r\n // Per-hull booster overrides (Carbon EveSOFDataHullBooster,\r\n // EveSOFData.h:1088-1092; read at EveSOFDataMgr.cpp:695-709): empty\r\n // strings mean the EveChildBoosterSet defaults apply.\r\n driveName: String(value?.driveName ?? \"\"),\r\n effectPath: String(value?.effectPath ?? \"\"),\r\n parameters: projectParameterMap(value?.parameters),\r\n textures: projectTextureMap(value?.textures),\r\n items: (Array.isArray(value?.items) ? value.items : []).filter(Boolean).map(item => ({\r\n transform: copyArray(item.transform, identityMatrix()),\r\n functionality: copyArray(item.functionality, [0, 1, 1, 1]),\r\n hasTrail: item.hasTrail !== false,\r\n atlasIndex0: Number(item.atlasIndex0 ?? 0) >>> 0,\r\n atlasIndex1: Number(item.atlasIndex1 ?? 0) >>> 0,\r\n lightScale: Number(item.lightScale ?? 1)\r\n }))\r\n };\r\n}\r\n\r\nfunction projectHullInstancedMeshes(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => {\r\n const bounds = createEmptyBounds();\r\n const instances = (Array.isArray(value.instances) ? value.instances : []).filter(Boolean).map(item => {\r\n const scaling = copyArray(item.scaling, [1, 1, 1]);\r\n const matrix = mat4.fromRotationTranslationScale(\r\n mat4.create(),\r\n copyArray(item.rotation, [0, 0, 0, 1]),\r\n copyArray(item.translation, [0, 0, 0]),\r\n scaling\r\n );\r\n includeTransformedScalingBounds(bounds, matrix, scaling);\r\n const transform0 = [matrix[0], matrix[4], matrix[8], matrix[12]];\r\n const transform1 = [matrix[1], matrix[5], matrix[9], matrix[13]];\r\n const transform2 = [matrix[2], matrix[6], matrix[10], matrix[14]];\r\n return {\r\n transform0,\r\n transform1,\r\n transform2,\r\n lastTransform0: transform0.slice(),\r\n lastTransform1: transform1.slice(),\r\n lastTransform2: transform2.slice(),\r\n boneIndex: Number(item.boneIndex ?? 0) | 0\r\n };\r\n });\r\n const textures = new Map();\r\n for (const texture of Array.isArray(value.textures) ? value.textures : [])\r\n {\r\n if (!texture) continue;\r\n textures.set(String(texture.name ?? \"\"), {\r\n resFilePath: String(texture.resFilePath ?? \"\")\r\n });\r\n }\r\n return {\r\n name: String(value.name ?? \"\"),\r\n lowestLodVisible: Number(value.lowestLodVisible ?? 0),\r\n displayModifier: Number(value.displayModifier ?? 5),\r\n geometryResPath: String(value.geometryResPath ?? \"\"),\r\n shader: String(value.shader ?? \"\"),\r\n textures: new Map([...textures.entries()].sort(([left], [right]) => left.localeCompare(right))),\r\n instances,\r\n bounds: finalizeBounds(bounds)\r\n };\r\n });\r\n}\r\n\r\nfunction createEmptyBounds()\r\n{\r\n return {\r\n min: [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY],\r\n max: [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\r\n populated: false\r\n };\r\n}\r\n\r\n/** Mirrors Carbon's authored AABB[-scaling,+scaling] transform projection. */\r\nfunction includeTransformedScalingBounds(bounds, matrix, scaling)\r\n{\r\n const extent = scaling.map(Math.abs);\r\n for (const x of [-extent[0], extent[0]])\r\n {\r\n for (const y of [-extent[1], extent[1]])\r\n {\r\n for (const z of [-extent[2], extent[2]])\r\n {\r\n const point = vec3.transformMat4(vec3.create(), [x, y, z], matrix);\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n bounds.min[axis] = Math.min(bounds.min[axis], point[axis]);\r\n bounds.max[axis] = Math.max(bounds.max[axis], point[axis]);\r\n }\r\n bounds.populated = true;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction finalizeBounds(bounds)\r\n{\r\n return bounds.populated\r\n ? { min: bounds.min, max: bounds.max }\r\n : { min: [0, 0, 0], max: [0, 0, 0] };\r\n}\r\n\r\nfunction projectHullBanners(values)\r\n{\r\n const groups = new Map();\r\n let reference = 0;\r\n for (const value of Array.isArray(values) ? values : [])\r\n {\r\n if (!value) continue;\r\n const usage = Number(value.usage ?? 3);\r\n if (!groups.has(usage)) groups.set(usage, { usage, items: [] });\r\n const light = value.lightOverride ?? {};\r\n groups.get(usage).items.push({\r\n item: projectBannerItem(value, reference++),\r\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\r\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\r\n bannerLight: {\r\n radiusMultiplier: Number(light.radiusMultiplier ?? 1),\r\n brightness: Number(light.brightness ?? 1),\r\n innerRadiusMultiplier: Number(light.innerRadiusMultiplier ?? 0.3),\r\n noiseAmplitude: Number(light.noiseAmplitude ?? 0),\r\n noiseFrequency: Number(light.noiseFrequency ?? 1),\r\n noiseOctaves: Number(light.noiceOctaves ?? light.noiseOctaves ?? 1),\r\n saturation: Number(light.saturation ?? 1)\r\n }\r\n });\r\n }\r\n return [...groups.values()];\r\n}\r\n\r\nfunction projectHullBannerSets(values)\r\n{\r\n const result = [];\r\n let reference = 0;\r\n for (const value of Array.isArray(values) ? values : [])\r\n {\r\n if (!value) continue;\r\n const groups = new Map();\r\n for (const banner of Array.isArray(value.banners) ? value.banners : [])\r\n {\r\n if (!banner) continue;\r\n const usage = Number(banner.usage ?? 3);\r\n if (!groups.has(usage)) groups.set(usage, []);\r\n groups.get(usage).push({\r\n item: projectBannerItem(banner, reference++),\r\n light: projectPointLightAttachment(banner.light)\r\n });\r\n }\r\n result.push({\r\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\r\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\r\n bannerTypes: new Map([...groups.entries()].sort(([left], [right]) => left - right))\r\n });\r\n }\r\n return result;\r\n}\r\n\r\nfunction projectBannerItem(value, reference)\r\n{\r\n return {\r\n position: copyArray(value.position, [0, 0, 0]),\r\n scaling: copyArray(value.scaling, [1, 1, 1]),\r\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\r\n angleX: Number(value.angleX ?? 0),\r\n angleY: Number(value.angleY ?? 0),\r\n bone: Number(value.boneIndex ?? -1),\r\n reference\r\n };\r\n}\r\n\r\nfunction projectHullHazeSets(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\r\n hazeType: Number(value.hazeType ?? 0),\r\n skinned: value.skinned === true,\r\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\r\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\r\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(item => ({\r\n colorType: Number(item.colorType ?? 0),\r\n boneIndex: Number(item.boneIndex ?? -1),\r\n position: copyArray(item.position, [0, 0, 0]),\r\n scaling: copyArray(item.scaling, [1, 1, 1]),\r\n rotation: copyArray(item.rotation, [0, 0, 0, 1]),\r\n hazeBrightness: Number(item.hazeBrightness ?? 1),\r\n hazeFalloff: Number(item.hazeFalloff ?? 6),\r\n sourceBrightness: Number(item.sourceBrightness ?? 2),\r\n sourceSize: Number(item.sourceSize ?? 0.2),\r\n boosterGainInfluence: item.boosterGainInfluence === true,\r\n saturation: Number(item.saturation ?? 1),\r\n lights: (Array.isArray(item.lights) ? item.lights : []).filter(Boolean).map(projectPointLightAttachment)\r\n }))\r\n }));\r\n}\r\n\r\nfunction projectHullSpriteLineSets(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\r\n skinned: value.skinned === true,\r\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\r\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\r\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(item => ({\r\n blinkPhaseShift: Number(item.blinkPhaseShift ?? 0),\r\n blinkPhase: Number(item.blinkPhase ?? 0),\r\n blinkRate: Number(item.blinkRate ?? 0.1),\r\n boneIndex: Number(item.boneIndex ?? 0),\r\n falloff: Number(item.falloff ?? 0),\r\n maxScale: Number(item.maxScale ?? 10),\r\n minScale: Number(item.minScale ?? 1),\r\n position: copyArray(item.position, [0, 0, 0]),\r\n scaling: copyArray(item.scaling, [1, 1, 1]),\r\n rotation: copyArray(item.rotation, [0, 0, 0, 1]),\r\n spacing: Number(item.spacing ?? 1),\r\n isCircle: item.isCircle === true,\r\n intensity: Number(item.intensity ?? 1),\r\n saturation: Number(item.saturation ?? 1),\r\n colorType: Number(item.colorType ?? 0),\r\n light: projectPointLightAttachment(item.light)\r\n }))\r\n }));\r\n}\r\n\r\nfunction projectHullPlaneSets(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\r\n layer1MapResPath: String(value.layer1MapResPath ?? \"\"),\r\n layer2MapResPath: String(value.layer2MapResPath ?? \"\"),\r\n maskMapResPath: String(value.maskMapResPath ?? \"\"),\r\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\r\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\r\n atlasSize: Number(value.atlasSize ?? 1) >>> 0,\r\n atlasAspectRatio: copyArray(value.atlasAspectRatio, [1, 1]),\r\n skinned: value.skinned === true,\r\n usage: Number(value.usage ?? 0),\r\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(item => ({\r\n boneIndex: Number(item.boneIndex ?? -1),\r\n layer1Scroll: copyArray(item.layer1Scroll, [0, 0, 0, 0]),\r\n layer1Transform: copyArray(item.layer1Transform, [0, 0, 0, 0]),\r\n layer2Scroll: copyArray(item.layer2Scroll, [0, 0, 0, 0]),\r\n layer2Transform: copyArray(item.layer2Transform, [0, 0, 0, 0]),\r\n position: copyArray(item.position, [0, 0, 0]),\r\n rotation: copyArray(item.rotation, [0, 0, 0, 1]),\r\n scaling: copyArray(item.scaling, [1, 1, 1]),\r\n color: copyArray(item.color, [1, 1, 1, 1]),\r\n colorType: Number(item.colorType ?? 0),\r\n intensity: Number(item.intensity ?? 1),\r\n groupIndex: Number(item.groupIndex ?? -1),\r\n maskMapAtlasIndex: Number(item.maskMapAtlasIndex ?? 0),\r\n rate: Number(item.blinkRate ?? 1),\r\n phase: Number(item.blinkPhase ?? 0),\r\n dutyCycle: Number(item.dutyCycle ?? 1),\r\n blinkMode: Number(item.blinkMode ?? 0),\r\n saturation: Number(item.saturation ?? 1),\r\n lights: (Array.isArray(item.lights) ? item.lights : []).filter(Boolean).map(projectPointLightAttachment)\r\n }))\r\n }));\r\n}\r\n\r\nfunction projectHullSpotlightSets(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\r\n skinned: value.skinned === true,\r\n zOffset: Number(value.zOffset ?? 0),\r\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\r\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\r\n coneTextureResPath: String(value.coneTextureResPath ?? \"\"),\r\n glowTextureResPath: String(value.glowTextureResPath ?? \"\"),\r\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(item => ({\r\n boneIndex: Number(item.boneIndex ?? 0),\r\n boosterGainInfluence: item.boosterGainInfluence === true,\r\n colorType: Number(item.colorType ?? 12),\r\n spriteScale: copyArray(item.spriteScale, [1, 1, 1]),\r\n transform: copyArray(item.transform, identityMatrix()),\r\n groupIndex: Number(item.groupIndex ?? -1),\r\n coneIntensity: Number(item.coneIntensity ?? 0),\r\n flareIntensity: Number(item.flareIntensity ?? 0),\r\n spriteIntensity: Number(item.spriteIntensity ?? 0),\r\n saturation: Number(item.saturation ?? 1),\r\n light: projectSpotLightAttachment(item.light)\r\n }))\r\n }));\r\n}\r\n\r\nfunction projectSpotLightAttachment(value)\r\n{\r\n if (!value) return null;\r\n return {\r\n translation: copyArray(value.translation, [0, 0, 0]),\r\n saturation: Number(value.saturation ?? 1),\r\n intensity: Number(value.intensity ?? 1),\r\n innerAngleMultiplier: Number(value.innerAngleMultiplier ?? 0.5),\r\n outerAngleMultiplier: Number(value.outerAngleMultiplier ?? 1),\r\n innerScaleMultiplier: Number(value.innerScaleMultiplier ?? 1),\r\n outerScaleMultiplier: Number(value.outerScaleMultiplier ?? 1),\r\n noiseAmplitude: Number(value.noiseAmplitude ?? 0),\r\n noiseFrequency: Number(value.noiseFrequency ?? 1),\r\n noiseOctaves: Number(value.noiseOctaves ?? 1),\r\n lightProfilePath: String(value.lightProfilePath ?? \"\")\r\n };\r\n}\r\n\r\nfunction projectHullSpriteSets(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\r\n skinned: value.skinned === true,\r\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\r\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\r\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(item => ({\r\n position: copyArray(item.position, [0, 0, 0]),\r\n blinkRate: Number(item.blinkRate ?? 0.1),\r\n blinkPhase: Number(item.blinkPhase ?? 0),\r\n minScale: Number(item.minScale ?? 1),\r\n maxScale: Number(item.maxScale ?? 10),\r\n falloff: Number(item.falloff ?? 0),\r\n intensity: Number(item.intensity ?? 1),\r\n saturation: Number(item.saturation ?? 1),\r\n boneIndex: Number(item.boneIndex ?? 0),\r\n colorType: Number(item.colorType ?? 0),\r\n light: projectPointLightAttachment(item.light)\r\n }))\r\n }));\r\n}\r\n\r\nfunction projectPointLightAttachment(value)\r\n{\r\n if (!value) return null;\r\n return {\r\n translation: copyArray(value.translation, [0, 0, 0]),\r\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\r\n saturation: Number(value.saturation ?? 1),\r\n intensity: Number(value.intensity ?? 1),\r\n innerScaleMultiplier: Number(value.innerScaleMultiplier ?? 1),\r\n outerScaleMultiplier: Number(value.outerScaleMultiplier ?? 2),\r\n noiseAmplitude: Number(value.noiseAmplitude ?? 0),\r\n noiseFrequency: Number(value.noiseFrequency ?? 1),\r\n noiseOctaves: Number(value.noiseOctaves ?? 1),\r\n lightProfilePath: String(value.lightProfilePath ?? \"\")\r\n };\r\n}\r\n\r\nfunction projectHullLightSets(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\r\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\r\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\r\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(projectHullLightSetItem)\r\n }));\r\n}\r\n\r\nfunction projectHullLightSetItem(value)\r\n{\r\n return {\r\n type: getHullLightType(value),\r\n position: copyArray(value.position, [0, 0, 0]),\r\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\r\n radius: Number(value.radius ?? 0),\r\n innerRadius: Number(value.innerRadius ?? 0),\r\n brightness: Number(value.brightness ?? 0),\r\n noiseAmplitude: Number(value.noiseAmplitude ?? 0),\r\n noiseFrequency: Number(value.noiseFrequency ?? 1),\r\n noiseOctaves: Number(value.noiseOctaves ?? 1),\r\n lightColor: Number(value.lightColor ?? 0),\r\n texturePath: String(value.texturePath ?? \"\"),\r\n innerAngle: Number(value.innerAngle ?? 0),\r\n outerAngle: Number(value.outerAngle ?? 0),\r\n boneIndex: Number(value.boneIndex ?? -1),\r\n flags: Number(value.flags ?? 1)\r\n };\r\n}\r\n\r\nfunction getHullLightType(value)\r\n{\r\n if (Number.isInteger(value?.type)) return Number(value.type);\r\n const className = getStableClassName(value);\r\n if (className.endsWith(\"TexturedPointLight\")) return 1;\r\n if (className.endsWith(\"SpotLight\")) return 2;\r\n return 0;\r\n}\r\n\r\nfunction getStableClassName(value)\r\n{\r\n return String(CjsSchema.getClassName(value?.constructor) ?? value?._sourceClassName ?? \"\");\r\n}\r\n\r\nfunction projectLocatorSet(value, target, state)\r\n{\r\n if (!value) return;\r\n if (Array.isArray(value.locators))\r\n {\r\n const name = String(value.name ?? \"\");\r\n for (const locator of value.locators)\r\n {\r\n if (!target.has(name)) target.set(name, []);\r\n const locators = target.get(name);\r\n locators.push({\r\n position: copyArray(locator?.position, [0, 0, 0]),\r\n rotation: copyArray(locator?.rotation, [0, 0, 0, 1]),\r\n scaling: copyArray(locator?.scaling, [1, 1, 1]),\r\n boneIndex: Number(locator?.boneIndex ?? -1),\r\n uniqueID: state.uniqueID++\r\n });\r\n }\r\n return;\r\n }\r\n for (const child of Array.isArray(value.locatorSets) ? value.locatorSets : [])\r\n {\r\n projectLocatorSet(child, target, state);\r\n }\r\n}\r\n\r\nfunction projectHullDecalSets(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => ({\r\n visibilityGroup: fnv1(String(value.visibilityGroup ?? \"primary\")),\r\n visibilityGroupName: String(value.visibilityGroup ?? \"primary\"),\r\n items: (Array.isArray(value.items) ? value.items : []).filter(Boolean).map(projectHullDecalSetItem)\r\n }));\r\n}\r\n\r\nfunction projectHullDecalSetItem(value)\r\n{\r\n return {\r\n usage: Number(value.usage ?? 0),\r\n position: copyArray(value.position, [0, 0, 0]),\r\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\r\n scaling: copyArray(value.scaling, [1, 1, 1]),\r\n boneIndex: Number(value.boneIndex ?? -1),\r\n meshIndex: Number(value.meshIndex ?? -1),\r\n glowColorType: Number(value.glowColorType ?? 0),\r\n logoType: Number(value.logoType ?? 0),\r\n textures: projectTextureMap(value.textures),\r\n parameters: projectParameterMap(value.parameters),\r\n indexBuffers: projectDecalIndexBuffers(value.indexBuffers),\r\n multiHullIndexBuffers: (Array.isArray(value.multiHullIndexBuffers) ? value.multiHullIndexBuffers : [])\r\n .filter(Boolean)\r\n .map(item => ({\r\n combinedGeometryResPath: String(item.combinedGeometryResPath ?? \"\"),\r\n indexBuffers: projectDecalIndexBuffers(item.indexBuffers)\r\n }))\r\n };\r\n}\r\n\r\nfunction projectDecalIndexBuffers(values)\r\n{\r\n return (Array.isArray(values) ? values : []).filter(Boolean).map(value => {\r\n return Array.from(value.indexBuffer ?? [], index => Number(index) >>> 0);\r\n });\r\n}\r\n\r\nfunction projectFaction(value)\r\n{\r\n const logos = LOGO_KEYS.map(key => ({\r\n textures: projectTextureMap(selectNamedSlot(value.logoSet, key, \"logos\")?.textures)\r\n }));\r\n const visibilityGroups = (Array.isArray(value.visibilityGroupSet?.visibilityGroups)\r\n ? value.visibilityGroupSet.visibilityGroups\r\n : []).map(item => String(item?.str ?? \"\"));\r\n const visibilityData = new Set(visibilityGroups.map(name => fnv1(name)));\r\n const spotlightSetsColors = new Map();\r\n for (const set of Array.isArray(value.spotlightSets) ? value.spotlightSets : [])\r\n {\r\n if (!set) continue;\r\n spotlightSetsColors.set(Number(set.groupIndex ?? -1), {\r\n coneColor: copyArray(set.coneColor, [0, 0, 0, 0]),\r\n flareColor: copyArray(set.flareColor, [0, 0, 0, 0]),\r\n spriteColor: copyArray(set.spriteColor, [0, 0, 0, 0])\r\n });\r\n }\r\n const planeSetsColors = new Map();\r\n for (const set of Array.isArray(value.planeSets) ? value.planeSets : [])\r\n {\r\n if (!set) continue;\r\n planeSetsColors.set(Number(set.groupIndex ?? -1), {\r\n color: copyArray(set.color, [0, 0, 0, 0])\r\n });\r\n }\r\n const factionChildren = new Map();\r\n for (const child of Array.isArray(value.children) ? value.children : [])\r\n {\r\n if (!child) continue;\r\n factionChildren.set(Number(child.groupIndex ?? -1), {\r\n groupIndex: Number(child.groupIndex ?? -1),\r\n name: String(child.name ?? \"\"),\r\n isVisible: child.isVisible === true\r\n });\r\n }\r\n return {\r\n ...value,\r\n colorData: {\r\n colors: value.colorSet\r\n ? FACTION_COLOR_KEYS.map((key, index) =>\r\n {\r\n const color = selectNamedSlot(value.colorSet, key, \"colors\");\r\n return isVector4(color) ? copyVector(color) : factionColorDefault(index);\r\n })\r\n : FACTION_COLOR_KEYS.map(() => [0, 0, 0, 0])\r\n },\r\n areaMaterials: projectAreaMaterials(value.areaTypes),\r\n visibilityGroups,\r\n logoSetData: { logos },\r\n visibilityData,\r\n spotlightSetsColors,\r\n planeSetsColors,\r\n factionChildren,\r\n materialUsageList: [\r\n value.materialUsageMtl1 ?? 0,\r\n value.materialUsageMtl2 ?? 1,\r\n value.materialUsageMtl3 ?? 2,\r\n value.materialUsageMtl4 ?? 3\r\n ],\r\n defaultPatternInfo: projectPatternLayer(value.defaultPattern, null),\r\n defaultPatternLayer1MaterialName: String(value.defaultPatternLayer1MaterialName ?? \"\"),\r\n defaultPatternLayer2MaterialName: String(value.defaultPatternLayer2MaterialName ?? \"\"),\r\n defaultPatternName: String(value.defaultPatternName ?? \"\")\r\n };\r\n}\r\n\r\nfunction projectRace(value)\r\n{\r\n const areaMaterials = createAreaMaterialData();\r\n areaMaterials.glowColor.set(\"0:GeneralHeatGlowColor\", Number(value.hullPrimaryHeatColorType ?? TYPE_BOOSTER));\r\n areaMaterials.glowColor.set(\"3:GeneralHeatGlowColor\", Number(value.hullReactorHeatColorType ?? TYPE_REACTOR));\r\n return {\r\n ...value,\r\n areaMaterials,\r\n boosters: projectRaceBooster(value.booster),\r\n damage: projectRaceDamage(value.damage)\r\n };\r\n}\r\n\r\nfunction projectRaceBooster(value)\r\n{\r\n return {\r\n scale: copyArray(value?.scale, [1, 1, 1, 1]),\r\n glowScale: Number(value?.glowScale ?? 1),\r\n glowColor: copyArray(value?.glowColor, [0, 0, 0, 0]),\r\n warpGlowColor: copyArray(value?.warpGlowColor, [0, 0, 0, 0]),\r\n symHaloScale: Number(value?.symHaloScale ?? 1),\r\n haloScaleX: Number(value?.haloScaleX ?? 1),\r\n haloScaleY: Number(value?.haloScaleY ?? 1),\r\n haloColor: copyArray(value?.haloColor, [0, 0, 0, 0]),\r\n warpHaloColor: copyArray(value?.warpHaloColor ?? value?.warpHalpColor, [0, 0, 0, 0]),\r\n trailColor: copyArray(value?.trailColor, [0, 0, 0, 0]),\r\n trailSize: copyArray(value?.trailSize, [0, 0, 0, 0]),\r\n shape0: projectRaceBoosterShape(value?.shape0),\r\n shape1: projectRaceBoosterShape(value?.shape1),\r\n warpShape0: projectRaceBoosterShape(value?.warpShape0),\r\n warpShape1: projectRaceBoosterShape(value?.warpShape1),\r\n shapeAtlasResPath: String(value?.shapeAtlasResPath ?? \"\"),\r\n gradient0ResPath: String(value?.gradient0ResPath ?? \"\"),\r\n gradient1ResPath: String(value?.gradient1ResPath ?? \"\"),\r\n shapeAtlasHeight: Number(value?.shapeAtlasHeight ?? 0) >>> 0,\r\n shapeAtlasCount: Number(value?.shapeAtlasCount ?? 0) >>> 0,\r\n lightOffset: Number(value?.lightOffset ?? 0),\r\n lightRadius: Number(value?.lightRadius ?? 0),\r\n lightWarpRadius: Number(value?.lightWarpRadius ?? 0),\r\n lightFlickerAmplitude: Number(value?.lightFlickerAmplitude ?? 0),\r\n lightFlickerFrequency: Number(value?.lightFlickerFrequency ?? 0),\r\n lightColor: copyArray(value?.lightColor, [0, 0, 0, 0]),\r\n lightWarpColor: copyArray(value?.lightWarpColor, [0, 0, 0, 0])\r\n };\r\n}\r\n\r\nfunction projectRaceBoosterShape(value)\r\n{\r\n return {\r\n noiseFunction: Number(value?.noiseFunction ?? 0),\r\n noiseSpeed: Number(value?.noiseSpeed ?? 0),\r\n noiseAmplitureStart: copyArray(value?.noiseAmplitureStart, [0, 0, 0, 0]),\r\n noiseAmplitureEnd: copyArray(value?.noiseAmplitureEnd, [0, 0, 0, 0]),\r\n noiseFrequency: copyArray(value?.noiseFrequency, [0, 0, 0, 0]),\r\n color: copyArray(value?.color, [0, 0, 0, 0])\r\n };\r\n}\r\n\r\nfunction projectRaceDamage(value)\r\n{\r\n return {\r\n armorDamageParameters: projectParameterMap(value?.armorImpactParameters),\r\n armorDamageTextures: projectTextureMap(value?.armorImpactTextures),\r\n shieldDamageParameters: projectParameterMap(value?.shieldImpactParameters),\r\n shieldDamageTextures: projectTextureMap(value?.shieldImpactTextures)\r\n };\r\n}\r\n\r\nfunction projectParameterMap(values)\r\n{\r\n const result = new Map();\r\n for (const value of Array.isArray(values) ? values : [])\r\n {\r\n if (value) result.set(String(value.name ?? \"\"), flattenParameterValue(value));\r\n }\r\n return new Map([...result].sort(([a], [b]) => a.localeCompare(b)));\r\n}\r\n\r\nfunction projectTextureMap(values)\r\n{\r\n const result = new Map();\r\n for (const value of Array.isArray(values) ? values : [])\r\n {\r\n if (value) result.set(String(value.name ?? \"\"), { resFilePath: String(value.resFilePath ?? \"\") });\r\n }\r\n return new Map([...result].sort(([a], [b]) => a.localeCompare(b)));\r\n}\r\n\r\nfunction projectMaterial(value)\r\n{\r\n const parameters = new Map();\r\n for (const parameter of Array.isArray(value.parameters) ? value.parameters : [])\r\n {\r\n // Carbon copies the Vector4 by value into the map through the virtual\r\n // GetValue (EveSOFDataMgr.cpp:1845-1855); do not alias the authored array.\r\n if (parameter) parameters.set(String(parameter.name), flattenParameterValue(parameter));\r\n }\r\n return { ...value, parameters };\r\n}\r\n\r\nfunction projectPattern(value)\r\n{\r\n const oldApplicationData = new Map();\r\n const applicationData = new Map();\r\n // Carbon copies the layer struct BY VALUE into every application pair\r\n // (EveSOFDataMgr.cpp:1538-1570 push_back(make_pair(pld, ppd))), so each\r\n // hull application owns an independent layer record.\r\n for (const hull of Array.isArray(value.projections) ? value.projections : [])\r\n {\r\n oldApplicationData.set(String(hull?.name ?? \"\"), {\r\n layerAndProjection: [\r\n { layer: projectPatternLayer(value.layer1, null), projection: projectPatternProjection(hull?.transformLayer1) },\r\n { layer: projectPatternLayer(value.layer2, null), projection: projectPatternProjection(hull?.transformLayer2) }\r\n ]\r\n });\r\n }\r\n for (const group of Array.isArray(value.applicationGroups) ? value.applicationGroups : [])\r\n {\r\n for (const hull of Array.isArray(group?.projections) ? group.projections : [])\r\n {\r\n const layerAndProjection = [];\r\n if (value.layer1 && group.layer1Properties && hull?.transformLayer1)\r\n {\r\n layerAndProjection.push({\r\n layer: projectPatternLayer(value.layer1, group.layer1Properties),\r\n projection: projectPatternProjection(hull.transformLayer1)\r\n });\r\n }\r\n if (value.layer2 && group.layer2Properties && hull?.transformLayer2)\r\n {\r\n layerAndProjection.push({\r\n layer: projectPatternLayer(value.layer2, group.layer2Properties),\r\n projection: projectPatternProjection(hull.transformLayer2)\r\n });\r\n }\r\n applicationData.set(String(hull?.name ?? \"\"), { layerAndProjection });\r\n }\r\n }\r\n return { ...value, oldApplicationData, applicationData };\r\n}\r\n\r\nfunction projectPatternLayer(layer, properties)\r\n{\r\n const applicableAreas = new Map(Array.from({ length: 11 }, (_, index) => [index, true]));\r\n if (properties)\r\n {\r\n const keys = [\"Primary\", \"Glass\", \"Sails\", \"Reactor\", \"Darkhull\", null, \"Rock\", \"Monument\", \"Ornament\", \"SimplePrimary\", null];\r\n keys.forEach((key, index) => {\r\n applicableAreas.set(index, key ? properties[key] !== false : true);\r\n });\r\n }\r\n if (!layer)\r\n {\r\n return {\r\n textureName: \"\",\r\n textureResFilePath: \"\",\r\n projectionAddressModeU: 1,\r\n projectionAddressModeV: 1,\r\n materialSourceID: 0,\r\n materialTargets: [0, 0, 0, 0],\r\n applicableAreas\r\n };\r\n }\r\n const source = properties ?? layer;\r\n return {\r\n textureName: String(layer.textureName ?? \"\"),\r\n textureResFilePath: String(layer.textureResFilePath ?? \"\"),\r\n projectionAddressModeU: projectAddressMode(source.projectionTypeU),\r\n projectionAddressModeV: projectAddressMode(source.projectionTypeV),\r\n materialSourceID: Number(layer.materialSource ?? 0),\r\n materialTargets: [source.isTargetMtl1, source.isTargetMtl2, source.isTargetMtl3, source.isTargetMtl4]\r\n .map(value => value === false ? 0 : 1),\r\n applicableAreas\r\n };\r\n}\r\n\r\nfunction projectPatternProjection(value)\r\n{\r\n return value ? {\r\n enabled: true,\r\n position: copyArray(value.position, [0, 0, 0]),\r\n scaling: copyArray(value.scaling, [1, 1, 1]),\r\n rotation: copyArray(value.rotation, [0, 0, 0, 1]),\r\n isMirrored: value.isMirrored === true\r\n } : {\r\n enabled: false,\r\n position: [0, 0, 0],\r\n scaling: [1, 1, 1],\r\n rotation: [0, 0, 0, 1],\r\n isMirrored: false\r\n };\r\n}\r\n\r\nfunction projectAddressMode(value)\r\n{\r\n if (Number(value) === 1) return 3;\r\n if (Number(value) === 2) return 4;\r\n return 1;\r\n}\r\n\r\nfunction projectLayout(value)\r\n{\r\n return {\r\n name: String(value?.name ?? \"\"),\r\n seed: Number(value?.seed ?? 1337) >>> 0,\r\n scrambleSeed: value?.randomizeSeedOnLoad === true,\r\n placements: projectExtensionPlacements(value?.placements),\r\n depletionCounters: projectDepletionCounters(value?.depletionCounters)\r\n };\r\n}\r\n\r\nfunction projectExtensionPlacements(values)\r\n{\r\n return (Array.isArray(values) ? values : [])\r\n .filter(Boolean)\r\n .map(projectExtensionPlacement);\r\n}\r\n\r\nfunction projectExtensionPlacement(value)\r\n{\r\n if (isExtensionPlacementGroup(value))\r\n {\r\n return {\r\n name: String(value.name ?? \"\"),\r\n enabled: value.enabled !== false,\r\n isAGroup: true,\r\n depletionCounters: projectDepletionCounters(value.depletionCounters),\r\n placements: projectExtensionPlacements(value.placements),\r\n placementConditions: projectDistributionConditions(value.distributionConditions)\r\n };\r\n }\r\n\r\n return {\r\n name: String(value.name ?? \"\"),\r\n enabled: value.enabled !== false,\r\n offset: copyArray(value.offset, [0, 0, 0]),\r\n locatorSetName: String(value.locatorSetName ?? \"\"),\r\n descriptor: projectDnaDescriptor(value.descriptor),\r\n isInstanced: value.isInstanced !== false,\r\n isShared: value.isShared === true,\r\n extendsBoundingSphere: value.extendsBoundingSphere !== false,\r\n extendsShieldEllipsoid: value.extendsShieldEllipsoid !== false,\r\n hasDistribution: value.distribution != null,\r\n distribution: projectPlacementDistribution(value.distribution),\r\n placementConditions: projectDistributionConditions(value.distributionConditions),\r\n isAGroup: false,\r\n depletionCounters: [],\r\n placements: []\r\n };\r\n}\r\n\r\nfunction isExtensionPlacementGroup(value)\r\n{\r\n const className = getStableClassName(value);\r\n // Carbon's unpacker currently casts Bucket through its concrete Placement\r\n // lineage, so it does not recurse into Bucket. JavaScript deliberately keeps\r\n // Bucket group-like because the authored type owns `placements`; retain this\r\n // compatibility repair until authored data or a native fixture proves the\r\n // native leaf behavior is required.\r\n if (className === \"EveSOFDataHullExtensionBucket\") return true;\r\n if (className === \"EveSOFDataHullExtensionPlacementGroup\") return true;\r\n if (className === \"EveSOFDataHullExtensionPlacement\") return false;\r\n return Array.isArray(value?.placements)\r\n && !Object.hasOwn(value, \"descriptor\")\r\n && !Object.hasOwn(value, \"locatorSetName\");\r\n}\r\n\r\nfunction projectDnaDescriptor(value)\r\n{\r\n return {\r\n hull: String(value?.hull ?? \"\"),\r\n faction: String(value?.faction ?? \"\"),\r\n race: String(value?.race ?? \"\"),\r\n pattern: String(value?.pattern ?? \"\"),\r\n material1: String(value?.material1 ?? \"\"),\r\n material2: String(value?.material2 ?? \"\"),\r\n material3: String(value?.material3 ?? \"\"),\r\n material4: String(value?.material4 ?? \"\"),\r\n layout: String(value?.layout ?? \"\"),\r\n seed: String(value?.seed ?? \"\")\r\n };\r\n}\r\n\r\nfunction projectPlacementDistribution(value)\r\n{\r\n return {\r\n completeness: Number(value?.completeness ?? 1),\r\n placementBias: copyArray(value?.placementBias, [0, 0, 0]),\r\n centerBias: Number(value?.centerBias ?? 0),\r\n cap: Number(value?.cap ?? 0) | 0,\r\n randomRotationStepSizeYPR: copyArray(\r\n value?.randomRotationStepSizeYPR,\r\n [0.008802, 0.0086497, 0.0086497, 0.9998864]\r\n ),\r\n randomRotationMaxSteps: copyArray(value?.randomRotationMaxSteps, [0, 0, 0]),\r\n randomScaleMin: copyArray(value?.randomScaleMin, [1, 1, 1]),\r\n randomScaleMax: copyArray(value?.randomScaleMax, [1, 1, 1]),\r\n uniformScaling: value?.uniformScale !== false,\r\n occupyLocators: value?.occupyLocators !== false\r\n };\r\n}\r\n\r\nfunction projectDistributionConditions(values)\r\n{\r\n return (Array.isArray(values) ? values : [])\r\n .filter(Boolean)\r\n .map(projectDistributionCondition);\r\n}\r\n\r\nfunction projectDistributionCondition(value)\r\n{\r\n const className = getStableClassName(value);\r\n const result = {\r\n distributionType: EveSOFDataMgr.DistributionMethod.RANDOM_INCLUCION,\r\n seed: 0,\r\n spaceObjectParentDescriptor: projectDnaDescriptor(null),\r\n depletionCounters: [],\r\n triggerChance: 0,\r\n displayModifier: 0\r\n };\r\n\r\n if (className.endsWith(\"ParentMatch\") || Object.hasOwn(value, \"parentDescriptor\"))\r\n {\r\n result.distributionType = EveSOFDataMgr.DistributionMethod.PARENT_MATCH;\r\n result.spaceObjectParentDescriptor = projectDnaDescriptor(value.parentDescriptor);\r\n }\r\n else if (className.endsWith(\"DepletionCounter\") || Object.hasOwn(value, \"depletionCounters\"))\r\n {\r\n result.distributionType = EveSOFDataMgr.DistributionMethod.DEPLETION_COUNTER;\r\n result.depletionCounters = projectDepletionCounters(value.depletionCounters);\r\n }\r\n else if (className.endsWith(\"MapGraphicSettings\") || Object.hasOwn(value, \"displayFilter\"))\r\n {\r\n result.distributionType = EveSOFDataMgr.DistributionMethod.GRAPHIC_SETTING_MAP;\r\n result.displayModifier = Number(value.displayFilter ?? 5) | 0;\r\n }\r\n else if (className.endsWith(\"RandomChance\") || Object.hasOwn(value, \"chanceOfUsage\"))\r\n {\r\n result.triggerChance = Number(value.chanceOfUsage ?? 1);\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction projectDepletionCounters(values)\r\n{\r\n return (Array.isArray(values) ? values : [])\r\n .filter(Boolean)\r\n .map(value => ({\r\n counterName: String(value.name ?? value.counterName ?? \"\"),\r\n counterValue: Number(value.value ?? value.counterValue ?? 1) | 0\r\n }));\r\n}\r\n\r\nfunction createGenericData(value)\r\n{\r\n if (!value)\r\n {\r\n return {\r\n materialPrefixes: [],\r\n patternMaterialPrefixes: [],\r\n variants: new Map(),\r\n areaShaderData: new Map(),\r\n decalShaderData: new Map(),\r\n decalMinScreenSize: [0, 0, 0, 0, 0, 0, 0],\r\n damage: projectGenericDamage(null),\r\n hullDamage: projectGenericHullDamage(null),\r\n swarmBehavior: projectSwarmBehavior(null)\r\n };\r\n }\r\n\r\n const materialPrefixes = (Array.isArray(value.materialPrefixes) ? value.materialPrefixes : [])\r\n .map(item => typeof item === \"string\" ? item : String(item?.str ?? \"\"));\r\n const patternMaterialPrefixes = (Array.isArray(value.patternMaterialPrefixes) ? value.patternMaterialPrefixes : [])\r\n .map(item => typeof item === \"string\" ? item : String(item?.str ?? \"\"));\r\n const areaShaderData = new Map();\r\n for (const shader of Array.isArray(value.areaShaders) ? value.areaShaders : [])\r\n {\r\n if (shader) areaShaderData.set(String(shader.shader), projectGenericShader(shader));\r\n }\r\n const decalShaderData = new Map();\r\n for (const shader of Array.isArray(value.decalShaders) ? value.decalShaders : [])\r\n {\r\n if (shader) decalShaderData.set(String(shader.shader), {\r\n parameters: (Array.isArray(shader.parameters) ? shader.parameters : [])\r\n .map(item => typeof item === \"string\" ? item : String(item?.str ?? \"\")),\r\n defaultTextures: projectTextureMap(shader.defaultTextures),\r\n parentTextures: (Array.isArray(shader.parentTextures) ? shader.parentTextures : [])\r\n .map(item => typeof item === \"string\" ? item : String(item?.str ?? \"\")),\r\n additive: shader.additive === true\r\n });\r\n }\r\n const variants = new Map();\r\n for (const variant of Array.isArray(value.variants) ? value.variants : [])\r\n {\r\n if (!variant?.hullArea) continue;\r\n variants.set(String(variant.name), {\r\n ...variant,\r\n hullAreaData: projectHullArea(variant.hullArea)\r\n });\r\n }\r\n const categoryData = new Map();\r\n for (const category of Array.isArray(value.hullCategoriesData) ? value.hullCategoriesData : [])\r\n {\r\n if (category?.name) categoryData.set(String(category.name), Number(category.reflectionMode ?? 0));\r\n }\r\n return {\r\n ...value,\r\n materialPrefixes,\r\n patternMaterialPrefixes,\r\n areaShaderData,\r\n decalShaderData,\r\n categoryData,\r\n decalMinScreenSize: [\r\n Number(value.decalMinScreenSizeSTANDARD ?? 0),\r\n Number(value.decalMinScreenSizeKILLCOUNTER ?? 0),\r\n Number(value.decalMinScreenSizeHOLE ?? 0),\r\n Number(value.decalMinScreenSizeCYLINDRICAL ?? 0),\r\n Number(value.decalMinScreenSizeGLOWCYLINDRICAL ?? 0),\r\n Number(value.decalMinScreenSizeGLOWSTANDARD ?? 0),\r\n Number(value.decalMinScreenSizeLOGO ?? 0)\r\n ],\r\n genericWreckMaterialData: projectSingleAreaMaterial(value.genericWreckMaterial, 5),\r\n damage: projectGenericDamage(value.damage),\r\n hullDamage: projectGenericHullDamage(value.hullDamage),\r\n swarmBehavior: projectSwarmBehavior(value.swarm),\r\n variants,\r\n bannerShader: value.bannerShader ? projectGenericShader(value.bannerShader) : null\r\n };\r\n}\r\n\r\nfunction projectSwarmBehavior(value)\r\n{\r\n return {\r\n mass: 1,\r\n speedMultiplier: Number(value?.speedMultiplier ?? 1.1),\r\n speedMinimum: Number(value?.speedMinimum ?? 10),\r\n agility: 2,\r\n maxDistance0: Number(value?.maxDistance0 ?? 500),\r\n maxDistance1: Number(value?.maxDistance1 ?? 125),\r\n timeMultiplier: 1,\r\n maxTime: Number(value?.maxTime ?? 0.2),\r\n speed0: Number(value?.speed0 ?? 700),\r\n speed1: Number(value?.speed1 ?? 1000),\r\n weightCohesion: Number(value?.weightCohesion ?? 0.1),\r\n weightSeparation: Number(value?.weightSeparation ?? 0.1),\r\n separationDistance: Number(value?.separationDistance ?? 250),\r\n weightAlign: Number(value?.weightAlign ?? 50),\r\n weightWander: Number(value?.weightWander ?? 0.33),\r\n wanderFluctuation: Number(value?.wanderFluctuation ?? 0.05),\r\n wanderDistance: Number(value?.wanderDistance ?? 100),\r\n wanderRadius: Number(value?.wanderRadius ?? 80),\r\n weightAnchor: Number(value?.weightAnchor ?? 0.5),\r\n anchorRadius0: Number(value?.anchorRadius0 ?? 75),\r\n anchorRadius1: Number(value?.anchorRadius1 ?? 250),\r\n weightDecelerate: Number(value?.weightDeceleration ?? 0.1),\r\n maxDeceleration: Number(value?.maxDeceleration ?? 200),\r\n weightFormation: Number(value?.weightFormation ?? 1),\r\n formationDistance: Number(value?.formationDistance ?? 50)\r\n };\r\n}\r\n\r\nfunction projectGenericDamage(value)\r\n{\r\n if (!value)\r\n {\r\n value = {};\r\n }\r\n return {\r\n flickerPerlinSpeed: Number(value.flickerPerlinSpeed ?? 0),\r\n flickerPerlinAlpha: Number(value.flickerPerlinAlpha ?? 0),\r\n flickerPerlinBeta: Number(value.flickerPerlinBeta ?? 0),\r\n flickerPerlinN: Number(value.flickerPerlinN ?? 0),\r\n armorParticleRate: Number(value.armorParticleRate ?? 0),\r\n armorParticleAngle: Number(value.armorParticleAngle ?? 0),\r\n armorParticleMinMaxSpeed: copyArray(value.armorParticleMinMaxSpeed, [0, 0]),\r\n armorParticleMinMaxLifeTime: copyArray(value.armorParticleMinMaxLifeTime, [0, 0]),\r\n armorParticleSizes: copyArray(value.armorParticleSizes, [0, 0, 0, 0]),\r\n armorParticleColors: [\r\n copyVector(value.armorParticleColor0),\r\n copyVector(value.armorParticleColor1),\r\n copyVector(value.armorParticleColor2),\r\n copyVector(value.armorParticleColor3)\r\n ],\r\n armorParticleTextureIndex: Number(value.armorParticleTextureIndex ?? 0),\r\n armorParticleVelocityStretchRotation: Number(value.armorParticleVelocityStretchRotation ?? 0),\r\n armorParticleDrag: Number(value.armorParticleDrag ?? 0),\r\n armorParticleTurbulenceAmplitude: Number(value.armorParticleTurbulenceAmplitude ?? 0),\r\n armorParticleTurbulenceFrequency: Number(value.armorParticleTurbulenceFrequency ?? 0),\r\n armorParticleColorMidPoint: Number(value.armorParticleColorMidPoint ?? 0),\r\n armorShader: String(value.armorShader ?? \"\"),\r\n shieldShaderEllipsoid: String(value.shieldShaderEllipsoid ?? \"\"),\r\n shieldShaderHull: String(value.shieldShaderHull ?? \"\"),\r\n shieldGeometryResFilePath: String(value.shieldGeometryResFilePath ?? \"\")\r\n };\r\n}\r\n\r\nfunction projectGenericHullDamage(value)\r\n{\r\n if (!value)\r\n {\r\n value = {};\r\n }\r\n return {\r\n hullParticleRate: Number(value.hullParticleRate ?? 0),\r\n hullParticleAngle: Number(value.hullParticleAngle ?? 0),\r\n hullParticleInnerAngle: Number(value.hullParticleInnerAngle ?? 0),\r\n hullParticleColorMidpoint: Number(value.hullParticleColorMidpoint ?? 0),\r\n hullParticleMinMaxSpeed: copyArray(value.hullParticleMinMaxSpeed, [0, 0]),\r\n hullParticleMinMaxLifeTime: copyArray(value.hullParticleMinMaxLifeTime, [0, 0]),\r\n hullParticleSizes: copyArray(value.hullParticleSizes, [0, 0, 0, 0]),\r\n hullParticleColors: [\r\n copyVector(value.hullParticleColor0),\r\n copyVector(value.hullParticleColor1),\r\n copyVector(value.hullParticleColor2),\r\n copyVector(value.hullParticleColor3)\r\n ],\r\n hullParticleTextureIndex: Number(value.hullParticleTextureIndex ?? 0),\r\n hullParticleVelocityStretchRotation: Number(value.hullParticleVelocityStretchRotation ?? 0),\r\n hullParticleDrag: Number(value.hullParticleDrag ?? 0),\r\n hullParticleTurbulenceAmplitude: Number(value.hullParticleTurbulenceAmplitude ?? 0),\r\n hullParticleTurbulenceFrequency: Number(value.hullParticleTurbulenceFrequency ?? 0)\r\n };\r\n}\r\n\r\nfunction projectAreas(values)\r\n{\r\n return (Array.isArray(values) ? values : []).map(projectHullArea);\r\n}\r\n\r\nfunction projectHullArea(value)\r\n{\r\n const textures = new Map();\r\n for (const texture of Array.isArray(value?.textures) ? value.textures : [])\r\n {\r\n if (texture) textures.set(String(texture.name), { resFilePath: String(texture.resFilePath ?? \"\") });\r\n }\r\n const parameters = new Map();\r\n for (const parameter of Array.isArray(value?.parameters) ? value.parameters : [])\r\n {\r\n if (parameter) parameters.set(String(parameter.name), flattenParameterValue(parameter));\r\n }\r\n return {\r\n index: Number(value?.index ?? 0),\r\n count: Number(value?.count ?? 1),\r\n blockedMaterials: Number(value?.blockedMaterials ?? 0),\r\n shader: String(value?.shader ?? \"\"),\r\n areaType: Number(value?.areaType ?? 0),\r\n name: String(value?.name ?? \"\"),\r\n textures,\r\n parameters\r\n };\r\n}\r\n\r\nfunction projectGenericShader(value)\r\n{\r\n const defaultTextures = new Map();\r\n for (const texture of Array.isArray(value.defaultTextures) ? value.defaultTextures : [])\r\n {\r\n if (texture) defaultTextures.set(String(texture.name), { resFilePath: String(texture.resFilePath ?? \"\") });\r\n }\r\n const defaultParameters = new Map();\r\n for (const parameter of Array.isArray(value.defaultParameters) ? value.defaultParameters : [])\r\n {\r\n if (parameter) defaultParameters.set(String(parameter.name), flattenParameterValue(parameter));\r\n }\r\n const parameters = (Array.isArray(value.parameters) ? value.parameters : [])\r\n .map(item => typeof item === \"string\" ? item : String(item?.str ?? \"\"));\r\n return {\r\n shader: String(value.shader ?? \"\"),\r\n parameters,\r\n defaultParameters,\r\n defaultTextures,\r\n transparencyTextureName: String(value.transparencyTextureName ?? \"\"),\r\n doGenerateDepthArea: value.doGenerateDepthArea !== false\r\n };\r\n}\r\n\r\nconst AREA_MATERIAL_KEYS = Object.freeze([\r\n \"Primary\",\r\n \"Glass\",\r\n \"Sails\",\r\n \"Reactor\",\r\n \"Darkhull\",\r\n \"Wreck\",\r\n \"Rock\",\r\n \"Monument\",\r\n \"Ornament\",\r\n \"SimplePrimary\",\r\n \"Turret\"\r\n]);\r\n\r\nconst FACTION_COLOR_KEYS = Object.freeze([\r\n \"Primary\",\r\n \"Secondary\",\r\n \"Tertiary\",\r\n \"Black\",\r\n \"White\",\r\n \"Yellow\",\r\n \"Orange\",\r\n \"Red\",\r\n \"Blue\",\r\n \"Green\",\r\n \"Cyan\",\r\n \"Fire\",\r\n \"Hull\",\r\n \"Glass\",\r\n \"Reactor\",\r\n \"Darkhull\",\r\n \"Booster\",\r\n \"Killmark\",\r\n \"PrimaryLight\",\r\n \"SecondaryLight\",\r\n \"TertiaryLight\",\r\n \"WhiteLight\",\r\n \"PrimaryHologram\",\r\n \"SecondaryHologram\",\r\n \"TertiaryHologram\",\r\n \"State0\",\r\n \"State1\",\r\n \"State2\",\r\n \"State3\",\r\n \"StateVulnerable\",\r\n \"StateInvulnerable\",\r\n \"PrimaryForcefield\",\r\n \"SecondaryForcefield\",\r\n \"PrimaryBanner\",\r\n \"PrimaryFx\",\r\n \"SecondaryFx\",\r\n \"PrimarySpotlight\",\r\n \"SecondarySpotlight\",\r\n \"TertiarySpotlight\",\r\n \"PrimaryBillboard\",\r\n \"PrimaryWarpFx\",\r\n \"PrimaryAttackFX\",\r\n \"PrimarySiegeFX\",\r\n \"PrimaryDockedFX\"\r\n]);\r\n\r\nfunction factionColorDefault(index)\r\n{\r\n switch (index)\r\n {\r\n case 39: return [2.5, 2.5, 2.5, 2.5];\r\n case 40: return [1, 99 / 255, 51 / 255, 1];\r\n case 41: return [1, 24 / 255, 11 / 255, 1];\r\n case 42: return [1, 94 / 255, 45 / 255, 1];\r\n case 43: return [76 / 255, 130 / 255, 226 / 255, 1];\r\n default: return [0, 0, 0, 1];\r\n }\r\n}\r\n\r\nfunction createAreaMaterialData()\r\n{\r\n return {\r\n materialNames: new Map(),\r\n glowColor: new Map()\r\n };\r\n}\r\n\r\nfunction projectAreaMaterials(areaTypes)\r\n{\r\n const result = createAreaMaterialData();\r\n if (!areaTypes) return result;\r\n AREA_MATERIAL_KEYS.forEach((key, areaType) =>\r\n mergeAreaMaterial(result, selectAreaMaterial(areaTypes, key), areaType));\r\n return result;\r\n}\r\n\r\nfunction selectAreaMaterial(areaTypes, key)\r\n{\r\n return selectNamedSlot(areaTypes, key, \"materials\");\r\n}\r\n\r\n/**\r\n * Carbon's generated records declare one property per slot (EveSOFDataArea's\r\n * AreaType properties, EveSOFDataFactionColorSet's ColorType properties), but\r\n * the decoded data.black record carries those slots as a lowercase-keyed child\r\n * map instead. Both shapes reach these projections, and reading only the\r\n * declared property names silently produced empty area materials and\r\n * all-black faction colors.\r\n */\r\nfunction selectNamedSlot(container, key, mapName)\r\n{\r\n if (!container) return null;\r\n if (container[key] !== undefined && container[key] !== null) return container[key];\r\n const slots = container[mapName];\r\n if (!slots) return null;\r\n const lowercase = key.toLowerCase();\r\n const direct = slots instanceof Map ? slots.get(lowercase) ?? slots.get(key) : slots[lowercase] ?? slots[key];\r\n if (direct !== undefined && direct !== null) return direct;\r\n\r\n // CASE-INSENSITIVE AGAINST THE SLOT KEYS. Carbon indexes a colour set by\r\n // the type enum (EveSOF.cpp:1103-1108, 1287), so a name's casing never\r\n // mattered there. Here the slot keys are camelCase (\"primarySpotlight\")\r\n // and the requested names mix PascalCase and acronyms (\"PrimarySpotlight\",\r\n // \"PrimaryFx\", \"PrimaryAttackFX\"); lower-casing only the request found\r\n // single-word types and sent every multi-word one to the black default.\r\n const entries = slots instanceof Map ? slots.entries() : Object.entries(slots);\r\n for (const [ slotKey, value ] of entries)\r\n {\r\n if (String(slotKey).toLowerCase() === lowercase) return value ?? null;\r\n }\r\n return null;\r\n}\r\n\r\nfunction projectSingleAreaMaterial(value, areaType)\r\n{\r\n const result = createAreaMaterialData();\r\n mergeAreaMaterial(result, value, areaType);\r\n return result;\r\n}\r\n\r\nfunction mergeAreaMaterial(result, value, areaType)\r\n{\r\n if (!value) return;\r\n [\r\n areaMaterialName(value.material1, \"material1\"),\r\n areaMaterialName(value.material2, \"material2\"),\r\n areaMaterialName(value.material3, \"material3\"),\r\n areaMaterialName(value.material4, \"material4\")\r\n ].forEach((name, materialIndex) => {\r\n if (name) result.materialNames.set(`${areaType}:${materialIndex}`, name);\r\n });\r\n result.glowColor.set(`${areaType}:GeneralGlowColor`, Number(value.colorType ?? TYPE_HULL));\r\n}\r\n\r\n/**\r\n * Carbon's m_material[N] is a plain string, but the decoded data.black record\r\n * wraps each slot in its own single-key object ({ material1: \"name\" }).\r\n * Stringifying that wrapper produced \"[object Object]\" material names, so no\r\n * material record was ever found.\r\n */\r\nfunction areaMaterialName(value, key)\r\n{\r\n if (!value) return \"\";\r\n if (typeof value === \"string\") return value;\r\n return String(value[key] ?? value.name ?? value.str ?? \"\");\r\n}\r\n\r\nfunction isVector4(value)\r\n{\r\n return value && typeof value !== \"string\" && typeof value.length === \"number\" && value.length === 4;\r\n}\r\n\r\nfunction copyVector(value)\r\n{\r\n return value ? Array.from(value) : [0, 0, 0, 0];\r\n}\r\n\r\n/**\r\n * Flattens one authored parameter record to a shader vec4 the way Carbon's\r\n * virtual EveSOFDataParameter::GetValue does (EveSOFData.cpp:85-102): typed\r\n * records answer through GetValue when they are live class instances, and\r\n * plain data flattens by value shape - booleans and numbers broadcast to all\r\n * four components, two-component values zero-pad z and w, three-component\r\n * values zero-pad w (0, not 1), four-component values copy through.\r\n */\r\nfunction flattenParameterValue(parameter)\r\n{\r\n if (typeof parameter?.GetValue === \"function\") return Array.from(parameter.GetValue());\r\n const value = parameter?.value;\r\n if (typeof value === \"boolean\")\r\n {\r\n const scalar = value ? 1 : 0;\r\n return [scalar, scalar, scalar, scalar];\r\n }\r\n if (typeof value === \"number\") return [value, value, value, value];\r\n if (value?.length === 2) return [Number(value[0]), Number(value[1]), 0, 0];\r\n if (value?.length === 3) return [Number(value[0]), Number(value[1]), Number(value[2]), 0];\r\n return copyArray(value, [0, 0, 0, 0]);\r\n}\r\n\r\nfunction copyArray(value, fallback)\r\n{\r\n return value && typeof value.length === \"number\" ? Array.from(value) : fallback.slice();\r\n}\r\n\r\nfunction identityMatrix()\r\n{\r\n return [\r\n 1, 0, 0, 0,\r\n 0, 1, 0, 0,\r\n 0, 0, 1, 0,\r\n 0, 0, 0, 1\r\n ];\r\n}\r\n\r\nfunction fnv1(value)\r\n{\r\n let hash = 2166136261;\r\n for (const byte of new TextEncoder().encode(value))\r\n {\r\n hash = Math.imul(hash, 16777619);\r\n hash ^= byte > 127 ? byte - 256 : byte;\r\n }\r\n return hash >>> 0;\r\n}\r\n"],"names":["TYPE_HULL","TYPE_BOOSTER","TYPE_REACTOR","EveSOFDataFactionColorSet","ColorType","LOGO_KEYS","Object","freeze","_EveSOFDataMgr","_identity","EveSOFDataMgr","CjsModel","e","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","implemented","Map","createGenericData","SetResourceLoader","loader","TypeError","LoadData","filePath","data","then","SetData","LoadDataAsync","key","normalizeResourcePath","existing","get","operation","Promise","resolve","set","clear","delete","indexNamed","hull","projectHull","faction","projectFaction","race","projectRace","material","projectMaterial","pattern","projectPattern","layout","projectLayout","generic","HasHullData","name","has","String","GetHullData","HasFactionData","GetFactionData","HasRaceData","GetRaceData","HasMaterialData","GetMaterialData","HasPatternData","GetPatternData","HasLayoutData","GetLayoutData","nameOrNames","Array","isArray","result","push","GetGenericData","HasGenericData","ListHullDataNames","listCatalogNames","ListFactionDataNames","ListRaceDataNames","ListMaterialDataNames","ListPatternDataNames","ListPatternDataNamesForHull","hullName","getCatalogValue","getMapValue","getPatternApplications","normalizeCatalogName","Set","filter","Boolean","sort","left","right","localeCompare","ListLayoutDataNames","GetHullDataJson","getCatalogJson","GetFactionDataJson","GetRaceDataJson","GetMaterialDataJson","GetLayoutDataJson","GetPatternHullDataJson","patternName","application","projectJsonValue","UpdateHull","value","updateNamed","UpdateFaction","UpdateRace","UpdateMaterial","UpdatePattern","UpdateLayout","UpdateGeneric","#clear","DistributionMethod","RANDOM_INCLUCION","PARENT_MATCH","DEPLETION_COUNTER","GRAPHIC_SETTING_MAP","constructor","values","target","projector","keys","map","requested","sof6","applicationData","oldApplicationData","trim","toLowerCase","OMIT_JSON_VALUE","Symbol","stack","undefined","Number","isFinite","ArrayBuffer","from","Uint8Array","DataView","buffer","byteOffset","byteLength","isView","item","projected","add","entries","compareJsonValues","CjsSchema","isModelInstance","GetValues","refs","typeTags","JSON","stringify","opaqueAreas","projectAreas","meshIndexToOpaqueAreaLookup","forEach","area","index","locatorSets","locatorState","uniqueID","locatorSet","projectLocatorSet","impactEffectType","geometryResFilePath","boundingSphere","copyArray","shapeEllipsoidCenter","shapeEllipsoidRadius","shapeEllipsoid","center","radius","decalAreas","transparentAreas","additiveAreas","distortionAreas","hullDecalSets","projectHullDecalSets","decalSets","hullLightSets","projectHullLightSets","lightSets","spriteSets","projectHullSpriteSets","spotlightSets","projectHullSpotlightSets","planeSets","projectHullPlaneSets","spriteLineSets","projectHullSpriteLineSets","hazeSets","projectHullHazeSets","banners","projectHullBanners","bannerSets","projectHullBannerSets","children","projectHullChildren","childSets","projectHullChildSets","instancedMeshes","projectHullInstancedMeshes","animations","projectHullAnimations","soundEmitters","projectHullSoundEmitters","controllers","projectHullControllers","boosters","projectHullBooster","booster","modelRotationCurvePath","modelTranslationCurvePath","locatorTurrets","locator","transform","identityMatrix","audioPosition","defaultPattern","projectPatternProjection","transformLayer1","redFilePath","lowestLodVisible","translation","rotation","scaling","id","groupIndex","buildFilter","visibilityGroup","fnv1","visibilityGroupName","items","startRotationValue","endRotationValue","startRotationTime","endRotationTime","startTranslationValue","endTranslationValue","startTranslationTime","endTranslationTime","startRate","endRate","prefix","position","attenuationScalingFactor","path","alwaysOn","hasTrails","driveName","effectPath","parameters","projectParameterMap","textures","projectTextureMap","functionality","hasTrail","atlasIndex0","atlasIndex1","lightScale","bounds","createEmptyBounds","instances","matrix","mat4","fromRotationTranslationScale","create","includeTransformedScalingBounds","transform0","transform1","transform2","lastTransform0","slice","lastTransform1","lastTransform2","boneIndex","texture","resFilePath","displayModifier","geometryResPath","shader","finalizeBounds","min","POSITIVE_INFINITY","max","NEGATIVE_INFINITY","populated","extent","Math","abs","x","y","z","point","vec3","transformMat4","axis","groups","reference","usage","light","lightOverride","projectBannerItem","bannerLight","radiusMultiplier","brightness","innerRadiusMultiplier","noiseAmplitude","noiseFrequency","noiseOctaves","noiceOctaves","saturation","banner","projectPointLightAttachment","bannerTypes","angleX","angleY","bone","hazeType","skinned","colorType","hazeBrightness","hazeFalloff","sourceBrightness","sourceSize","boosterGainInfluence","lights","blinkPhaseShift","blinkPhase","blinkRate","falloff","maxScale","minScale","spacing","isCircle","intensity","layer1MapResPath","layer2MapResPath","maskMapResPath","atlasSize","atlasAspectRatio","layer1Scroll","layer1Transform","layer2Scroll","layer2Transform","color","maskMapAtlasIndex","rate","phase","dutyCycle","blinkMode","zOffset","coneTextureResPath","glowTextureResPath","spriteScale","coneIntensity","flareIntensity","spriteIntensity","projectSpotLightAttachment","innerAngleMultiplier","outerAngleMultiplier","innerScaleMultiplier","outerScaleMultiplier","lightProfilePath","projectHullLightSetItem","getHullLightType","innerRadius","lightColor","texturePath","innerAngle","outerAngle","flags","isInteger","getStableClassName","endsWith","getClassName","_sourceClassName","state","locators","child","projectHullDecalSetItem","meshIndex","glowColorType","logoType","indexBuffers","projectDecalIndexBuffers","multiHullIndexBuffers","combinedGeometryResPath","indexBuffer","logos","selectNamedSlot","logoSet","visibilityGroups","visibilityGroupSet","str","visibilityData","spotlightSetsColors","coneColor","flareColor","spriteColor","planeSetsColors","factionChildren","isVisible","colorData","colors","colorSet","FACTION_COLOR_KEYS","isVector4","copyVector","factionColorDefault","areaMaterials","projectAreaMaterials","areaTypes","logoSetData","materialUsageList","materialUsageMtl1","materialUsageMtl2","materialUsageMtl3","materialUsageMtl4","defaultPatternInfo","projectPatternLayer","defaultPatternLayer1MaterialName","defaultPatternLayer2MaterialName","defaultPatternName","createAreaMaterialData","glowColor","hullPrimaryHeatColorType","hullReactorHeatColorType","projectRaceBooster","damage","projectRaceDamage","scale","glowScale","warpGlowColor","symHaloScale","haloScaleX","haloScaleY","haloColor","warpHaloColor","warpHalpColor","trailColor","trailSize","shape0","projectRaceBoosterShape","shape1","warpShape0","warpShape1","shapeAtlasResPath","gradient0ResPath","gradient1ResPath","shapeAtlasHeight","shapeAtlasCount","lightOffset","lightRadius","lightWarpRadius","lightFlickerAmplitude","lightFlickerFrequency","lightWarpColor","noiseFunction","noiseSpeed","noiseAmplitureStart","noiseAmplitureEnd","armorDamageParameters","armorImpactParameters","armorDamageTextures","armorImpactTextures","shieldDamageParameters","shieldImpactParameters","shieldDamageTextures","shieldImpactTextures","flattenParameterValue","a","b","parameter","projections","layerAndProjection","layer","layer1","projection","layer2","transformLayer2","group","applicationGroups","layer1Properties","layer2Properties","properties","applicableAreas","length","_","textureName","textureResFilePath","projectionAddressModeU","projectionAddressModeV","materialSourceID","materialTargets","source","projectAddressMode","projectionTypeU","projectionTypeV","materialSource","isTargetMtl1","isTargetMtl2","isTargetMtl3","isTargetMtl4","enabled","isMirrored","seed","scrambleSeed","randomizeSeedOnLoad","placements","projectExtensionPlacements","depletionCounters","projectDepletionCounters","projectExtensionPlacement","isExtensionPlacementGroup","isAGroup","placementConditions","projectDistributionConditions","distributionConditions","offset","locatorSetName","descriptor","projectDnaDescriptor","isInstanced","isShared","extendsBoundingSphere","extendsShieldEllipsoid","hasDistribution","distribution","projectPlacementDistribution","hasOwn","material1","material2","material3","material4","completeness","placementBias","centerBias","cap","randomRotationStepSizeYPR","randomRotationMaxSteps","randomScaleMin","randomScaleMax","uniformScaling","uniformScale","occupyLocators","projectDistributionCondition","distributionType","spaceObjectParentDescriptor","triggerChance","parentDescriptor","displayFilter","chanceOfUsage","counterName","counterValue","materialPrefixes","patternMaterialPrefixes","variants","areaShaderData","decalShaderData","decalMinScreenSize","projectGenericDamage","hullDamage","projectGenericHullDamage","swarmBehavior","projectSwarmBehavior","areaShaders","projectGenericShader","decalShaders","defaultTextures","parentTextures","additive","variant","hullArea","hullAreaData","projectHullArea","categoryData","category","hullCategoriesData","reflectionMode","decalMinScreenSizeSTANDARD","decalMinScreenSizeKILLCOUNTER","decalMinScreenSizeHOLE","decalMinScreenSizeCYLINDRICAL","decalMinScreenSizeGLOWCYLINDRICAL","decalMinScreenSizeGLOWSTANDARD","decalMinScreenSizeLOGO","genericWreckMaterialData","projectSingleAreaMaterial","genericWreckMaterial","swarm","bannerShader","mass","speedMultiplier","speedMinimum","agility","maxDistance0","maxDistance1","timeMultiplier","maxTime","speed0","speed1","weightCohesion","weightSeparation","separationDistance","weightAlign","weightWander","wanderFluctuation","wanderDistance","wanderRadius","weightAnchor","anchorRadius0","anchorRadius1","weightDecelerate","weightDeceleration","maxDeceleration","weightFormation","formationDistance","flickerPerlinSpeed","flickerPerlinAlpha","flickerPerlinBeta","flickerPerlinN","armorParticleRate","armorParticleAngle","armorParticleMinMaxSpeed","armorParticleMinMaxLifeTime","armorParticleSizes","armorParticleColors","armorParticleColor0","armorParticleColor1","armorParticleColor2","armorParticleColor3","armorParticleTextureIndex","armorParticleVelocityStretchRotation","armorParticleDrag","armorParticleTurbulenceAmplitude","armorParticleTurbulenceFrequency","armorParticleColorMidPoint","armorShader","shieldShaderEllipsoid","shieldShaderHull","shieldGeometryResFilePath","hullParticleRate","hullParticleAngle","hullParticleInnerAngle","hullParticleColorMidpoint","hullParticleMinMaxSpeed","hullParticleMinMaxLifeTime","hullParticleSizes","hullParticleColors","hullParticleColor0","hullParticleColor1","hullParticleColor2","hullParticleColor3","hullParticleTextureIndex","hullParticleVelocityStretchRotation","hullParticleDrag","hullParticleTurbulenceAmplitude","hullParticleTurbulenceFrequency","count","blockedMaterials","areaType","defaultParameters","transparencyTextureName","doGenerateDepthArea","AREA_MATERIAL_KEYS","materialNames","mergeAreaMaterial","selectAreaMaterial","container","mapName","slots","lowercase","direct","slotKey","areaMaterialName","materialIndex","GetValue","scalar","fallback","hash","byte","TextEncoder","encode","imul"],"mappings":"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"}
|