@carbonenginejs/runtime 0.1.0-alpha.4 → 0.1.0-alpha.5
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.
- package/dist/global/blue/BlueClasses.js +200 -0
- package/dist/global/blue/BlueClasses.js.map +1 -0
- package/dist/global/blue/IBlueClasses.js +79 -0
- package/dist/global/blue/IBlueClasses.js.map +1 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js +16 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -1
- package/dist/global/blue/blue.js +8 -2
- package/dist/global/blue/blue.js.map +1 -1
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -1
- package/dist/global/consts/index.js +0 -1
- package/dist/global/consts/index.js.map +1 -1
- package/dist/global/consts/renderContext/formats.js +26 -25
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/{trinityal/Tr2BitmapDimensions.js → global/imageio/BitmapDimensions.js} +19 -15
- package/dist/global/imageio/BitmapDimensions.js.map +1 -0
- package/dist/global/imageio/Cutout.js +28 -0
- package/dist/global/imageio/Cutout.js.map +1 -0
- package/dist/global/imageio/HostBitmap.js +1106 -0
- package/dist/global/imageio/HostBitmap.js.map +1 -0
- package/dist/global/imageio/ImageIOResult.js +99 -0
- package/dist/global/imageio/ImageIOResult.js.map +1 -0
- package/dist/global/imageio/ImageUtility.js +205 -0
- package/dist/global/imageio/ImageUtility.js.map +1 -0
- package/dist/global/imageio/LoadParameters.js +86 -0
- package/dist/global/imageio/LoadParameters.js.map +1 -0
- package/dist/global/imageio/Metadata.js +22 -0
- package/dist/global/imageio/Metadata.js.map +1 -0
- package/dist/global/imageio/index.js +8 -0
- package/dist/global/{consts/webgpu → imageio}/index.js.map +1 -1
- package/dist/global/index.js +2 -1
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/color.js +1 -1
- package/dist/global/math/color.js.map +1 -1
- package/dist/global/schema/CjsSchema.js +8 -0
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/resource/CjsResMan.js +47 -7
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/Tr2LightProfileRes.js +37 -0
- package/dist/resource/Tr2LightProfileRes.js.map +1 -1
- package/dist/resource/format/CjsByteWriter.js +46 -46
- package/dist/resource/format/CjsByteWriter.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +7 -8
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatStore.js +8 -8
- package/dist/resource/format/CjsFormatStore.js.map +1 -1
- package/dist/resource/format/CjsGeometryFormat.js +114 -0
- package/dist/resource/format/CjsGeometryFormat.js.map +1 -0
- package/dist/resource/format/CjsImageFormat.js +282 -0
- package/dist/resource/format/CjsImageFormat.js.map +1 -0
- package/dist/resource/format/CjsResourceProbe.js +12 -48
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/CjsStringTable.js +37 -37
- package/dist/resource/format/CjsStringTable.js.map +1 -1
- package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js +10 -10
- package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
- package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js +37 -37
- package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -1
- package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js +35 -7
- package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
- package/dist/resource/format/index.js +3 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/formats/black/CjsBlackFormat.js +130 -137
- package/dist/resource/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +12 -19
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +1 -3
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +19 -82
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/constants.js +1 -2
- package/dist/resource/formats/cmf/core/constants.js.map +1 -1
- package/dist/resource/formats/{stl/core/targets.js → cmf/core/flatShared.js} +9 -8
- package/dist/resource/formats/cmf/core/flatShared.js.map +1 -0
- package/dist/resource/formats/cmf/core/helpers.js +13 -13
- package/dist/resource/formats/cmf/core/helpers.js.map +1 -1
- package/dist/resource/formats/cmf/core/writer.js +24 -24
- package/dist/resource/formats/cmf/core/writer.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +134 -17
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +125 -40
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +14 -16
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/{container.js → DxbcContainer.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcContainer.js.map +1 -0
- package/dist/resource/formats/dxbc/core/{errors.js → DxbcReadError.js} +1 -1
- package/dist/resource/formats/dxbc/core/DxbcReadError.js.map +1 -0
- package/dist/resource/formats/dxbc/core/DxbcReader.js +1 -1
- package/dist/resource/formats/dxbc/core/DxbcReader.js.map +1 -1
- package/dist/resource/formats/dxbc/core/{program.js → DxbcShaderProgram.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcShaderProgram.js.map +1 -0
- package/dist/resource/formats/dxbc/core/{signature.js → DxbcSignatureChunk.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcSignatureChunk.js.map +1 -0
- package/dist/resource/formats/dxbc/core/decoder.js +2 -2
- package/dist/resource/formats/dxbc/core/decoder.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +3 -3
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +18 -20
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +7 -13
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/fsd/32/CjsFsd32Format.js +29 -29
- package/dist/resource/formats/fsd/32/CjsFsd32Format.js.map +1 -1
- package/dist/resource/formats/fsd/64/CjsFsd64Format.js +3 -3
- package/dist/resource/formats/fsd/64/CjsFsd64Format.js.map +1 -1
- package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js +23 -23
- package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -1
- package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js +8 -8
- package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -1
- package/dist/resource/formats/fsd/CjsFsdFormat.js +23 -23
- package/dist/resource/formats/fsd/CjsFsdFormat.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +24 -15
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +33 -98
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -12
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +27 -91
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +22 -25
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js +1 -1
- package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
- package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +3 -3
- package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -1
- package/dist/resource/formats/ies/CjsIESFormat.js +29 -29
- package/dist/resource/formats/ies/CjsIESFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +24 -15
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +3 -5
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/core/jpeg.js +58 -58
- package/dist/resource/formats/jpeg/core/jpeg.js.map +1 -1
- package/dist/resource/formats/jsonl/CjsJsonlFormat.js +3 -3
- package/dist/resource/formats/jsonl/CjsJsonlFormat.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +7 -14
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +3 -5
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +7 -13
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +3 -5
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +92 -157
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +5 -113
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +7 -14
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +7 -12
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +7 -7
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +7 -7
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +40 -15
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +4 -6
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/red/CjsRedFormat.js +22 -28
- package/dist/resource/formats/red/CjsRedFormat.js.map +1 -1
- package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js +3 -7
- package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
- package/dist/resource/formats/schemabound/core/schemaBoundValues.js +5 -0
- package/dist/resource/formats/schemabound/core/schemaBoundValues.js.map +1 -1
- package/dist/resource/formats/sqlite/CjsSqliteFormat.js +4 -9
- package/dist/resource/formats/sqlite/CjsSqliteFormat.js.map +1 -1
- package/dist/resource/formats/static/CjsStaticFormat.js +4 -4
- package/dist/resource/formats/static/CjsStaticFormat.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +39 -104
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +5 -19
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +26 -15
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +3 -5
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +8 -15
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +7 -14
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +3 -5
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +103 -105
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/{errors.js → WebglReadError.js} +1 -1
- package/dist/resource/formats/webgl/core/WebglReadError.js.map +1 -0
- package/dist/resource/formats/webgl/core/effectPackage.js +1 -1
- package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +3 -3
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/{DxbcGlslHelpers.js → DxbcGlslHelperRegistry.js} +2 -2
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelperRegistry.js.map +1 -0
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glslBackendBlock.js +1 -1
- package/dist/resource/formats/webgl/core/glslBackendBlock.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +28 -29
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/{errors.js → WebgpuReadError.js} +1 -1
- package/dist/resource/formats/webgpu/core/WebgpuReadError.js.map +1 -0
- package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js +1 -1
- package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js +1 -1
- package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js +18 -6
- package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js +39 -13
- package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +16 -14
- package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +8 -13
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +3 -5
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +8 -12
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +9 -17
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +35 -35
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -3
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/yaml/CjsYamlFormat.js +28 -37
- package/dist/resource/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/resource/imageio/ImageIO.js +142 -0
- package/dist/resource/imageio/ImageIO.js.map +1 -0
- package/dist/resource/imageio/index.js +17 -0
- package/dist/resource/imageio/index.js.map +1 -0
- package/dist/resource/index.js +7 -0
- package/dist/resource/index.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +24 -2
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +76 -5
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayConstructor.js +97 -0
- package/dist/resource/texture/CjsTextureArrayConstructor.js.map +1 -0
- package/dist/resource/texture/CjsTexturePackConstructor.js +160 -0
- package/dist/resource/texture/CjsTexturePackConstructor.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepArray.js +72 -0
- package/dist/resource/texture/CjsTexturePipelineStepArray.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepConvert.js +73 -0
- package/dist/resource/texture/CjsTexturePipelineStepConvert.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepPack.js +71 -0
- package/dist/resource/texture/CjsTexturePipelineStepPack.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepResize.js +123 -0
- package/dist/resource/texture/CjsTexturePipelineStepResize.js.map +1 -0
- package/dist/resource/texture/SolidColorTextureConstructor.js +11 -1
- package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -1
- package/dist/resource/texture/Tr2ImageRes.js +100 -68
- package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +45 -25
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +34 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +30 -3
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +81 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +36 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +146 -24
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/texture/TriTextureRes.js +151 -29
- package/dist/resource/texture/TriTextureRes.js.map +1 -1
- package/dist/resource/texture/index.js +7 -0
- package/dist/resource/texture/index.js.map +1 -1
- package/dist/resource/texture/registerTextureResources.js +83 -0
- package/dist/resource/texture/registerTextureResources.js.map +1 -0
- package/dist/resource/texture/solidColorTexture.js +10 -19
- package/dist/resource/texture/solidColorTexture.js.map +1 -1
- package/dist/sof/EveSOF.js +39 -7
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js +2 -2
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -1
- package/dist/trinity/core/Tr2ImageIOHelpers.js +80 -17
- package/dist/trinity/core/Tr2ImageIOHelpers.js.map +1 -1
- package/dist/trinity/core/Tr2RenderUtils.js +1 -1
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js +49 -62
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -1
- package/dist/trinity/core/Tr2TextureReference.js +114 -0
- package/dist/trinity/core/Tr2TextureReference.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +1 -1
- package/dist/trinity/core/index.js +1 -0
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +5 -4
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/procedural/GradientTextureConstructor.js +5 -4
- package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -1
- package/dist/trinity/core/procedural/gradientTexture.js +10 -13
- package/dist/trinity/core/procedural/gradientTexture.js.map +1 -1
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +1 -1
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/eve/EveImpactOverlay.js +102 -50
- package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -18
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +175 -157
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +100 -83
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +26 -20
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +368 -179
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
- package/dist/trinity/eve/child/EveChildMesh.js +242 -234
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +57 -16
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/child/EveSpaceObjectChild.js +28 -1
- package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
- package/dist/trinity/eve/index.js +2 -2
- package/dist/trinity/eve/overlays/EveDamageOverlay.js +5 -1
- package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceScene.js +234 -233
- package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -0
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +492 -437
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -1
- 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 +3 -3
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +10 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/shader/Tr2DataTextureManager.js +152 -66
- package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js +5 -5
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -1
- package/dist/trinityal/index.js +1 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js +2 -2
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +45 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +170 -170
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +234 -164
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +7 -0
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +78 -14
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js +94 -0
- package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +1 -0
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/global/reference/classes/README.md +90 -0
- package/docs/resource/concepts/format-capabilities.md +3 -3
- package/docs/resource/formats/README.md +1 -1
- package/docs/resource/reference/classes/core.md +31 -1
- package/docs/resource/reference/classes/formats.md +7 -7
- package/docs/resource/reference/classes/resources.md +76 -16
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/trinity-core.md +1692 -1682
- package/docs/trinityal/reference/classes/README.md +0 -10
- package/docs/trinityal/webgpu/reference/classes/README.md +276 -266
- package/package.json +4 -3
- package/dist/global/consts/webgpu/index.js +0 -2
- package/dist/global/consts/webgpu/textureFormats.js +0 -180
- package/dist/global/consts/webgpu/textureFormats.js.map +0 -1
- package/dist/resource/formats/dxbc/core/container.js.map +0 -1
- package/dist/resource/formats/dxbc/core/errors.js.map +0 -1
- package/dist/resource/formats/dxbc/core/program.js.map +0 -1
- package/dist/resource/formats/dxbc/core/signature.js.map +0 -1
- package/dist/resource/formats/stl/core/targets.js.map +0 -1
- package/dist/resource/formats/webgl/core/errors.js.map +0 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +0 -1
- package/dist/resource/formats/webgpu/core/errors.js.map +0 -1
- package/dist/resource/texture/texturePipelineBehavior.js +0 -332
- package/dist/resource/texture/texturePipelineBehavior.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2TextureReference.js +0 -40
- package/dist/trinity/generated/trinityCore/Tr2TextureReference.js.map +0 -1
- package/dist/trinityal/Tr2BitmapDimensions.js.map +0 -1
|
@@ -3,7 +3,7 @@ import { edit, type, carbon, impl, CjsSchema } from '#schema';
|
|
|
3
3
|
import { EveEntity as _EveEntity } from '../../EveEntity.js';
|
|
4
4
|
import { EveComponentType } from '../../EveComponentTypes.js';
|
|
5
5
|
import { EveTurretAiming } from './EveTurretAiming.js';
|
|
6
|
-
import { EveTurretTarget as _EveTurretTarget } from './EveTurretTarget.js';
|
|
6
|
+
import { EveTurretTarget as _EveTurretTarget, EVE_TURRET_RANDOM_DELAY_MAX } from './EveTurretTarget.js';
|
|
7
7
|
import { mat4 } from '#math/mat4';
|
|
8
8
|
import { quat } from '#math/quat';
|
|
9
9
|
import { vec3 } from '#math/vec3';
|
|
@@ -19,12 +19,12 @@ import '#consts/render-context';
|
|
|
19
19
|
import { Tr2Vector4Parameter as _Tr2Vector4Parameter } from '../../../shader/parameter/Tr2Vector4Parameter.js';
|
|
20
20
|
import { ITr2Renderable } from '../../../core/ITr2Renderable.js';
|
|
21
21
|
|
|
22
|
-
let _initProto, _initClass, _init_impactBehaviour, _init_extra_impactBehaviour, _init_firingEffect, _init_extra_firingEffect, _init_ambientEffect, _init_extra_ambientEffect, _init_name, _init_extra_name, _init_firingEffectResPath, _init_extra_firingEffectResPath, _init_chooseRandomLocator, _init_extra_chooseRandomLocator, _init_boundingSphere, _init_extra_boundingSphere, _init_randomizeExplosionRotation, _init_extra_randomizeExplosionRotation, _init_lodLevel, _init_extra_lodLevel, _init_currentCyclingFiresPos, _init_extra_currentCyclingFiresPos, _init_useRandomFiringDelay, _init_extra_useRandomFiringDelay, _init_bottomClipHeight, _init_extra_bottomClipHeight, _init_geometryResource, _init_extra_geometryResource, _init_maxTrackingTime, _init_extra_maxTrackingTime, _init_visibleCount, _init_extra_visibleCount, _init_trackingInfluence, _init_extra_trackingInfluence, _init_swarmID, _init_extra_swarmID, _init_maxCyclingFirePos, _init_extra_maxCyclingFirePos, _init_playMovementSound, _init_extra_playMovementSound, _init_isOnline, _init_extra_isOnline, _init_target, _init_extra_target, _init_locatorName, _init_extra_locatorName, _init_sysBonePitchFactor, _init_extra_sysBonePitchFactor, _init_sysBonePitchMax, _init_extra_sysBonePitchMax, _init_sysBonePitchMin, _init_extra_sysBonePitchMin, _init_sysBonePitchOffset, _init_extra_sysBonePitchOffset, _init_sysBonePitch01Factor, _init_extra_sysBonePitch01Factor, _init_sysBonePitch01Offset, _init_extra_sysBonePitch01Offset, _init_sysBonePitch02Factor, _init_extra_sysBonePitch02Factor, _init_sysBonePitch02Offset, _init_extra_sysBonePitch02Offset, _init_sysBonePitch03Factor, _init_extra_sysBonePitch03Factor, _init_sysBonePitch03Offset, _init_extra_sysBonePitch03Offset, _init_updatePitchPose, _init_extra_updatePitchPose, _init_geometryResPath, _init_extra_geometryResPath, _init_impactSize, _init_extra_impactSize, _init_state, _init_extra_state, _init_sysBoneHeight, _init_extra_sysBoneHeight, _init_randomFiringDelay, _init_extra_randomFiringDelay, _init_turretEffect, _init_extra_turretEffect, _init_idleToTargetingMovementAudioEvent, _init_extra_idleToTargetingMovementAudioEvent, _init_targetingToIdleMovementAudioEvent, _init_extra_targetingToIdleMovementAudioEvent, _init_generatedDistributedAmbientEffect, _init_extra_generatedDistributedAmbientEffect, _init_cyclingFireGroupCount, _init_extra_cyclingFireGroupCount, _init_turretMovementObserver, _init_extra_turretMovementObserver, _init_slotNumber, _init_extra_slotNumber, _init_ambientEffectEditingMode, _init_extra_ambientEffectEditingMode, _init_displayEffects, _init_extra_displayEffects, _init_display, _init_extra_display, _init_useDynamicBounds, _init_extra_useDynamicBounds, _init_estimatedPixelDiameter, _init_extra_estimatedPixelDiameter, _init_lowLodFiringEffectScale, _init_extra_lowLodFiringEffectScale, _init_lowLodFiringEffectTranslation, _init_extra_lowLodFiringEffectTranslation, _init_lowLodFiringEffectRotation, _init_extra_lowLodFiringEffectRotation, _init_useLowLodFiringTransform, _init_extra_useLowLodFiringTransform, _init_laserMissBehaviour, _init_extra_laserMissBehaviour, _init_projectileMissBehaviour, _init_extra_projectileMissBehaviour;
|
|
22
|
+
let _initProto, _initStatic, _initClass, _init_impactBehaviour, _init_extra_impactBehaviour, _init_firingEffect, _init_extra_firingEffect, _init_ambientEffect, _init_extra_ambientEffect, _init_name, _init_extra_name, _init_firingEffectResPath, _init_extra_firingEffectResPath, _init_chooseRandomLocator, _init_extra_chooseRandomLocator, _init_boundingSphere, _init_extra_boundingSphere, _init_randomizeExplosionRotation, _init_extra_randomizeExplosionRotation, _init_lodLevel, _init_extra_lodLevel, _init_currentCyclingFiresPos, _init_extra_currentCyclingFiresPos, _init_useRandomFiringDelay, _init_extra_useRandomFiringDelay, _init_bottomClipHeight, _init_extra_bottomClipHeight, _init_geometryResource, _init_extra_geometryResource, _init_maxTrackingTime, _init_extra_maxTrackingTime, _init_visibleCount, _init_extra_visibleCount, _init_trackingInfluence, _init_extra_trackingInfluence, _init_swarmID, _init_extra_swarmID, _init_maxCyclingFirePos, _init_extra_maxCyclingFirePos, _init_playMovementSound, _init_extra_playMovementSound, _init_isOnline, _init_extra_isOnline, _init_target, _init_extra_target, _init_locatorName, _init_extra_locatorName, _init_sysBonePitchFactor, _init_extra_sysBonePitchFactor, _init_sysBonePitchMax, _init_extra_sysBonePitchMax, _init_sysBonePitchMin, _init_extra_sysBonePitchMin, _init_sysBonePitchOffset, _init_extra_sysBonePitchOffset, _init_sysBonePitch01Factor, _init_extra_sysBonePitch01Factor, _init_sysBonePitch01Offset, _init_extra_sysBonePitch01Offset, _init_sysBonePitch02Factor, _init_extra_sysBonePitch02Factor, _init_sysBonePitch02Offset, _init_extra_sysBonePitch02Offset, _init_sysBonePitch03Factor, _init_extra_sysBonePitch03Factor, _init_sysBonePitch03Offset, _init_extra_sysBonePitch03Offset, _init_updatePitchPose, _init_extra_updatePitchPose, _init_geometryResPath, _init_extra_geometryResPath, _init_impactSize, _init_extra_impactSize, _init_state, _init_extra_state, _init_sysBoneHeight, _init_extra_sysBoneHeight, _init_randomFiringDelay, _init_extra_randomFiringDelay, _init_turretEffect, _init_extra_turretEffect, _init_idleToTargetingMovementAudioEvent, _init_extra_idleToTargetingMovementAudioEvent, _init_targetingToIdleMovementAudioEvent, _init_extra_targetingToIdleMovementAudioEvent, _init_generatedDistributedAmbientEffect, _init_extra_generatedDistributedAmbientEffect, _init_cyclingFireGroupCount, _init_extra_cyclingFireGroupCount, _init_turretMovementObserver, _init_extra_turretMovementObserver, _init_slotNumber, _init_extra_slotNumber, _init_ambientEffectEditingMode, _init_extra_ambientEffectEditingMode, _init_displayEffects, _init_extra_displayEffects, _init_display, _init_extra_display, _init_useDynamicBounds, _init_extra_useDynamicBounds, _init_estimatedPixelDiameter, _init_extra_estimatedPixelDiameter, _init_lowLodFiringEffectScale, _init_extra_lowLodFiringEffectScale, _init_lowLodFiringEffectTranslation, _init_extra_lowLodFiringEffectTranslation, _init_lowLodFiringEffectRotation, _init_extra_lowLodFiringEffectRotation, _init_useLowLodFiringTransform, _init_extra_useLowLodFiringTransform, _init_laserMissBehaviour, _init_extra_laserMissBehaviour, _init_projectileMissBehaviour, _init_extra_projectileMissBehaviour;
|
|
23
23
|
|
|
24
|
-
/** Carbon BoundingSphereTransform (Utilities/BoundingSphere.cpp:70-81):
|
|
25
|
-
* center = TransformCoord(center, tf); radius *= max of the basis row lengths
|
|
26
|
-
* (|GetX/Y/Z| = gl flat [0..2]/[4..6]/[8..10]). Single-matrix application -
|
|
27
|
-
* NO composition, NO operand swap. Mutates the packed (x, y, z, radius)
|
|
24
|
+
/** Carbon BoundingSphereTransform (Utilities/BoundingSphere.cpp:70-81):
|
|
25
|
+
* center = TransformCoord(center, tf); radius *= max of the basis row lengths
|
|
26
|
+
* (|GetX/Y/Z| = gl flat [0..2]/[4..6]/[8..10]). Single-matrix application -
|
|
27
|
+
* NO composition, NO operand swap. Mutates the packed (x, y, z, radius)
|
|
28
28
|
* sphere in place. */
|
|
29
29
|
function BoundingSphereTransform(transform, sphere) {
|
|
30
30
|
vec3.transformMat4(sphere, sphere, transform);
|
|
@@ -38,12 +38,13 @@ new class extends _identity {
|
|
|
38
38
|
static [class EveTurretSet extends _EveEntity {
|
|
39
39
|
static {
|
|
40
40
|
({
|
|
41
|
-
e: [_init_impactBehaviour, _init_extra_impactBehaviour, _init_firingEffect, _init_extra_firingEffect, _init_ambientEffect, _init_extra_ambientEffect, _init_name, _init_extra_name, _init_firingEffectResPath, _init_extra_firingEffectResPath, _init_chooseRandomLocator, _init_extra_chooseRandomLocator, _init_boundingSphere, _init_extra_boundingSphere, _init_randomizeExplosionRotation, _init_extra_randomizeExplosionRotation, _init_lodLevel, _init_extra_lodLevel, _init_currentCyclingFiresPos, _init_extra_currentCyclingFiresPos, _init_useRandomFiringDelay, _init_extra_useRandomFiringDelay, _init_bottomClipHeight, _init_extra_bottomClipHeight, _init_geometryResource, _init_extra_geometryResource, _init_maxTrackingTime, _init_extra_maxTrackingTime, _init_visibleCount, _init_extra_visibleCount, _init_trackingInfluence, _init_extra_trackingInfluence, _init_swarmID, _init_extra_swarmID, _init_maxCyclingFirePos, _init_extra_maxCyclingFirePos, _init_playMovementSound, _init_extra_playMovementSound, _init_isOnline, _init_extra_isOnline, _init_target, _init_extra_target, _init_locatorName, _init_extra_locatorName, _init_sysBonePitchFactor, _init_extra_sysBonePitchFactor, _init_sysBonePitchMax, _init_extra_sysBonePitchMax, _init_sysBonePitchMin, _init_extra_sysBonePitchMin, _init_sysBonePitchOffset, _init_extra_sysBonePitchOffset, _init_sysBonePitch01Factor, _init_extra_sysBonePitch01Factor, _init_sysBonePitch01Offset, _init_extra_sysBonePitch01Offset, _init_sysBonePitch02Factor, _init_extra_sysBonePitch02Factor, _init_sysBonePitch02Offset, _init_extra_sysBonePitch02Offset, _init_sysBonePitch03Factor, _init_extra_sysBonePitch03Factor, _init_sysBonePitch03Offset, _init_extra_sysBonePitch03Offset, _init_updatePitchPose, _init_extra_updatePitchPose, _init_geometryResPath, _init_extra_geometryResPath, _init_impactSize, _init_extra_impactSize, _init_state, _init_extra_state, _init_sysBoneHeight, _init_extra_sysBoneHeight, _init_randomFiringDelay, _init_extra_randomFiringDelay, _init_turretEffect, _init_extra_turretEffect, _init_idleToTargetingMovementAudioEvent, _init_extra_idleToTargetingMovementAudioEvent, _init_targetingToIdleMovementAudioEvent, _init_extra_targetingToIdleMovementAudioEvent, _init_generatedDistributedAmbientEffect, _init_extra_generatedDistributedAmbientEffect, _init_cyclingFireGroupCount, _init_extra_cyclingFireGroupCount, _init_turretMovementObserver, _init_extra_turretMovementObserver, _init_slotNumber, _init_extra_slotNumber, _init_ambientEffectEditingMode, _init_extra_ambientEffectEditingMode, _init_displayEffects, _init_extra_displayEffects, _init_display, _init_extra_display, _init_useDynamicBounds, _init_extra_useDynamicBounds, _init_estimatedPixelDiameter, _init_extra_estimatedPixelDiameter, _init_lowLodFiringEffectScale, _init_extra_lowLodFiringEffectScale, _init_lowLodFiringEffectTranslation, _init_extra_lowLodFiringEffectTranslation, _init_lowLodFiringEffectRotation, _init_extra_lowLodFiringEffectRotation, _init_useLowLodFiringTransform, _init_extra_useLowLodFiringTransform, _init_laserMissBehaviour, _init_extra_laserMissBehaviour, _init_projectileMissBehaviour, _init_extra_projectileMissBehaviour, _initProto],
|
|
41
|
+
e: [_init_impactBehaviour, _init_extra_impactBehaviour, _init_firingEffect, _init_extra_firingEffect, _init_ambientEffect, _init_extra_ambientEffect, _init_name, _init_extra_name, _init_firingEffectResPath, _init_extra_firingEffectResPath, _init_chooseRandomLocator, _init_extra_chooseRandomLocator, _init_boundingSphere, _init_extra_boundingSphere, _init_randomizeExplosionRotation, _init_extra_randomizeExplosionRotation, _init_lodLevel, _init_extra_lodLevel, _init_currentCyclingFiresPos, _init_extra_currentCyclingFiresPos, _init_useRandomFiringDelay, _init_extra_useRandomFiringDelay, _init_bottomClipHeight, _init_extra_bottomClipHeight, _init_geometryResource, _init_extra_geometryResource, _init_maxTrackingTime, _init_extra_maxTrackingTime, _init_visibleCount, _init_extra_visibleCount, _init_trackingInfluence, _init_extra_trackingInfluence, _init_swarmID, _init_extra_swarmID, _init_maxCyclingFirePos, _init_extra_maxCyclingFirePos, _init_playMovementSound, _init_extra_playMovementSound, _init_isOnline, _init_extra_isOnline, _init_target, _init_extra_target, _init_locatorName, _init_extra_locatorName, _init_sysBonePitchFactor, _init_extra_sysBonePitchFactor, _init_sysBonePitchMax, _init_extra_sysBonePitchMax, _init_sysBonePitchMin, _init_extra_sysBonePitchMin, _init_sysBonePitchOffset, _init_extra_sysBonePitchOffset, _init_sysBonePitch01Factor, _init_extra_sysBonePitch01Factor, _init_sysBonePitch01Offset, _init_extra_sysBonePitch01Offset, _init_sysBonePitch02Factor, _init_extra_sysBonePitch02Factor, _init_sysBonePitch02Offset, _init_extra_sysBonePitch02Offset, _init_sysBonePitch03Factor, _init_extra_sysBonePitch03Factor, _init_sysBonePitch03Offset, _init_extra_sysBonePitch03Offset, _init_updatePitchPose, _init_extra_updatePitchPose, _init_geometryResPath, _init_extra_geometryResPath, _init_impactSize, _init_extra_impactSize, _init_state, _init_extra_state, _init_sysBoneHeight, _init_extra_sysBoneHeight, _init_randomFiringDelay, _init_extra_randomFiringDelay, _init_turretEffect, _init_extra_turretEffect, _init_idleToTargetingMovementAudioEvent, _init_extra_idleToTargetingMovementAudioEvent, _init_targetingToIdleMovementAudioEvent, _init_extra_targetingToIdleMovementAudioEvent, _init_generatedDistributedAmbientEffect, _init_extra_generatedDistributedAmbientEffect, _init_cyclingFireGroupCount, _init_extra_cyclingFireGroupCount, _init_turretMovementObserver, _init_extra_turretMovementObserver, _init_slotNumber, _init_extra_slotNumber, _init_ambientEffectEditingMode, _init_extra_ambientEffectEditingMode, _init_displayEffects, _init_extra_displayEffects, _init_display, _init_extra_display, _init_useDynamicBounds, _init_extra_useDynamicBounds, _init_estimatedPixelDiameter, _init_extra_estimatedPixelDiameter, _init_lowLodFiringEffectScale, _init_extra_lowLodFiringEffectScale, _init_lowLodFiringEffectTranslation, _init_extra_lowLodFiringEffectTranslation, _init_lowLodFiringEffectRotation, _init_extra_lowLodFiringEffectRotation, _init_useLowLodFiringTransform, _init_extra_useLowLodFiringTransform, _init_laserMissBehaviour, _init_extra_laserMissBehaviour, _init_projectileMissBehaviour, _init_extra_projectileMissBehaviour, _initProto, _initStatic],
|
|
42
42
|
c: [_EveTurretSet, _initClass]
|
|
43
43
|
} = _applyDecs2311(this, [type.define({
|
|
44
44
|
className: "EveTurretSet",
|
|
45
45
|
family: "eve/attachment/turrets"
|
|
46
|
-
}), carbon.inherit(ITr2Renderable)], [[[edit, edit.notify, edit, edit.persist, type, type.int32, void 0, type.enum("ImpactBehaviour")], 16, "impactBehaviour"], [type.objectRef("EveTurretFiringFX"), 0, "firingEffect"], [[edit, edit.persistOnly, void 0, type.model("IEveSpaceObjectChild")], 16, "ambientEffect"], [[edit, edit.persist, type, type.string], 16, "name"], [[edit, edit.persist, type, type.string], 16, "firingEffectResPath"], [[edit, edit.persist, type, type.boolean], 16, "chooseRandomLocator"], [[edit, edit.persist, type, type.vec4], 16, "boundingSphere"], [[edit, edit.persist, type, type.boolean], 16, "randomizeExplosionRotation"], [[edit, edit.read, type, type.int32, void 0, type.enum("LOD")], 16, "lodLevel"], [[edit, edit.read, type, type.uint32], 16, "currentCyclingFiresPos"], [[edit, edit.persist, type, type.boolean], 16, "useRandomFiringDelay"], [[edit, edit.persist, type, type.float32], 16, "bottomClipHeight"], [[edit, edit.read, void 0, type.objectRef("TriGeometryRes")], 16, "geometryResource"], [[edit, edit.persist, type, type.float32], 16, "maxTrackingTime"], [[edit, edit.read, type, type.uint32], 16, "visibleCount"], [[edit, edit.read, type, type.float32], 16, "trackingInfluence"], [[edit, edit.readwrite, type, type.uint32], 16, "swarmID"], [[edit, edit.persist, type, type.uint32], 16, "maxCyclingFirePos"], [[edit, edit.persist, type, type.boolean], 16, "playMovementSound"], [[edit, edit.readwrite, type, type.boolean], 16, "isOnline"], [[edit, edit.read, void 0, type.objectRef("EveTurretTarget")], 16, "target"], [[edit, edit.persist, type, type.string], 16, "locatorName"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchFactor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchMax"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchMin"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchOffset"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch01Factor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch01Offset"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch02Factor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch02Offset"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch03Factor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch03Offset"], [[edit, edit.persist, type, type.boolean], 16, "updatePitchPose"], [[edit, edit.notify, edit, edit.persist, type, type.string], 16, "geometryResPath"], [[edit, edit.persist, type, type.float32], 16, "impactSize"], [[edit, edit.persist, type, type.int32, void 0, type.enum("State")], 16, "state"], [[edit, edit.persist, type, type.float32], 16, "sysBoneHeight"], [[edit, edit.read, type, type.float32], 16, "randomFiringDelay"], [[edit, edit.persist, void 0, type.model("Tr2Effect")], 16, "turretEffect"], [[edit, edit.persist, type, type.string], 16, "idleToTargetingMovementAudioEvent"], [[edit, edit.persist, type, type.string], 16, "targetingToIdleMovementAudioEvent"], [[edit, edit.read, void 0, type.objectRef("EveChildInstanceContainer")], 16, "generatedDistributedAmbientEffect"], [[edit, edit.persist, type, type.uint32], 16, "cyclingFireGroupCount"], [[edit, edit.persist, void 0, type.model("TriObserverLocal")], 16, "turretMovementObserver"], [[edit, edit.readwrite, type, type.int32], 16, "slotNumber"], [[edit, edit.notify, edit, edit.readwrite, type, type.boolean], 16, "ambientEffectEditingMode"], [[edit, edit.readwrite, type, type.boolean], 16, "displayEffects"], [[edit, edit.readwrite, type, type.boolean], 16, "display"], [[edit, edit.notify, edit, edit.persist, type, type.boolean], 16, "useDynamicBounds"], [[edit, edit.read, type, type.float32], 16, "estimatedPixelDiameter"], [[edit, edit.persist, type, type.vec3], 16, "lowLodFiringEffectScale"], [[edit, edit.persist, type, type.vec3], 16, "lowLodFiringEffectTranslation"], [[edit, edit.persist, type, type.quat], 16, "lowLodFiringEffectRotation"], [[edit, edit.persist, type, type.boolean], 16, "useLowLodFiringTransform"], [[edit, edit.persist, type, type.boolean], 16, "laserMissBehaviour"], [[edit, edit.persist, type, type.boolean], 16, "projectileMissBehaviour"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Geometry resources are duck-typed; the runtime Trinity layer stores their computed sphere without creating render buffers.")], 18, "RebuildBoundingSphere"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "ForceStateDeactive"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "ForceStateTargeting"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The graph freezes its LOD state; geometry creation is not ported yet.")], 18, "FreezeHighDetailLOD"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShader"], [[impl, impl.adapted, void 0, impl.reason("Carbon's by-value embed becomes an accessor because the pose pipeline (the aiming consumer) lives behind the animation seam.")], 18, "GetAiming"], [[impl, impl.custom, void 0, impl.reason("The combined runtime keeps SOF independently importable by putting the nominal Tr2Effect application boundary on the owning turret class.")], 18, "ApplySofTurretMaterial"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShotTimeVariance"], [[carbon, carbon.method, impl, impl.implemented], 18, "MissQueueSize"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLastShotTime"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateDeactive"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's geometry/animation selection is represented by portable turret records and controller forwarding.")], 18, "EnterStateFiring"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateIdle"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateReloading"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateTargeting"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct firing/ambient child forwarding.")], 18, "HandleControllerEvent"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Portable turret records and duck-typed geometry bone transforms replace Carbon's CMF/Granny split.")], 18, "GetFiringBoneWorldTransform"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct firing/ambient child forwarding.")], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetShotMissed"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct firing/ambient child forwarding.")], 18, "StartControllers"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("InitializeGeometryResource and the granny skeleton load are not ported; Carbon calls them from here (cpp:146-165).")], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("JS dispatches the native hook using the exposed member name; existing class-owned rendering/resource adaptations remain unchanged.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetFiringEffect"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon QueryInterface target attachment is delegated to EveTurretTarget's browser-compatible target validation.")], 18, "SetTargetObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetTargetObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetTargetScale"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon builds hidden SingleTurret records from geometry locators; browser hosts may provide equivalent portable records directly.")], 18, "SetTurrets"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon builds hidden SingleTurret records from geometry locators; browser hosts may provide equivalent portable records directly.")], 18, "AddTurret"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetTurrets"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Portable records replace Carbon's CMF/Granny SingleTurretData allocation while retaining its fixed 24-turret limit and scale removal.")], 18, "SetLocalTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetParentTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateTurretTransforms"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The closest portable turret is selected from its world up-axis and the target tracking position.")], 18, "GetClosestTurret"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("This combined browser convenience update runs Carbon's explicit synchronous and asynchronous phases in order.")], 18, "Update"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation cleanup and task dispatch are forwarded through portable records; target and firing timing remain source-faithful.")], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Skeleton realization is not ported yet; portable turret records may consume the same local-target tracking hook.")], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Renderable collection is backend-neutral; geometry and batch realization are not ported yet.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Visibility is forwarded through backend-neutral firing and ambient graph contracts.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "UnRegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "HasTransparentBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Instance stream, vertex declaration and realized LOD allocations are not ported yet; Trinity records their canonical geometry source and instance count.")], 18, "GetBatches"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetSortValue"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The length-1 out array replaces the float& out-param; the shadow math is ported, including exactly which paths write the out value.")], 18, "IsCastingShadow"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Instance stream, vertex declaration and LOD allocations (cpp:2227-2250) are not ported; the batch records the geometry source, turret effect, per-object data and the CPU-known instance count meanwhile.")], 18, "GetShadowBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Trinity fills the CPU-known EveTurretSet VS/PS RawData fields; bone-palette ring offsets and IsGood/GetMeshCount realization gates are not ported yet, while the CPU gate is geometry presence.")], 18, "GetPerObjectData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowPerObjectData"]], 0, void 0, _EveEntity));
|
|
46
|
+
}), carbon.inherit(ITr2Renderable)], [[[edit, edit.notify, edit, edit.persist, type, type.int32, void 0, type.enum("ImpactBehaviour")], 16, "impactBehaviour"], [type.objectRef("EveTurretFiringFX"), 0, "firingEffect"], [[edit, edit.persistOnly, void 0, type.model("IEveSpaceObjectChild")], 16, "ambientEffect"], [[edit, edit.persist, type, type.string], 16, "name"], [[edit, edit.persist, type, type.string], 16, "firingEffectResPath"], [[edit, edit.persist, type, type.boolean], 16, "chooseRandomLocator"], [[edit, edit.persist, type, type.vec4], 16, "boundingSphere"], [[edit, edit.persist, type, type.boolean], 16, "randomizeExplosionRotation"], [[edit, edit.read, type, type.int32, void 0, type.enum("LOD")], 16, "lodLevel"], [[edit, edit.read, type, type.uint32], 16, "currentCyclingFiresPos"], [[edit, edit.persist, type, type.boolean], 16, "useRandomFiringDelay"], [[edit, edit.persist, type, type.float32], 16, "bottomClipHeight"], [[edit, edit.read, void 0, type.objectRef("TriGeometryRes")], 16, "geometryResource"], [[edit, edit.persist, type, type.float32], 16, "maxTrackingTime"], [[edit, edit.read, type, type.uint32], 16, "visibleCount"], [[edit, edit.read, type, type.float32], 16, "trackingInfluence"], [[edit, edit.readwrite, type, type.uint32], 16, "swarmID"], [[edit, edit.persist, type, type.uint32], 16, "maxCyclingFirePos"], [[edit, edit.persist, type, type.boolean], 16, "playMovementSound"], [[edit, edit.readwrite, type, type.boolean], 16, "isOnline"], [[edit, edit.read, void 0, type.objectRef("EveTurretTarget")], 16, "target"], [[edit, edit.persist, type, type.string], 16, "locatorName"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchFactor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchMax"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchMin"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchOffset"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch01Factor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch01Offset"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch02Factor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch02Offset"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch03Factor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch03Offset"], [[edit, edit.persist, type, type.boolean], 16, "updatePitchPose"], [[edit, edit.notify, edit, edit.persist, type, type.string], 16, "geometryResPath"], [[edit, edit.persist, type, type.float32], 16, "impactSize"], [[edit, edit.persist, type, type.int32, void 0, type.enum("State")], 16, "state"], [[edit, edit.persist, type, type.float32], 16, "sysBoneHeight"], [[edit, edit.read, type, type.float32], 16, "randomFiringDelay"], [[edit, edit.persist, void 0, type.model("Tr2Effect")], 16, "turretEffect"], [[edit, edit.persist, type, type.string], 16, "idleToTargetingMovementAudioEvent"], [[edit, edit.persist, type, type.string], 16, "targetingToIdleMovementAudioEvent"], [[edit, edit.read, void 0, type.objectRef("EveChildInstanceContainer")], 16, "generatedDistributedAmbientEffect"], [[edit, edit.persist, type, type.uint32], 16, "cyclingFireGroupCount"], [[edit, edit.persist, void 0, type.model("TriObserverLocal")], 16, "turretMovementObserver"], [[edit, edit.readwrite, type, type.int32], 16, "slotNumber"], [[edit, edit.notify, edit, edit.readwrite, type, type.boolean], 16, "ambientEffectEditingMode"], [[edit, edit.readwrite, type, type.boolean], 16, "displayEffects"], [[edit, edit.readwrite, type, type.boolean], 16, "display"], [[edit, edit.notify, edit, edit.persist, type, type.boolean], 16, "useDynamicBounds"], [[edit, edit.read, type, type.float32], 16, "estimatedPixelDiameter"], [[edit, edit.persist, type, type.vec3], 16, "lowLodFiringEffectScale"], [[edit, edit.persist, type, type.vec3], 16, "lowLodFiringEffectTranslation"], [[edit, edit.persist, type, type.quat], 16, "lowLodFiringEffectRotation"], [[edit, edit.persist, type, type.boolean], 16, "useLowLodFiringTransform"], [[edit, edit.persist, type, type.boolean], 16, "laserMissBehaviour"], [[edit, edit.persist, type, type.boolean], 16, "projectileMissBehaviour"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Geometry resources are duck-typed; the runtime Trinity layer stores their computed sphere without creating render buffers.")], 18, "RebuildBoundingSphere"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "ForceStateDeactive"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "ForceStateTargeting"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The graph freezes its LOD state; geometry creation is not ported yet.")], 18, "FreezeHighDetailLOD"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShader"], [[impl, impl.adapted, void 0, impl.reason("Carbon's by-value embed becomes an accessor because the pose pipeline (the aiming consumer) lives behind the animation seam.")], 18, "GetAiming"], [[impl, impl.custom, void 0, impl.reason("The combined runtime keeps SOF independently importable by putting the nominal Tr2Effect application boundary on the owning turret class.")], 18, "ApplySofTurretMaterial"], [[impl, impl.custom, void 0, impl.reason("The combined runtime keeps SOF independently importable, so the Tr2Effect half of Carbon's EveSOF helper lives beside the turret classes that own the effects.")], 26, "applyFactionToTurretShader"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShotTimeVariance"], [[carbon, carbon.method, impl, impl.implemented], 18, "MissQueueSize"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLastShotTime"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateDeactive"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's geometry/animation selection is represented by portable turret records and controller forwarding.")], 18, "EnterStateFiring"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateIdle"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateReloading"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateTargeting"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct firing/ambient child forwarding.")], 18, "HandleControllerEvent"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Portable turret records and duck-typed geometry bone transforms replace Carbon's CMF/Granny split.")], 18, "GetFiringBoneWorldTransform"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct firing/ambient child forwarding.")], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetShotMissed"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct firing/ambient child forwarding.")], 18, "StartControllers"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("InitializeGeometryResource and the granny skeleton load are not ported; Carbon calls them from here (cpp:146-165).")], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("JS dispatches the native hook using the exposed member name; existing class-owned rendering/resource adaptations remain unchanged.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetFiringEffect"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon QueryInterface target attachment is delegated to EveTurretTarget's browser-compatible target validation.")], 18, "SetTargetObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetTargetObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetTargetScale"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon builds hidden SingleTurret records from geometry locators; browser hosts may provide equivalent portable records directly.")], 18, "SetTurrets"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon builds hidden SingleTurret records from geometry locators; browser hosts may provide equivalent portable records directly.")], 18, "AddTurret"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetTurrets"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Portable records replace Carbon's CMF/Granny SingleTurretData allocation while retaining its fixed 24-turret limit and scale removal.")], 18, "SetLocalTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetParentTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateTurretTransforms"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The closest portable turret is selected from its world up-axis and the target tracking position.")], 18, "GetClosestTurret"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("This combined browser convenience update runs Carbon's explicit synchronous and asynchronous phases in order.")], 18, "Update"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation cleanup and task dispatch are forwarded through portable records; target and firing timing remain source-faithful.")], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Skeleton realization is not ported yet; portable turret records may consume the same local-target tracking hook.")], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Renderable collection is backend-neutral; geometry and batch realization are not ported yet.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Visibility is forwarded through backend-neutral firing and ambient graph contracts.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "UnRegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "HasTransparentBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Instance stream, vertex declaration and realized LOD allocations are not ported yet; Trinity records their canonical geometry source and instance count.")], 18, "GetBatches"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetSortValue"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The length-1 out array replaces the float& out-param; the shadow math is ported, including exactly which paths write the out value.")], 18, "IsCastingShadow"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Instance stream, vertex declaration and LOD allocations (cpp:2227-2250) are not ported; the batch records the geometry source, turret effect, per-object data and the CPU-known instance count meanwhile.")], 18, "GetShadowBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Trinity fills the CPU-known EveTurretSet VS/PS RawData fields; bone-palette ring offsets and IsGood/GetMeshCount realization gates are not ported yet, while the CPU gate is geometry presence.")], 18, "GetPerObjectData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowPerObjectData"]], 0, void 0, _EveEntity));
|
|
47
|
+
_initStatic(this);
|
|
47
48
|
}
|
|
48
49
|
/** m_impactBehaviour (ImpactBehaviour::Type - enum ImpactBehaviour) [READWRITE, NOTIFY, PERSIST, ENUM] */
|
|
49
50
|
impactBehaviour = (_initProto(this), _init_impactBehaviour(this, 0));
|
|
@@ -221,16 +222,16 @@ new class extends _identity {
|
|
|
221
222
|
/** m_shipTransformPrev - last frame's parent transform, for motion vectors. */
|
|
222
223
|
#shipTransformPrev = mat4.create();
|
|
223
224
|
|
|
224
|
-
/**
|
|
225
|
-
* m_parentData - the hull values an attachment renders with, refreshed by the
|
|
226
|
-
* parent through IEveSpaceObject2::GetParentData.
|
|
225
|
+
/**
|
|
226
|
+
* m_parentData - the hull values an attachment renders with, refreshed by the
|
|
227
|
+
* parent through IEveSpaceObject2::GetParentData.
|
|
227
228
|
*/
|
|
228
229
|
#parentData = {};
|
|
229
230
|
|
|
230
|
-
/**
|
|
231
|
-
* m_skeletonBoneIndices - the shader's bone mapping, shared by every turret
|
|
232
|
-
* of the set. Skeleton realization is not ported yet, so this stays empty until
|
|
233
|
-
* one is supplied and the default count applies.
|
|
231
|
+
/**
|
|
232
|
+
* m_skeletonBoneIndices - the shader's bone mapping, shared by every turret
|
|
233
|
+
* of the set. Skeleton realization is not ported yet, so this stays empty until
|
|
234
|
+
* one is supplied and the default count applies.
|
|
234
235
|
*/
|
|
235
236
|
#skeletonBoneIndices = [];
|
|
236
237
|
|
|
@@ -291,12 +292,12 @@ new class extends _identity {
|
|
|
291
292
|
return this.turretEffect;
|
|
292
293
|
}
|
|
293
294
|
|
|
294
|
-
/**
|
|
295
|
-
* The shared sysbone aiming math, synced from this set's flat tuning
|
|
296
|
-
* fields. Carbon embeds EveTurretAiming by value (EveTurretSet.h:
|
|
297
|
-
* re-exposes its members as these flat Blue attributes; pose-owning
|
|
298
|
-
* consumers of the UpdateTrackingPose seam use THIS object so both hosts
|
|
299
|
-
* run identical math.
|
|
295
|
+
/**
|
|
296
|
+
* The shared sysbone aiming math, synced from this set's flat tuning
|
|
297
|
+
* fields. Carbon embeds EveTurretAiming by value (EveTurretSet.h:423) and
|
|
298
|
+
* re-exposes its members as these flat Blue attributes; pose-owning
|
|
299
|
+
* consumers of the UpdateTrackingPose seam use THIS object so both hosts
|
|
300
|
+
* run identical math.
|
|
300
301
|
*/
|
|
301
302
|
GetAiming() {
|
|
302
303
|
const aiming = this.#aiming;
|
|
@@ -315,15 +316,29 @@ new class extends _identity {
|
|
|
315
316
|
}
|
|
316
317
|
#aiming = new EveTurretAiming();
|
|
317
318
|
|
|
318
|
-
/**
|
|
319
|
-
* Applies resolved SOF vec4 values to the turret effect's constant path, or
|
|
320
|
-
* to its nominal vector-parameter path when no constants are authored.
|
|
319
|
+
/**
|
|
320
|
+
* Applies resolved SOF vec4 values to the turret effect's constant path, or
|
|
321
|
+
* to its nominal vector-parameter path when no constants are authored.
|
|
321
322
|
*/
|
|
322
323
|
ApplySofTurretMaterial(resolveParameter) {
|
|
323
324
|
const effect = this.GetShader();
|
|
324
325
|
if (!effect) {
|
|
325
326
|
return false;
|
|
326
327
|
}
|
|
328
|
+
return _EveTurretSet.applyFactionToTurretShader(effect, resolveParameter);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* The effect-walking half of Carbon's private EveSOF::ApplyFactionToTurretShader
|
|
333
|
+
* (EveSOF.cpp:4201-4254): overwrites a turret effect's constants, or its
|
|
334
|
+
* vec4 parameters when no constants are authored, with resolved SOF values.
|
|
335
|
+
* Shared by the ship turret set and EveChildTurret; the value resolution
|
|
336
|
+
* stays in SOF, which cannot import this layer.
|
|
337
|
+
* @param {Object} effect - a Tr2Effect
|
|
338
|
+
* @param {Function} resolveParameter - parameter name -> vec4 or null
|
|
339
|
+
* @returns {Boolean} true
|
|
340
|
+
*/
|
|
341
|
+
static applyFactionToTurretShader(effect, resolveParameter) {
|
|
327
342
|
if (effect.constParameters.length) {
|
|
328
343
|
effect.StartUpdate();
|
|
329
344
|
try {
|
|
@@ -356,19 +371,19 @@ new class extends _identity {
|
|
|
356
371
|
return true;
|
|
357
372
|
}
|
|
358
373
|
|
|
359
|
-
/** Carbon method GetShotTimeVariance (
|
|
374
|
+
/** Carbon method GetShotTimeVariance (EveTurretSet.h:223-226). */
|
|
360
375
|
GetShotTimeVariance() {
|
|
361
|
-
return
|
|
376
|
+
return EVE_TURRET_RANDOM_DELAY_MAX;
|
|
362
377
|
}
|
|
363
378
|
|
|
364
|
-
/** Carbon method MissQueueSize (
|
|
379
|
+
/** Carbon method MissQueueSize (EveTurretSet.cpp:3597-3600). */
|
|
365
380
|
MissQueueSize() {
|
|
366
|
-
return this.target
|
|
381
|
+
return this.target.MissQueueSize();
|
|
367
382
|
}
|
|
368
383
|
|
|
369
|
-
/** Carbon method GetLastShotTime (
|
|
384
|
+
/** Carbon method GetLastShotTime (EveTurretSet.cpp:3606-3609). */
|
|
370
385
|
GetLastShotTime() {
|
|
371
|
-
return this.target
|
|
386
|
+
return this.target.GetLastShotTime();
|
|
372
387
|
}
|
|
373
388
|
|
|
374
389
|
/** Carbon method EnterStateDeactive (MAP_METHOD_AND_WRAP). */
|
|
@@ -523,9 +538,9 @@ new class extends _identity {
|
|
|
523
538
|
this.#ambientEffect()?.StartControllers();
|
|
524
539
|
}
|
|
525
540
|
|
|
526
|
-
/**
|
|
527
|
-
* Creates the target when absent, pushes the authored miss and impact
|
|
528
|
-
* behaviour into it, and initializes the firing and ambient effects.
|
|
541
|
+
/**
|
|
542
|
+
* Creates the target when absent, pushes the authored miss and impact
|
|
543
|
+
* behaviour into it, and initializes the firing and ambient effects.
|
|
529
544
|
*/
|
|
530
545
|
Initialize() {
|
|
531
546
|
this.target ??= new _EveTurretTarget();
|
|
@@ -535,16 +550,16 @@ new class extends _identity {
|
|
|
535
550
|
return true;
|
|
536
551
|
}
|
|
537
552
|
|
|
538
|
-
/**
|
|
539
|
-
* Carbon OnModified (EveTurretSet.cpp:167-201). FIVE arms, and they are an
|
|
540
|
-
* `else if` CHAIN: Carbon is notified once per changed member, so exactly one
|
|
541
|
-
* arm runs per notification.
|
|
542
|
-
*
|
|
543
|
-
* Our settle reports a whole write instead, so the chain is evaluated against
|
|
544
|
-
* the values last seen rather than against a Be::Var pointer - one arm per
|
|
545
|
-
* settle, in the donor's order. Every arm stays present even where its body
|
|
546
|
-
* is unported, because removing one would let a change fall through to the
|
|
547
|
-
* next arm and run work the donor would not have run.
|
|
553
|
+
/**
|
|
554
|
+
* Carbon OnModified (EveTurretSet.cpp:167-201). FIVE arms, and they are an
|
|
555
|
+
* `else if` CHAIN: Carbon is notified once per changed member, so exactly one
|
|
556
|
+
* arm runs per notification.
|
|
557
|
+
*
|
|
558
|
+
* Our settle reports a whole write instead, so the chain is evaluated against
|
|
559
|
+
* the values last seen rather than against a Be::Var pointer - one arm per
|
|
560
|
+
* settle, in the donor's order. Every arm stays present even where its body
|
|
561
|
+
* is unported, because removing one would let a change fall through to the
|
|
562
|
+
* next arm and run work the donor would not have run.
|
|
548
563
|
*/
|
|
549
564
|
OnModified(propertyName) {
|
|
550
565
|
if (propertyName === "display") {
|
|
@@ -566,13 +581,16 @@ new class extends _identity {
|
|
|
566
581
|
this.firingEffect?.Initialize();
|
|
567
582
|
}
|
|
568
583
|
|
|
569
|
-
/**
|
|
570
|
-
* Offers an object to the target for validation; on acceptance it sends the
|
|
571
|
-
* idle-to-targeting movement audio event when coming from idle or switching
|
|
572
|
-
* targets, and rescales the firing effect to the new target's radius. Returns
|
|
573
|
-
* whether the object was accepted.
|
|
584
|
+
/**
|
|
585
|
+
* Offers an object to the target for validation; on acceptance it sends the
|
|
586
|
+
* idle-to-targeting movement audio event when coming from idle or switching
|
|
587
|
+
* targets, and rescales the firing effect to the new target's radius. Returns
|
|
588
|
+
* whether the object was accepted.
|
|
574
589
|
*/
|
|
575
590
|
SetTargetObject(object) {
|
|
591
|
+
// Carbon EveTurretSet.cpp:3630-3633: the ship set cannot clear its target;
|
|
592
|
+
// only EveChildTurret passes null through to EveTurretTarget.
|
|
593
|
+
if (!object) return false;
|
|
576
594
|
this.target ??= new _EveTurretTarget();
|
|
577
595
|
const previous = this.target.GetTargetable?.();
|
|
578
596
|
const accepted = this.target.SetTargetable(object);
|
|
@@ -590,17 +608,17 @@ new class extends _identity {
|
|
|
590
608
|
return this.target?.GetTargetable?.() ?? null;
|
|
591
609
|
}
|
|
592
610
|
|
|
593
|
-
/**
|
|
594
|
-
* Rescales the firing effect from the target's radius, passing -1 when there
|
|
595
|
-
* is no target.
|
|
611
|
+
/**
|
|
612
|
+
* Rescales the firing effect from the target's radius, passing -1 when there
|
|
613
|
+
* is no target.
|
|
596
614
|
*/
|
|
597
615
|
SetTargetScale() {
|
|
598
616
|
this.firingEffect?.SetScaleByRadius?.(this.target?.GetRadius?.() ?? -1);
|
|
599
617
|
}
|
|
600
618
|
|
|
601
|
-
/**
|
|
602
|
-
* Replaces the turret records, truncated to the fixed 24-turret limit,
|
|
603
|
-
* normalizing each into the record shape and resetting visibleCount.
|
|
619
|
+
/**
|
|
620
|
+
* Replaces the turret records, truncated to the fixed 24-turret limit,
|
|
621
|
+
* normalizing each into the record shape and resetting visibleCount.
|
|
604
622
|
*/
|
|
605
623
|
SetTurrets(turrets = []) {
|
|
606
624
|
this.#turrets = Array.from(turrets).slice(0, _EveTurretSet.MAX_TURRETS_PER_SET).map(turret => this.#normalizeTurret(turret));
|
|
@@ -608,9 +626,9 @@ new class extends _identity {
|
|
|
608
626
|
return this.#turrets;
|
|
609
627
|
}
|
|
610
628
|
|
|
611
|
-
/**
|
|
612
|
-
* Appends one normalized turret record and returns it, or null once the fixed
|
|
613
|
-
* 24-turret limit is reached.
|
|
629
|
+
/**
|
|
630
|
+
* Appends one normalized turret record and returns it, or null once the fixed
|
|
631
|
+
* 24-turret limit is reached.
|
|
614
632
|
*/
|
|
615
633
|
AddTurret(turret) {
|
|
616
634
|
if (this.#turrets.length >= _EveTurretSet.MAX_TURRETS_PER_SET) return null;
|
|
@@ -620,9 +638,9 @@ new class extends _identity {
|
|
|
620
638
|
return value;
|
|
621
639
|
}
|
|
622
640
|
|
|
623
|
-
/**
|
|
624
|
-
* The live turret record list; the records are mutated in place by
|
|
625
|
-
* UpdateTurretTransforms, so this is not a snapshot.
|
|
641
|
+
/**
|
|
642
|
+
* The live turret record list; the records are mutated in place by
|
|
643
|
+
* UpdateTurretTransforms, so this is not a snapshot.
|
|
626
644
|
*/
|
|
627
645
|
GetTurrets() {
|
|
628
646
|
return this.#turrets;
|
|
@@ -651,19 +669,19 @@ new class extends _identity {
|
|
|
651
669
|
return true;
|
|
652
670
|
}
|
|
653
671
|
|
|
654
|
-
/**
|
|
655
|
-
* Stores the hull transform and immediately recomputes every turret's world
|
|
656
|
-
* matrix from it.
|
|
672
|
+
/**
|
|
673
|
+
* Stores the hull transform and immediately recomputes every turret's world
|
|
674
|
+
* matrix from it.
|
|
657
675
|
*/
|
|
658
676
|
SetParentTransform(transform) {
|
|
659
677
|
mat4.copy(this.#parentTransform, transform);
|
|
660
678
|
this.UpdateTurretTransforms(transform);
|
|
661
679
|
}
|
|
662
680
|
|
|
663
|
-
/**
|
|
664
|
-
* Recomputes each turret's world matrix as the parent transform applied to its
|
|
665
|
-
* local matrix and marks the record valid; defaults to the stored parent
|
|
666
|
-
* transform.
|
|
681
|
+
/**
|
|
682
|
+
* Recomputes each turret's world matrix as the parent transform applied to its
|
|
683
|
+
* local matrix and marks the record valid; defaults to the stored parent
|
|
684
|
+
* transform.
|
|
667
685
|
*/
|
|
668
686
|
UpdateTurretTransforms(parentTransform = this.#parentTransform) {
|
|
669
687
|
mat4.copy(this.#parentTransform, parentTransform);
|
|
@@ -673,17 +691,17 @@ new class extends _identity {
|
|
|
673
691
|
}
|
|
674
692
|
}
|
|
675
693
|
|
|
676
|
-
/**
|
|
677
|
-
* The index of the turret whose world up axis points most directly at its
|
|
678
|
-
* nearest damage locator, or 0 when no valid turret is found.
|
|
694
|
+
/**
|
|
695
|
+
* The index of the turret whose world up axis points most directly at its
|
|
696
|
+
* nearest damage locator, or 0 when no valid turret is found.
|
|
679
697
|
*/
|
|
680
698
|
GetClosestTurret() {
|
|
681
699
|
return this.#getClosestTurretAndLocator().turret;
|
|
682
700
|
}
|
|
683
701
|
|
|
684
|
-
/**
|
|
685
|
-
* Convenience update that runs the synchronous then asynchronous phase against
|
|
686
|
-
* the stored parent transform.
|
|
702
|
+
/**
|
|
703
|
+
* Convenience update that runs the synchronous then asynchronous phase against
|
|
704
|
+
* the stored parent transform.
|
|
687
705
|
*/
|
|
688
706
|
Update(context) {
|
|
689
707
|
this.UpdateSyncronous(context);
|
|
@@ -691,11 +709,11 @@ new class extends _identity {
|
|
|
691
709
|
return true;
|
|
692
710
|
}
|
|
693
711
|
|
|
694
|
-
/**
|
|
695
|
-
* Runs the synchronous phase: while a looping effect fires it re-picks the
|
|
696
|
-
* turret and locator every two seconds, then updates the firing effect, feeds
|
|
697
|
-
* the target the current muzzle start position, and updates the ambient effect
|
|
698
|
-
* and movement observer from the first turret.
|
|
712
|
+
/**
|
|
713
|
+
* Runs the synchronous phase: while a looping effect fires it re-picks the
|
|
714
|
+
* turret and locator every two seconds, then updates the firing effect, feeds
|
|
715
|
+
* the target the current muzzle start position, and updates the ambient effect
|
|
716
|
+
* and movement observer from the first turret.
|
|
699
717
|
*/
|
|
700
718
|
UpdateSyncronous(context, parentTransform = this.#parentTransform) {
|
|
701
719
|
const deltaTime = Number(context?.GetDeltaT?.() ?? context?.deltaTime ?? context?.deltaT ?? 0);
|
|
@@ -722,12 +740,12 @@ new class extends _identity {
|
|
|
722
740
|
return true;
|
|
723
741
|
}
|
|
724
742
|
|
|
725
|
-
/**
|
|
726
|
-
* Runs the asynchronous phase: recomputes the turret world matrices, ramps the
|
|
727
|
-
* tracking influence through its fade-in and fade-out delays, pushes the
|
|
728
|
-
* target position into each valid turret's tracking pose in that turret's
|
|
729
|
-
* local space, then hands the firing effect its end position and per-muzzle
|
|
730
|
-
* world transforms.
|
|
743
|
+
/**
|
|
744
|
+
* Runs the asynchronous phase: recomputes the turret world matrices, ramps the
|
|
745
|
+
* tracking influence through its fade-in and fade-out delays, pushes the
|
|
746
|
+
* target position into each valid turret's tracking pose in that turret's
|
|
747
|
+
* local space, then hands the firing effect its end position and per-muzzle
|
|
748
|
+
* world transforms.
|
|
731
749
|
*/
|
|
732
750
|
UpdateAsyncronous(context, parentData = this.#parentTransform) {
|
|
733
751
|
const deltaTime = Number(context?.GetDeltaT?.() ?? context?.deltaTime ?? context?.deltaT ?? 0);
|
|
@@ -791,9 +809,9 @@ new class extends _identity {
|
|
|
791
809
|
return true;
|
|
792
810
|
}
|
|
793
811
|
|
|
794
|
-
/**
|
|
795
|
-
* Appends the firing and ambient effect renderables to out; gated on display,
|
|
796
|
-
* and each contribution additionally on displayEffects.
|
|
812
|
+
/**
|
|
813
|
+
* Appends the firing and ambient effect renderables to out; gated on display,
|
|
814
|
+
* and each contribution additionally on displayEffects.
|
|
797
815
|
*/
|
|
798
816
|
GetRenderables(out = []) {
|
|
799
817
|
if (!this.display) return out;
|
|
@@ -802,10 +820,10 @@ new class extends _identity {
|
|
|
802
820
|
return out;
|
|
803
821
|
}
|
|
804
822
|
|
|
805
|
-
/**
|
|
806
|
-
* Forwards visibility to the firing and ambient effects; gated on display and,
|
|
807
|
-
* per effect, on displayEffects. The turret geometry itself is not culled
|
|
808
|
-
* here.
|
|
823
|
+
/**
|
|
824
|
+
* Forwards visibility to the firing and ambient effects; gated on display and,
|
|
825
|
+
* per effect, on displayEffects. The turret geometry itself is not culled
|
|
826
|
+
* here.
|
|
809
827
|
*/
|
|
810
828
|
UpdateVisibility(context) {
|
|
811
829
|
if (!this.display) return false;
|
|
@@ -814,9 +832,9 @@ new class extends _identity {
|
|
|
814
832
|
return true;
|
|
815
833
|
}
|
|
816
834
|
|
|
817
|
-
/** Carbon EveTurretSet::RegisterComponents (cpp:238-256): ShadowCaster leaf
|
|
818
|
-
* self-registration, then forwards the firing effect and the ambient effect
|
|
819
|
-
* (GetAmbientEffectOrGeneratedEffect, mirrored by #ambientEffect). Gate
|
|
835
|
+
/** Carbon EveTurretSet::RegisterComponents (cpp:238-256): ShadowCaster leaf
|
|
836
|
+
* self-registration, then forwards the firing effect and the ambient effect
|
|
837
|
+
* (GetAmbientEffectOrGeneratedEffect, mirrored by #ambientEffect). Gate
|
|
820
838
|
* m_display. */
|
|
821
839
|
RegisterComponents() {
|
|
822
840
|
const registry = this.GetComponentRegistry();
|
|
@@ -827,8 +845,8 @@ new class extends _identity {
|
|
|
827
845
|
}
|
|
828
846
|
}
|
|
829
847
|
|
|
830
|
-
/** Carbon EveTurretSet::UnRegisterComponents (cpp:258-274): forwards the
|
|
831
|
-
* firing and ambient effects only (own components were already removed by
|
|
848
|
+
/** Carbon EveTurretSet::UnRegisterComponents (cpp:258-274): forwards the
|
|
849
|
+
* firing and ambient effects only (own components were already removed by
|
|
832
850
|
* EveEntity::UnRegister, EveEntity.cpp:90); no display re-check. */
|
|
833
851
|
UnRegisterComponents() {
|
|
834
852
|
const registry = this.GetComponentRegistry();
|
|
@@ -843,11 +861,11 @@ new class extends _identity {
|
|
|
843
861
|
return false;
|
|
844
862
|
}
|
|
845
863
|
|
|
846
|
-
/**
|
|
847
|
-
* Emits Carbon's single opaque instanced turret batch. The geometry source
|
|
848
|
-
* and instance count are portable; the engine resolves allocations and the
|
|
849
|
-
* instance stream during realization.
|
|
850
|
-
* @returns {Boolean} whether the batch was committed
|
|
864
|
+
/**
|
|
865
|
+
* Emits Carbon's single opaque instanced turret batch. The geometry source
|
|
866
|
+
* and instance count are portable; the engine resolves allocations and the
|
|
867
|
+
* instance stream during realization.
|
|
868
|
+
* @returns {Boolean} whether the batch was committed
|
|
851
869
|
*/
|
|
852
870
|
GetBatches(batches, batchType, perObjectData, _reason) {
|
|
853
871
|
if (batchType !== TriBatchType.TRIBATCHTYPE_OPAQUE || !this.display || !this.visibleCount || !this.geometryResource) {
|
|
@@ -869,15 +887,15 @@ new class extends _identity {
|
|
|
869
887
|
return 1;
|
|
870
888
|
}
|
|
871
889
|
|
|
872
|
-
/** Carbon EveTurretSet::IsCastingShadow (cpp:2022-2051): after the
|
|
873
|
-
* display/geometry (cpp:2024) and reflection-reason (cpp:2029) early-outs -
|
|
874
|
-
* which do NOT write the out-param, so a stale previous-caster value
|
|
875
|
-
* survives at the scene call sites (EveSpaceScene.cpp:2391/2517) - the
|
|
876
|
-
* SET-level bounding sphere is transformed by EVERY turret's world matrix
|
|
877
|
-
* (including invisible ones - no per-turret visibility gate, unlike
|
|
878
|
-
* UpdateVisibility cpp:2070-2088), gated on transformed radius > 0, culled
|
|
879
|
-
* with shadowFrustum.IsVisible, and the MAX GetSizeInShadow accumulates.
|
|
880
|
-
* Returns sizeInShadow > 5 (the swarm uses 15). Carbon's float& out-param
|
|
890
|
+
/** Carbon EveTurretSet::IsCastingShadow (cpp:2022-2051): after the
|
|
891
|
+
* display/geometry (cpp:2024) and reflection-reason (cpp:2029) early-outs -
|
|
892
|
+
* which do NOT write the out-param, so a stale previous-caster value
|
|
893
|
+
* survives at the scene call sites (EveSpaceScene.cpp:2391/2517) - the
|
|
894
|
+
* SET-level bounding sphere is transformed by EVERY turret's world matrix
|
|
895
|
+
* (including invisible ones - no per-turret visibility gate, unlike
|
|
896
|
+
* UpdateVisibility cpp:2070-2088), gated on transformed radius > 0, culled
|
|
897
|
+
* with shadowFrustum.IsVisible, and the MAX GetSizeInShadow accumulates.
|
|
898
|
+
* Returns sizeInShadow > 5 (the swarm uses 15). Carbon's float& out-param
|
|
881
899
|
* becomes the optional trailing length-1 array (out-params last). */
|
|
882
900
|
IsCastingShadow(cameraFrustum, shadowFrustum, renderReason, sizeInShadowOut = null) {
|
|
883
901
|
if (!this.display || !this.geometryResource) {
|
|
@@ -904,15 +922,15 @@ new class extends _identity {
|
|
|
904
922
|
return sizeInShadow > 5;
|
|
905
923
|
}
|
|
906
924
|
|
|
907
|
-
/** Carbon EveTurretSet::GetShadowBatches (cpp:2221-2254): one instanced
|
|
908
|
-
* batch for the whole turret geometry - material m_turretEffect, instance
|
|
909
|
-
* count m_visibleCount, mesh 0 at the lowest LOD. QUIRK: shadowPixelSize is
|
|
910
|
-
* completely IGNORED (always GetMeshLod(0, 0), cpp:2235) - the swarm uses
|
|
911
|
-
* it for LOD, the turret does not. The shadow path commits without the
|
|
912
|
-
* normal path's validity check (cpp:2253 vs 2211) - equivalent here because
|
|
913
|
-
* Commit drops invalid batches. Returns whether the batch was committed
|
|
914
|
-
* (JS addition; Carbon returns void). NOTE: JS visibleCount is currently
|
|
915
|
-
* the total turret count (the adapted UpdateVisibility does no per-turret
|
|
925
|
+
/** Carbon EveTurretSet::GetShadowBatches (cpp:2221-2254): one instanced
|
|
926
|
+
* batch for the whole turret geometry - material m_turretEffect, instance
|
|
927
|
+
* count m_visibleCount, mesh 0 at the lowest LOD. QUIRK: shadowPixelSize is
|
|
928
|
+
* completely IGNORED (always GetMeshLod(0, 0), cpp:2235) - the swarm uses
|
|
929
|
+
* it for LOD, the turret does not. The shadow path commits without the
|
|
930
|
+
* normal path's validity check (cpp:2253 vs 2211) - equivalent here because
|
|
931
|
+
* Commit drops invalid batches. Returns whether the batch was committed
|
|
932
|
+
* (JS addition; Carbon returns void). NOTE: JS visibleCount is currently
|
|
933
|
+
* the total turret count (the adapted UpdateVisibility does no per-turret
|
|
916
934
|
* frustum cull), a pre-existing adaptation. */
|
|
917
935
|
GetShadowBatches(batches, perObjectData, _shadowPixelSize) {
|
|
918
936
|
if (!this.display || !this.visibleCount) {
|
|
@@ -932,13 +950,13 @@ new class extends _identity {
|
|
|
932
950
|
return batches.Commit(batch);
|
|
933
951
|
}
|
|
934
952
|
|
|
935
|
-
/** Carbon EveTurretSet::GetPerObjectData (cpp:2275-2518): early-outs on a
|
|
936
|
-
* missing/bad geometry resource RETURN NULL - and the cascade path stores
|
|
937
|
-
* that null and still calls GetShadowBatches with it (EveSpaceScene.cpp:
|
|
938
|
-
* 717/727), so a null per-object record on a batch is legal. The
|
|
939
|
-
* EveTurretSetPerObjectData fill includes the ship matrices, compacted
|
|
940
|
-
* per-visible turret SRT arrays, and the SH/clip PS block (cpp:2300-2511).
|
|
941
|
-
* Trinity fills every CPU-known field in canonical RawData. Only the bone
|
|
953
|
+
/** Carbon EveTurretSet::GetPerObjectData (cpp:2275-2518): early-outs on a
|
|
954
|
+
* missing/bad geometry resource RETURN NULL - and the cascade path stores
|
|
955
|
+
* that null and still calls GetShadowBatches with it (EveSpaceScene.cpp:
|
|
956
|
+
* 717/727), so a null per-object record on a batch is legal. The
|
|
957
|
+
* EveTurretSetPerObjectData fill includes the ship matrices, compacted
|
|
958
|
+
* per-visible turret SRT arrays, and the SH/clip PS block (cpp:2300-2511).
|
|
959
|
+
* Trinity fills every CPU-known field in canonical RawData. Only the bone
|
|
942
960
|
* palette's GPU ring-buffer offsets remain engine-supplied. */
|
|
943
961
|
GetPerObjectData(accumulator = null) {
|
|
944
962
|
if (!this.geometryResource || typeof accumulator?.Alloc !== "function") {
|
|
@@ -998,18 +1016,18 @@ new class extends _identity {
|
|
|
998
1016
|
};
|
|
999
1017
|
}
|
|
1000
1018
|
|
|
1001
|
-
/** Carbon EveTurretSet::GetShadowPerObjectData (cpp:2520-2523): pure
|
|
1019
|
+
/** Carbon EveTurretSet::GetShadowPerObjectData (cpp:2520-2523): pure
|
|
1002
1020
|
* forward to GetPerObjectData. */
|
|
1003
1021
|
GetShadowPerObjectData(accumulator = null) {
|
|
1004
1022
|
return this.GetPerObjectData(accumulator);
|
|
1005
1023
|
}
|
|
1006
1024
|
|
|
1007
|
-
/**
|
|
1008
|
-
* Establishes everything one shot needs: the firing turret and locator, the
|
|
1009
|
-
* advanced cycling fire position, the random firing delay, the fire animation
|
|
1010
|
-
* on the chosen turret, the target's impact timing derived from the effect's
|
|
1011
|
-
* duration and peak time, and the ambient controller's turret state. Returns
|
|
1012
|
-
* false when deactivated or untargeted.
|
|
1025
|
+
/**
|
|
1026
|
+
* Establishes everything one shot needs: the firing turret and locator, the
|
|
1027
|
+
* advanced cycling fire position, the random firing delay, the fire animation
|
|
1028
|
+
* on the chosen turret, the target's impact timing derived from the effect's
|
|
1029
|
+
* duration and peak time, and the ambient controller's turret state. Returns
|
|
1030
|
+
* false when deactivated or untargeted.
|
|
1013
1031
|
*/
|
|
1014
1032
|
#setupFiringState() {
|
|
1015
1033
|
if (this.state === _EveTurretSet.State.STATE_DEACTIVE || !this.target) return false;
|
|
@@ -1040,11 +1058,11 @@ new class extends _identity {
|
|
|
1040
1058
|
return true;
|
|
1041
1059
|
}
|
|
1042
1060
|
|
|
1043
|
-
/**
|
|
1044
|
-
* Picks the turret whose world up axis best aligns with its nearest damage
|
|
1045
|
-
* locator and, when chooseRandomLocator is set, re-picks the turret against a
|
|
1046
|
-
* random valid locator instead; falls back to turret 0. Returns the shared
|
|
1047
|
-
* pair record, valid only until the next call.
|
|
1061
|
+
/**
|
|
1062
|
+
* Picks the turret whose world up axis best aligns with its nearest damage
|
|
1063
|
+
* locator and, when chooseRandomLocator is set, re-picks the turret against a
|
|
1064
|
+
* random valid locator instead; falls back to turret 0. Returns the shared
|
|
1065
|
+
* pair record, valid only until the next call.
|
|
1048
1066
|
*/
|
|
1049
1067
|
#getClosestTurretAndLocator() {
|
|
1050
1068
|
const pair = _EveTurretSet.#closestPair;
|
|
@@ -1095,9 +1113,9 @@ new class extends _identity {
|
|
|
1095
1113
|
return pair;
|
|
1096
1114
|
}
|
|
1097
1115
|
|
|
1098
|
-
/**
|
|
1099
|
-
* Plays an animation on every turret and returns the longest duration
|
|
1100
|
-
* reported.
|
|
1116
|
+
/**
|
|
1117
|
+
* Plays an animation on every turret and returns the longest duration
|
|
1118
|
+
* reported.
|
|
1101
1119
|
*/
|
|
1102
1120
|
#playAll(animation, loop, delay) {
|
|
1103
1121
|
let duration = 0;
|
|
@@ -1105,10 +1123,10 @@ new class extends _identity {
|
|
|
1105
1123
|
return duration;
|
|
1106
1124
|
}
|
|
1107
1125
|
|
|
1108
|
-
/**
|
|
1109
|
-
* Plays an animation on one turret through the record's own hook or its
|
|
1110
|
-
* controller, returning the reported duration, or 0 when the turret or the
|
|
1111
|
-
* hook is absent.
|
|
1126
|
+
/**
|
|
1127
|
+
* Plays an animation on one turret through the record's own hook or its
|
|
1128
|
+
* controller, returning the reported duration, or 0 when the turret or the
|
|
1129
|
+
* hook is absent.
|
|
1112
1130
|
*/
|
|
1113
1131
|
#playTurret(index, animation, loop, delay) {
|
|
1114
1132
|
const turret = this.#turrets[index];
|
|
@@ -1119,28 +1137,28 @@ new class extends _identity {
|
|
|
1119
1137
|
}) ?? 0);
|
|
1120
1138
|
}
|
|
1121
1139
|
|
|
1122
|
-
/**
|
|
1123
|
-
* The ambient effect in force: the authored one while in ambient-effect
|
|
1124
|
-
* editing mode, otherwise the generated distributed instance container when
|
|
1125
|
-
* one exists.
|
|
1140
|
+
/**
|
|
1141
|
+
* The ambient effect in force: the authored one while in ambient-effect
|
|
1142
|
+
* editing mode, otherwise the generated distributed instance container when
|
|
1143
|
+
* one exists.
|
|
1126
1144
|
*/
|
|
1127
1145
|
#ambientEffect() {
|
|
1128
1146
|
return this.ambientEffectEditingMode ? this.ambientEffect : this.generatedDistributedAmbientEffect ?? this.ambientEffect;
|
|
1129
1147
|
}
|
|
1130
1148
|
|
|
1131
|
-
/**
|
|
1132
|
-
* Pushes the current state onto the ambient effect's TurretState controller
|
|
1133
|
-
* variable.
|
|
1149
|
+
/**
|
|
1150
|
+
* Pushes the current state onto the ambient effect's TurretState controller
|
|
1151
|
+
* variable.
|
|
1134
1152
|
*/
|
|
1135
1153
|
#setAmbientState() {
|
|
1136
1154
|
this.#ambientEffect()?.SetControllerVariable("TurretState", this.state);
|
|
1137
1155
|
}
|
|
1138
1156
|
|
|
1139
|
-
/**
|
|
1140
|
-
* Coerces a caller-supplied turret into the record shape - local and world
|
|
1141
|
-
* matrices, local quaternion and position, valid and display flags - reusing
|
|
1142
|
-
* the object in place when it already carries a local matrix, and otherwise
|
|
1143
|
-
* wrapping it as the record's source.
|
|
1157
|
+
/**
|
|
1158
|
+
* Coerces a caller-supplied turret into the record shape - local and world
|
|
1159
|
+
* matrices, local quaternion and position, valid and display flags - reusing
|
|
1160
|
+
* the object in place when it already carries a local matrix, and otherwise
|
|
1161
|
+
* wrapping it as the record's source.
|
|
1144
1162
|
*/
|
|
1145
1163
|
#normalizeTurret(turret) {
|
|
1146
1164
|
if (turret?.localMatrix?.length === 16) {
|