@carbonenginejs/runtime 0.1.0-alpha.2 → 0.1.0-alpha.4
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/NOTICE +5 -4
- package/dist/audio/generated/audio/AudEventKey.js +2 -2
- package/dist/audio/generated/audio/AudEventKey.js.map +1 -1
- package/dist/audio/generated/audio/AudSettings.js +2 -2
- package/dist/audio/generated/audio/AudSettings.js.map +1 -1
- package/dist/audio/index.js +1 -1
- package/dist/audio/trinity/audio/AudEmitter.js +4 -5
- package/dist/audio/trinity/audio/AudEmitter.js.map +1 -1
- package/dist/audio/trinity/audio/AudEventCurve.js +14 -14
- package/dist/audio/trinity/audio/AudEventCurve.js.map +1 -1
- package/dist/audio/trinity/audio/AudGameObjResource.js +13 -25
- package/dist/audio/trinity/audio/AudGameObjResource.js.map +1 -1
- package/dist/audio/trinity/audio/AudManager.js +2 -2
- package/dist/audio/trinity/audio/AudManager.js.map +1 -1
- package/dist/audio/trinity/audio/AudParameter.js +7 -11
- package/dist/audio/trinity/audio/AudParameter.js.map +1 -1
- package/dist/audio/trinity/audio/AudUIPlayer.js +2 -2
- package/dist/audio/trinity/audio/AudUIPlayer.js.map +1 -1
- package/dist/audio/trinity/audio/AudioCurveSetDriver.js +2 -2
- package/dist/audio/trinity/audio/AudioCurveSetDriver.js.map +1 -1
- package/dist/audio/trinity/audio/StretchAudio.js +2 -2
- package/dist/audio/trinity/audio/StretchAudio.js.map +1 -1
- package/dist/audio/trinity/index.js +1 -1
- package/dist/audio/trinity/trinityAudio/Tr2AudioStretchAuto.js +2 -2
- package/dist/audio/trinity/trinityAudio/Tr2AudioStretchAuto.js.map +1 -1
- package/dist/audio/trinity/trinityAudio/Tr2AudioStretchBase.js +2 -2
- package/dist/audio/trinity/trinityAudio/Tr2AudioStretchBase.js.map +1 -1
- package/dist/audio/trinity/trinityAudioApi/ITr2AudEmitter.js +1 -37
- package/dist/audio/trinity/trinityAudioApi/ITr2AudEmitter.js.map +1 -1
- package/dist/character/incarna/curves/Tr2ColorCurve.js +2 -2
- package/dist/character/incarna/curves/Tr2ColorCurve.js.map +1 -1
- package/dist/character/incarna/curves/Tr2ColorKey.js +2 -2
- package/dist/character/incarna/curves/Tr2ColorKey.js.map +1 -1
- package/dist/character/incarna/curves/Tr2ScalarCurve.js +2 -2
- package/dist/character/incarna/curves/Tr2ScalarCurve.js.map +1 -1
- package/dist/character/incarna/curves/Tr2ScalarKey.js +2 -2
- package/dist/character/incarna/curves/Tr2ScalarKey.js.map +1 -1
- package/dist/character/incarna/interior/Tr2InteriorCell.js +2 -2
- package/dist/character/incarna/interior/Tr2InteriorCell.js.map +1 -1
- package/dist/character/library/CjsCharacterLibrary.js +9 -16
- package/dist/character/library/CjsCharacterLibrary.js.map +1 -1
- package/dist/character/library/CjsCharacterLibraryDocuments.js +20 -4
- package/dist/character/library/CjsCharacterLibraryDocuments.js.map +1 -1
- package/dist/character/model/CjsCharacterRecord.js +2 -2
- package/dist/character/model/CjsCharacterRecord.js.map +1 -1
- package/dist/character/model/activity/CjsCharacterArchetype.js +2 -2
- package/dist/character/model/activity/CjsCharacterArchetype.js.map +1 -1
- package/dist/character/model/appearance/CjsCharacterColorLocation.js +2 -2
- package/dist/character/model/appearance/CjsCharacterColorLocation.js.map +1 -1
- package/dist/character/model/appearance/CjsCharacterColorName.js +2 -2
- package/dist/character/model/appearance/CjsCharacterColorName.js.map +1 -1
- package/dist/character/model/appearance/CjsCharacterColorSelection.js +2 -2
- package/dist/character/model/appearance/CjsCharacterColorSelection.js.map +1 -1
- package/dist/character/model/appearance/CjsCharacterSculptSelection.js +2 -2
- package/dist/character/model/appearance/CjsCharacterSculptSelection.js.map +1 -1
- package/dist/character/model/appearance/CjsCharacterSculptingLocation.js +2 -2
- package/dist/character/model/appearance/CjsCharacterSculptingLocation.js.map +1 -1
- package/dist/character/model/behavior/CjsCharacterAvatarBehavior.js +2 -2
- package/dist/character/model/behavior/CjsCharacterAvatarBehavior.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterColorValue.js +2 -2
- package/dist/character/model/catalog/CjsCharacterColorValue.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterDefinition.js +2 -2
- package/dist/character/model/catalog/CjsCharacterDefinition.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterMaterialProfile.js +2 -2
- package/dist/character/model/catalog/CjsCharacterMaterialProfile.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterModifierReference.js +2 -2
- package/dist/character/model/catalog/CjsCharacterModifierReference.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterPartMetadata.js +2 -2
- package/dist/character/model/catalog/CjsCharacterPartMetadata.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterPartModelBundle.js +2 -2
- package/dist/character/model/catalog/CjsCharacterPartModelBundle.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterPartSource.js +2 -2
- package/dist/character/model/catalog/CjsCharacterPartSource.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterPartSourceVersion.js +2 -2
- package/dist/character/model/catalog/CjsCharacterPartSourceVersion.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterPartType.js +2 -2
- package/dist/character/model/catalog/CjsCharacterPartType.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterProjectionProfile.js +2 -2
- package/dist/character/model/catalog/CjsCharacterProjectionProfile.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterRecipeEntry.js +2 -2
- package/dist/character/model/catalog/CjsCharacterRecipeEntry.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterRecipeProfile.js +2 -2
- package/dist/character/model/catalog/CjsCharacterRecipeProfile.js.map +1 -1
- package/dist/character/model/catalog/CjsCharacterTextureMetadata.js +2 -2
- package/dist/character/model/catalog/CjsCharacterTextureMetadata.js.map +1 -1
- package/dist/character/model/composition/CjsCharacterModifierLocation.js +2 -2
- package/dist/character/model/composition/CjsCharacterModifierLocation.js.map +1 -1
- package/dist/character/model/composition/CjsCharacterModifierSelection.js +2 -2
- package/dist/character/model/composition/CjsCharacterModifierSelection.js.map +1 -1
- package/dist/character/model/creation/CjsCharacterPaperdoll.js +2 -2
- package/dist/character/model/creation/CjsCharacterPaperdoll.js.map +1 -1
- package/dist/character/model/demographics/CjsCharacterAncestry.js +2 -2
- package/dist/character/model/demographics/CjsCharacterAncestry.js.map +1 -1
- package/dist/character/model/demographics/CjsCharacterBloodline.js +2 -2
- package/dist/character/model/demographics/CjsCharacterBloodline.js.map +1 -1
- package/dist/character/model/demographics/CjsCharacterRace.js +2 -2
- package/dist/character/model/demographics/CjsCharacterRace.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterAppearanceBinding.js +2 -2
- package/dist/character/model/planning/CjsCharacterAppearanceBinding.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterAppearanceColorSelection.js +2 -2
- package/dist/character/model/planning/CjsCharacterAppearanceColorSelection.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterAppearanceDiagnostic.js +2 -2
- package/dist/character/model/planning/CjsCharacterAppearanceDiagnostic.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterAppearanceLayer.js +2 -2
- package/dist/character/model/planning/CjsCharacterAppearanceLayer.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterAppearancePlan.js +2 -2
- package/dist/character/model/planning/CjsCharacterAppearancePlan.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterAppearanceSelection.js +2 -2
- package/dist/character/model/planning/CjsCharacterAppearanceSelection.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterBindingAlpha.js +2 -2
- package/dist/character/model/planning/CjsCharacterBindingAlpha.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterCompositionInput.js +2 -2
- package/dist/character/model/planning/CjsCharacterCompositionInput.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterCompositionPass.js +2 -2
- package/dist/character/model/planning/CjsCharacterCompositionPass.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterCompositionTarget.js +2 -2
- package/dist/character/model/planning/CjsCharacterCompositionTarget.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterCoverage.js +2 -2
- package/dist/character/model/planning/CjsCharacterCoverage.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterMorphTargetWeight.js +2 -2
- package/dist/character/model/planning/CjsCharacterMorphTargetWeight.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterOrigin.js +2 -2
- package/dist/character/model/planning/CjsCharacterOrigin.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterResolvedPart.js +2 -2
- package/dist/character/model/planning/CjsCharacterResolvedPart.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterTextureAsset.js +2 -2
- package/dist/character/model/planning/CjsCharacterTextureAsset.js.map +1 -1
- package/dist/character/model/planning/CjsCharacterTextureChannel.js +2 -2
- package/dist/character/model/planning/CjsCharacterTextureChannel.js.map +1 -1
- package/dist/character/model/resources/CjsCharacterPortraitResource.js +2 -2
- package/dist/character/model/resources/CjsCharacterPortraitResource.js.map +1 -1
- package/dist/character/model/resources/CjsCharacterResource.js +2 -2
- package/dist/character/model/resources/CjsCharacterResource.js.map +1 -1
- package/dist/character/trinity/interior/Tr2IntSkinnedObject.js +6 -5
- package/dist/character/trinity/interior/Tr2IntSkinnedObject.js.map +1 -1
- package/dist/character/trinity/interior/Tr2InteriorLightSource.js +2 -2
- package/dist/character/trinity/interior/Tr2InteriorLightSource.js.map +1 -1
- package/dist/character/trinity/interior/Tr2InteriorPlaceable.js +4 -5
- package/dist/character/trinity/interior/Tr2InteriorPlaceable.js.map +1 -1
- package/dist/character/trinity/interior/Tr2InteriorScene.js +2 -2
- package/dist/character/trinity/interior/Tr2InteriorScene.js.map +1 -1
- package/dist/character/trinity/trinityCore/Tr2GStateAnimation.js +2 -2
- package/dist/character/trinity/trinityCore/Tr2GStateAnimation.js.map +1 -1
- package/dist/character/trinity/trinityCore/Tr2GStateParameter.js +2 -2
- package/dist/character/trinity/trinityCore/Tr2GStateParameter.js.map +1 -1
- package/dist/character/trinity/trinityCore/Tr2Model.js +2 -2
- package/dist/character/trinity/trinityCore/Tr2Model.js.map +1 -1
- package/dist/character/trinity/trinityCore/Tr2SkinnedModel.js +21 -10
- package/dist/character/trinity/trinityCore/Tr2SkinnedModel.js.map +1 -1
- package/dist/character/trinity/trinityCore/Tr2SkinnedObject.js +64 -57
- package/dist/character/trinity/trinityCore/Tr2SkinnedObject.js.map +1 -1
- package/dist/character/trinity/trinityCore/Tr2SkinnedObjectLod.js +1 -1
- package/dist/character/trinity/trinityCore/Tr2SkinnedObjectLod.js.map +1 -1
- package/dist/character/trinity/wod/WodBakingScene.js +2 -2
- package/dist/character/trinity/wod/WodBakingScene.js.map +1 -1
- package/dist/core/CjsLibrary.js +32 -685
- package/dist/core/CjsLibrary.js.map +1 -1
- package/dist/core/index.js +1 -2
- package/dist/core/index.js.map +1 -1
- package/dist/global/blue/BeInfo.js +95 -0
- package/dist/global/blue/BeInfo.js.map +1 -0
- package/dist/global/blue/CcpDateTime.js +53 -0
- package/dist/global/blue/CcpDateTime.js.map +1 -0
- package/dist/global/blue/CcpTime.js +148 -0
- package/dist/global/blue/CcpTime.js.map +1 -0
- package/dist/global/blue/CjsBlueOS.js +301 -0
- package/dist/global/blue/CjsBlueOS.js.map +1 -0
- package/dist/global/blue/CjsBluePaths.js +97 -0
- package/dist/global/blue/CjsBluePaths.js.map +1 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js +29 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -0
- package/dist/global/blue/IBlueEvents.js +34 -0
- package/dist/global/blue/IBlueEvents.js.map +1 -0
- package/dist/global/blue/IBlueOS.js +132 -0
- package/dist/global/blue/IBlueOS.js.map +1 -0
- package/dist/global/blue/IBluePaths.js +72 -0
- package/dist/global/blue/IBluePaths.js.map +1 -0
- package/dist/global/blue/IBlueResMan.js +93 -0
- package/dist/global/blue/IBlueResMan.js.map +1 -0
- package/dist/global/blue/IBlueResManNotifications.js +51 -0
- package/dist/global/blue/IBlueResManNotifications.js.map +1 -0
- package/dist/global/blue/ICatchupTicks.js +25 -0
- package/dist/global/blue/ICatchupTicks.js.map +1 -0
- package/dist/global/blue/IInitialize.js +47 -0
- package/dist/global/blue/IInitialize.js.map +1 -0
- package/dist/global/blue/IListNotify.js +44 -0
- package/dist/global/blue/IListNotify.js.map +1 -0
- package/dist/global/blue/INotify.js +65 -0
- package/dist/global/blue/INotify.js.map +1 -0
- package/dist/global/blue/ISimTimeRebaseNotify.js +28 -0
- package/dist/global/blue/ISimTimeRebaseNotify.js.map +1 -0
- package/dist/global/blue/IVariableTicker.js +24 -0
- package/dist/global/blue/IVariableTicker.js.map +1 -0
- package/dist/global/blue/blue.js +61 -0
- package/dist/global/blue/blue.js.map +1 -0
- package/dist/global/blue/enums/CjsBlueEnumRegistry.js +173 -0
- package/dist/global/blue/enums/CjsBlueEnumRegistry.js.map +1 -0
- package/dist/global/blue/index.js +19 -0
- package/dist/global/blue/index.js.map +1 -1
- package/dist/global/blue/registerTrinityEnums.js +43 -0
- package/dist/global/blue/registerTrinityEnums.js.map +1 -0
- package/dist/global/compose/abstract.js +81 -0
- package/dist/global/compose/abstract.js.map +1 -0
- package/dist/global/compose/interface.js +131 -26
- package/dist/global/compose/interface.js.map +1 -1
- package/dist/global/compose/notify.js +10 -1
- package/dist/global/compose/notify.js.map +1 -1
- package/dist/global/compose/values.js +116 -53
- package/dist/global/compose/values.js.map +1 -1
- package/dist/global/consts/blue.js +73 -0
- package/dist/global/consts/blue.js.map +1 -0
- package/dist/global/consts/graphics/index.js +1 -1
- package/dist/global/consts/graphics/trinityEnums.js +19 -7
- package/dist/global/consts/graphics/trinityEnums.js.map +1 -1
- package/dist/global/consts/index.js +2 -1
- package/dist/global/consts/index.js.map +1 -1
- package/dist/global/consts/trinity.js.map +1 -1
- package/dist/global/contracts/ITr2BoundingBox.js +1 -34
- package/dist/global/contracts/ITr2BoundingBox.js.map +1 -1
- package/dist/global/contracts/ITr2RenderNode.js +1 -27
- package/dist/global/contracts/ITr2RenderNode.js.map +1 -1
- package/dist/global/contracts/index.js +2 -4
- package/dist/global/contracts/index.js.map +1 -1
- package/dist/global/index.js +23 -5
- package/dist/global/index.js.map +1 -1
- package/dist/global/model/CjsModel.js +82 -99
- package/dist/global/model/CjsModel.js.map +1 -1
- package/dist/global/model/CjsModelState.js +0 -15
- package/dist/global/model/CjsModelState.js.map +1 -1
- package/dist/global/model/document/CjsDocumentHydrator.js +5 -1
- package/dist/global/model/document/CjsDocumentHydrator.js.map +1 -1
- package/dist/global/model/index.js +1 -1
- package/dist/global/schema/CjsSchema.js +275 -69
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/global/schema/hydration.js +10 -8
- package/dist/global/schema/hydration.js.map +1 -1
- package/dist/global/schema/index.js +4 -3
- package/dist/global/schema/index.js.map +1 -1
- package/dist/global/schema/types/carbonTypes.js +1 -1
- package/dist/global/schema/types/carbonTypes.js.map +1 -1
- package/dist/global/utils/bytes.js +2 -0
- package/dist/global/utils/bytes.js.map +1 -1
- package/dist/global/utils/path.js +30 -1
- package/dist/global/utils/path.js.map +1 -1
- package/dist/index.js +59 -24
- package/dist/index.js.map +1 -1
- package/dist/resource/CjsResMan.js +206 -43
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/CjsResource.js +4 -1
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/format/CjsBlueReader.js +8 -2
- package/dist/resource/format/CjsBlueReader.js.map +1 -1
- package/dist/resource/format/CjsResourceProbe.js +15 -16
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/carbonEffect/carbonEffectResourceTransform.js +132 -75
- package/dist/resource/format/carbonEffect/carbonEffectResourceTransform.js.map +1 -1
- package/dist/resource/formats/black/core/CjsBlackPropertyReaders.js +26 -0
- package/dist/resource/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
- package/dist/resource/formats/black/core/CjsBlackSchemaRegistry.js +2 -1
- package/dist/resource/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
- package/dist/resource/formats/black/core/black-schema-v1-2026-09-19.json.js +4 -0
- package/dist/resource/formats/black/core/black-schema-v1-2026-09-19.json.js.map +1 -0
- package/dist/resource/formats/black/core/blackDefinitions.js +1 -1
- package/dist/resource/formats/black/core/blackDefinitions.js.map +1 -1
- package/dist/resource/formats/black/core/blackSchema.js +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +50 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +51 -5
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierGraphicIds.js +94 -0
- package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierGraphicIds.js.map +1 -0
- package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierTypes.js +189 -0
- package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierTypes.js.map +1 -0
- package/dist/resource/formats/fsd/64/readers/index.js +2 -0
- package/dist/resource/formats/fsd/64/readers/index.js.map +1 -1
- package/dist/resource/formats/hlsl/core/detailMapFamily.js +18 -92
- package/dist/resource/formats/hlsl/core/detailMapFamily.js.map +1 -1
- package/dist/resource/formats/hlsl/core/textureArrayFamilies.js +285 -0
- package/dist/resource/formats/hlsl/core/textureArrayFamilies.js.map +1 -0
- package/dist/resource/formats/pickle/CjsPickleFormat.js +34 -14
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +60 -451
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +407 -0
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -0
- package/dist/resource/formats/pickle/core/pickleCommon.js +671 -0
- package/dist/resource/formats/pickle/core/pickleCommon.js.map +1 -0
- package/dist/resource/formats/red/core/blackDefinitions.js +1 -1
- package/dist/resource/formats/webgl/core/effectPackage.js +85 -7
- package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +666 -565
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glslBackendBodySet.js +4 -4
- package/dist/resource/formats/webgl/core/glslBackendBodySet.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js +2 -2
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/geometry/TriGeometryRes.js +61 -7
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +11 -11
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
- package/dist/resource/index.js +11 -0
- package/dist/resource/index.js.map +1 -1
- package/dist/resource/shader/Tr2EffectRes.js +2 -3
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialArea.js +3 -3
- package/dist/resource/shader/Tr2MaterialArea.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialMesh.js +2 -2
- package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialRes.js +3 -3
- package/dist/resource/shader/Tr2MaterialRes.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +2 -2
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +2 -2
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +4 -4
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
- package/dist/resource/texture/SolidColorTextureConstructor.js +46 -0
- package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -0
- package/dist/resource/texture/Tr2ImageRes.js +3 -4
- package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodManager.js +0 -1
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js +4 -4
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +3 -4
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +5 -5
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +3 -3
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +2 -2
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +6 -6
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/texture/TriTextureRes.js +65 -21
- package/dist/resource/texture/TriTextureRes.js.map +1 -1
- package/dist/resource/texture/index.js +2 -0
- package/dist/resource/texture/index.js.map +1 -1
- package/dist/resource/texture/solidColorTexture.js +111 -0
- package/dist/resource/texture/solidColorTexture.js.map +1 -0
- package/dist/resource/video/AudioMetadata.js +41 -0
- package/dist/resource/video/AudioMetadata.js.map +1 -0
- package/dist/resource/video/IAudioSink.js +51 -0
- package/dist/resource/video/IAudioSink.js.map +1 -0
- package/dist/resource/video/IEncodedFrame.js +52 -0
- package/dist/resource/video/IEncodedFrame.js.map +1 -0
- package/dist/resource/video/IVideoContainerParser.js +70 -0
- package/dist/resource/video/IVideoContainerParser.js.map +1 -0
- package/dist/resource/video/IVideoDecoder.js +36 -0
- package/dist/resource/video/IVideoDecoder.js.map +1 -0
- package/dist/resource/video/PcmFrame.js +33 -0
- package/dist/resource/video/PcmFrame.js.map +1 -0
- package/dist/resource/video/VideoFrame.js +45 -0
- package/dist/resource/video/VideoFrame.js.map +1 -0
- package/dist/resource/video/VideoMetadata.js +34 -0
- package/dist/resource/video/VideoMetadata.js.map +1 -0
- package/dist/resource/video/enums.js +30 -0
- package/dist/resource/video/enums.js.map +1 -0
- package/dist/sof/EveSOF.js +176 -176
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/sof/EveSOFDNA.js +5 -1
- package/dist/sof/EveSOFDNA.js.map +1 -1
- package/dist/sof/EveSOFData.js +2 -2
- package/dist/sof/EveSOFData.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFaction.js +2 -2
- package/dist/sof/faction/EveSOFDataFaction.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFactionChild.js +2 -2
- package/dist/sof/faction/EveSOFDataFactionChild.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFactionColorSet.js +189 -3
- package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFactionHullArea.js +2 -2
- package/dist/sof/faction/EveSOFDataFactionHullArea.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFactionPlaneSet.js +2 -2
- package/dist/sof/faction/EveSOFDataFactionPlaneSet.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFactionSpotlightSet.js +2 -2
- package/dist/sof/faction/EveSOFDataFactionSpotlightSet.js.map +1 -1
- package/dist/sof/faction/EveSOFDataFactionVisibilityGroupSet.js +2 -2
- package/dist/sof/faction/EveSOFDataFactionVisibilityGroupSet.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGeneric.js +234 -230
- package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericDamage.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericDamage.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericDecalShader.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericDecalShader.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericHullCategory.js +27 -23
- package/dist/sof/generic/EveSOFDataGenericHullCategory.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericHullDamage.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericHullDamage.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericShader.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericShader.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericString.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericString.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericSwarm.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericSwarm.js.map +1 -1
- package/dist/sof/generic/EveSOFDataGenericVariant.js +2 -2
- package/dist/sof/generic/EveSOFDataGenericVariant.js.map +1 -1
- package/dist/sof/generic/EveSOFDataVisibilityGroup.js +2 -2
- package/dist/sof/generic/EveSOFDataVisibilityGroup.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHull.js +56 -3
- package/dist/sof/hull/EveSOFDataHull.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullAnimation.js +2 -2
- package/dist/sof/hull/EveSOFDataHullAnimation.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullArea.js +58 -54
- package/dist/sof/hull/EveSOFDataHullArea.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullBanner.js +109 -3
- package/dist/sof/hull/EveSOFDataHullBanner.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullBannerLight.js +2 -2
- package/dist/sof/hull/EveSOFDataHullBannerLight.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullBannerSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullBannerSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullBannerSetItem.js +109 -3
- package/dist/sof/hull/EveSOFDataHullBannerSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullBooster.js +2 -2
- package/dist/sof/hull/EveSOFDataHullBooster.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullBoosterItem.js +2 -2
- package/dist/sof/hull/EveSOFDataHullBoosterItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullChild.js +55 -50
- package/dist/sof/hull/EveSOFDataHullChild.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullChildSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullChildSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullChildSetItem.js +51 -46
- package/dist/sof/hull/EveSOFDataHullChildSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullController.js +2 -2
- package/dist/sof/hull/EveSOFDataHullController.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullDecalSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullDecalSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullDecalSetItem.js +45 -3
- package/dist/sof/hull/EveSOFDataHullDecalSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullHazeSet.js +21 -3
- package/dist/sof/hull/EveSOFDataHullHazeSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullHazeSetItem.js +47 -43
- package/dist/sof/hull/EveSOFDataHullHazeSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLightSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullLightSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLightSetItem.js +4 -2
- package/dist/sof/hull/EveSOFDataHullLightSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLightSetSpotLight.js +2 -2
- package/dist/sof/hull/EveSOFDataHullLightSetSpotLight.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLightSetTexturedPointLight.js +2 -2
- package/dist/sof/hull/EveSOFDataHullLightSetTexturedPointLight.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLocator.js +2 -2
- package/dist/sof/hull/EveSOFDataHullLocator.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLocatorSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullLocatorSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullLocatorSetGroup.js +2 -2
- package/dist/sof/hull/EveSOFDataHullLocatorSetGroup.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullPlaneSet.js +29 -3
- package/dist/sof/hull/EveSOFDataHullPlaneSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullPlaneSetItem.js +81 -75
- package/dist/sof/hull/EveSOFDataHullPlaneSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSoundEmitter.js +2 -2
- package/dist/sof/hull/EveSOFDataHullSoundEmitter.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSpotlightSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullSpotlightSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSpotlightSetItem.js +45 -41
- package/dist/sof/hull/EveSOFDataHullSpotlightSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSpriteLineSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullSpriteLineSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSpriteLineSetItem.js +70 -66
- package/dist/sof/hull/EveSOFDataHullSpriteLineSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSpriteSet.js +2 -2
- package/dist/sof/hull/EveSOFDataHullSpriteSet.js.map +1 -1
- package/dist/sof/hull/EveSOFDataHullSpriteSetItem.js +45 -41
- package/dist/sof/hull/EveSOFDataHullSpriteSetItem.js.map +1 -1
- package/dist/sof/hull/EveSOFDataMultiHullDecalIndexBuffers.js +2 -2
- package/dist/sof/hull/EveSOFDataMultiHullDecalIndexBuffers.js.map +1 -1
- package/dist/sof/layout/EveSOFDataDistributionDepletionCounter.js +2 -2
- package/dist/sof/layout/EveSOFDataDistributionDepletionCounter.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionBucket.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionBucket.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacement.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionPlacement.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionDepletionCounter.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionDepletionCounter.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionMapGraphicSettings.js +35 -3
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionMapGraphicSettings.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionParentMatch.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionParentMatch.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionPlacement.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionPlacement.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionRandomChance.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionRandomChance.js.map +1 -1
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementGroup.js +2 -2
- package/dist/sof/layout/EveSOFDataHullExtensionPlacementGroup.js.map +1 -1
- package/dist/sof/layout/EveSOFDataLayout.js +2 -2
- package/dist/sof/layout/EveSOFDataLayout.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPattern.js +2 -2
- package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPatternApplicationGroup.js +2 -2
- package/dist/sof/pattern/EveSOFDataPatternApplicationGroup.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPatternLayer.js +60 -3
- package/dist/sof/pattern/EveSOFDataPatternLayer.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPatternLayerProperties.js +23 -3
- package/dist/sof/pattern/EveSOFDataPatternLayerProperties.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPatternMaterialOverride.js +2 -2
- package/dist/sof/pattern/EveSOFDataPatternMaterialOverride.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPatternPerHull.js +2 -2
- package/dist/sof/pattern/EveSOFDataPatternPerHull.js.map +1 -1
- package/dist/sof/pattern/EveSOFDataPatternTransform.js +2 -2
- package/dist/sof/pattern/EveSOFDataPatternTransform.js.map +1 -1
- package/dist/sof/race/EveSOFDataRace.js +46 -42
- package/dist/sof/race/EveSOFDataRace.js.map +1 -1
- package/dist/sof/race/EveSOFDataRaceDamage.js +2 -2
- package/dist/sof/race/EveSOFDataRaceDamage.js.map +1 -1
- package/dist/sof/shared/CjsExternalRef.js +2 -2
- package/dist/sof/shared/CjsExternalRef.js.map +1 -1
- package/dist/sof/shared/EveSOFDNADescriptor.js +2 -2
- package/dist/sof/shared/EveSOFDNADescriptor.js.map +1 -1
- package/dist/sof/shared/EveSOFDataArea.js +61 -3
- package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
- package/dist/sof/shared/EveSOFDataAreaMaterial.js +4 -2
- package/dist/sof/shared/EveSOFDataAreaMaterial.js.map +1 -1
- package/dist/sof/shared/EveSOFDataBlinkType.js +48 -8
- package/dist/sof/shared/EveSOFDataBlinkType.js.map +1 -1
- package/dist/sof/shared/EveSOFDataBooster.js +2 -2
- package/dist/sof/shared/EveSOFDataBooster.js.map +1 -1
- package/dist/sof/shared/EveSOFDataBoosterShape.js +2 -2
- package/dist/sof/shared/EveSOFDataBoosterShape.js.map +1 -1
- package/dist/sof/shared/EveSOFDataDecalIndexBuffer.js +2 -2
- package/dist/sof/shared/EveSOFDataDecalIndexBuffer.js.map +1 -1
- package/dist/sof/shared/EveSOFDataInstancedMesh.js +40 -3
- package/dist/sof/shared/EveSOFDataInstancedMesh.js.map +1 -1
- package/dist/sof/shared/EveSOFDataLogo.js +2 -2
- package/dist/sof/shared/EveSOFDataLogo.js.map +1 -1
- package/dist/sof/shared/EveSOFDataLogoSet.js +33 -3
- package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
- package/dist/sof/shared/EveSOFDataMaterial.js +2 -2
- package/dist/sof/shared/EveSOFDataMaterial.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameter.js +2 -2
- package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterBool.js +2 -2
- package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterColor.js +2 -2
- package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterFloat.js +2 -2
- package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterInt.js +2 -2
- package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterVector2.js +2 -2
- package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterVector3.js +2 -2
- package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -1
- package/dist/sof/shared/EveSOFDataPointLightAttachment.js +2 -2
- package/dist/sof/shared/EveSOFDataPointLightAttachment.js.map +1 -1
- package/dist/sof/shared/EveSOFDataSpotLightAttachment.js +2 -2
- package/dist/sof/shared/EveSOFDataSpotLightAttachment.js.map +1 -1
- package/dist/sof/shared/EveSOFDataTexture.js +2 -2
- package/dist/sof/shared/EveSOFDataTexture.js.map +1 -1
- package/dist/sof/shared/EveSOFDataTransform.js +2 -2
- package/dist/sof/shared/EveSOFDataTransform.js.map +1 -1
- package/dist/sof/shared/EveSofDataMeshInstance.js +2 -2
- package/dist/sof/shared/EveSofDataMeshInstance.js.map +1 -1
- package/dist/sof/sofDocumentValues.js +9 -0
- package/dist/sof/sofDocumentValues.js.map +1 -1
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +2 -25
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -1
- package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js +2 -72
- package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -1
- package/dist/trinity/controllers/ITr2ControllerOwner.js +1 -36
- package/dist/trinity/controllers/ITr2ControllerOwner.js.map +1 -1
- package/dist/trinity/controllers/Tr2Controller.js +4 -5
- package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
- package/dist/trinity/controllers/Tr2ControllerEventHandler.js +2 -2
- package/dist/trinity/controllers/Tr2ControllerEventHandler.js.map +1 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js +9 -17
- package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/trinity/controllers/Tr2SyncToAnimation.js +4 -5
- package/dist/trinity/controllers/Tr2SyncToAnimation.js.map +1 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js +1 -28
- package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionAnimateCurveSet.js +9 -7
- package/dist/trinity/controllers/action/Tr2ActionAnimateCurveSet.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionAnimateValue.js +11 -9
- package/dist/trinity/controllers/action/Tr2ActionAnimateValue.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionBindRTPC.js +9 -7
- package/dist/trinity/controllers/action/Tr2ActionBindRTPC.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionCallback.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionCallback.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionChildEffect.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionChildEffect.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionOverlay.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionOverlay.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionPlayCurveSet.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionPlayCurveSet.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionPlayMeshAnimation.js +13 -9
- package/dist/trinity/controllers/action/Tr2ActionPlayMeshAnimation.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionPlaySound.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionPlaySound.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionPython.js +6 -6
- package/dist/trinity/controllers/action/Tr2ActionPython.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionResetClipSphereCenter.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionResetClipSphereCenter.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSetAttenuationScaling.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionSetAttenuationScaling.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSetAudioEmitterPrefix.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSetAudioSwitch.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionSetAudioSwitch.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSetExternalControllerVariable.js +8 -17
- package/dist/trinity/controllers/action/Tr2ActionSetExternalControllerVariable.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSetShaderOption.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionSetShaderOption.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSetValue.js +11 -9
- package/dist/trinity/controllers/action/Tr2ActionSetValue.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +4 -5
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/trinity/controllers/contracts.js +27 -19
- package/dist/trinity/controllers/contracts.js.map +1 -1
- package/dist/trinity/controllers/expression/Tr2BindingPoint.js +6 -15
- package/dist/trinity/controllers/expression/Tr2BindingPoint.js.map +1 -1
- package/dist/trinity/controllers/expression/Tr2ControllerFloatVariable.js +2 -2
- package/dist/trinity/controllers/expression/Tr2ControllerFloatVariable.js.map +1 -1
- package/dist/trinity/controllers/expression/expressionRuntime.js +136 -0
- package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -1
- package/dist/trinity/controllers/index.js +6 -6
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +1 -24
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
- package/dist/trinity/controllers/state/Tr2StateMachine.js +4 -6
- package/dist/trinity/controllers/state/Tr2StateMachine.js.map +1 -1
- package/dist/trinity/controllers/state/Tr2StateMachineState.js +6 -6
- package/dist/trinity/controllers/state/Tr2StateMachineState.js.map +1 -1
- package/dist/trinity/controllers/state/Tr2StateMachineTransition.js +12 -9
- package/dist/trinity/controllers/state/Tr2StateMachineTransition.js.map +1 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js +5 -6
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
- package/dist/trinity/core/ITr2Renderable.js +1 -49
- package/dist/trinity/core/ITr2Renderable.js.map +1 -1
- package/dist/trinity/core/ITr2Updateable.js +1 -22
- package/dist/trinity/core/ITr2Updateable.js.map +1 -1
- package/dist/trinity/core/ITriReroutable.js +56 -0
- package/dist/trinity/core/ITriReroutable.js.map +1 -0
- package/dist/trinity/core/Tr2Denoiser.js +2 -2
- package/dist/trinity/core/Tr2Denoiser.js.map +1 -1
- package/dist/trinity/core/Tr2MaterialParameterStore.js +2 -2
- package/dist/trinity/core/Tr2MaterialParameterStore.js.map +1 -1
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js +2 -2
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -1
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +1 -1
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -1
- package/dist/trinity/core/Tr2Renderer.js +161 -4
- package/dist/trinity/core/Tr2Renderer.js.map +1 -1
- package/dist/trinity/core/Tr2ShadowMap.js +3 -3
- package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
- package/dist/trinity/core/Tr2StreamingBitmapSaver.js +2 -2
- package/dist/trinity/core/Tr2StreamingBitmapSaver.js.map +1 -1
- package/dist/trinity/core/Tr2Transform.js +4 -5
- package/dist/trinity/core/Tr2Transform.js.map +1 -1
- package/dist/trinity/core/animation/Tr2GrannyAnimation.js +2 -2
- package/dist/trinity/core/animation/Tr2GrannyAnimation.js.map +1 -1
- package/dist/trinity/core/animation/Tr2TextureAnimation.js +2 -2
- package/dist/trinity/core/animation/Tr2TextureAnimation.js.map +1 -1
- package/dist/trinity/core/animation/TriRigidOrientation.js +2 -2
- package/dist/trinity/core/animation/TriRigidOrientation.js.map +1 -1
- package/dist/trinity/core/animation/TriTorque.js +2 -2
- package/dist/trinity/core/animation/TriTorque.js.map +1 -1
- package/dist/trinity/core/batch/CjsBatchManager.js +15 -50
- package/dist/trinity/core/batch/CjsBatchManager.js.map +1 -1
- package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -1
- package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js +12 -14
- package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -1
- package/dist/trinity/core/binding/Tr2BindingVector3.js +2 -2
- package/dist/trinity/core/binding/Tr2BindingVector3.js.map +1 -1
- package/dist/trinity/core/binding/Tr2DynamicBinding.js +6 -20
- package/dist/trinity/core/binding/Tr2DynamicBinding.js.map +1 -1
- package/dist/trinity/core/binding/Tr2ExternalParameter.js +3 -6
- package/dist/trinity/core/binding/Tr2ExternalParameter.js.map +1 -1
- package/dist/trinity/core/binding/Tr2PyValueBinding.js +2 -2
- package/dist/trinity/core/binding/Tr2PyValueBinding.js.map +1 -1
- package/dist/trinity/core/binding/TriValueBinding.js +50 -24
- package/dist/trinity/core/binding/TriValueBinding.js.map +1 -1
- package/dist/trinity/core/context/CjsDirectTrinityStepExecutor.js +0 -6
- package/dist/trinity/core/context/CjsDirectTrinityStepExecutor.js.map +1 -1
- package/dist/trinity/core/context/CjsTrinityStepExecutor.js +7 -10
- package/dist/trinity/core/context/CjsTrinityStepExecutor.js.map +1 -1
- package/dist/trinity/core/context/Tr2RenderContext.js +74 -116
- package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
- package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/Tr2GpuBuffer.js +2 -2
- package/dist/trinity/core/device/Tr2GpuBuffer.js.map +1 -1
- package/dist/trinity/core/device/Tr2RenderTarget.js +2 -2
- package/dist/trinity/core/device/Tr2RenderTarget.js.map +1 -1
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +2 -2
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -1
- package/dist/trinity/core/device/Tr2SwapChain.js +2 -2
- package/dist/trinity/core/device/Tr2SwapChain.js.map +1 -1
- package/dist/trinity/core/device/TriDevice.js +576 -37
- package/dist/trinity/core/device/TriDevice.js.map +1 -1
- package/dist/trinity/core/device/gTriDev.js +49 -0
- package/dist/trinity/core/device/gTriDev.js.map +1 -0
- package/dist/trinity/core/index.js +9 -5
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2KelvinColor.js +2 -2
- package/dist/trinity/core/lighting/Tr2KelvinColor.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +7 -17
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2ShLightingManager.js +2 -2
- package/dist/trinity/core/lighting/Tr2ShLightingManager.js.map +1 -1
- package/dist/trinity/core/line/Tr2BoundingLineSet.js +2 -2
- package/dist/trinity/core/line/Tr2BoundingLineSet.js.map +1 -1
- package/dist/trinity/core/line/Tr2CurveLineSet.js +10 -7
- package/dist/trinity/core/line/Tr2CurveLineSet.js.map +1 -1
- package/dist/trinity/core/line/Tr2LineGraph.js +2 -2
- package/dist/trinity/core/line/Tr2LineGraph.js.map +1 -1
- package/dist/trinity/core/line/Tr2PrimitiveSet.js +4 -5
- package/dist/trinity/core/line/Tr2PrimitiveSet.js.map +1 -1
- package/dist/trinity/core/line/TriLineSet.js +2 -2
- package/dist/trinity/core/line/TriLineSet.js.map +1 -1
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js +1 -37
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -1
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js +1 -34
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +5 -6
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2InstancedMesh.js +2 -2
- package/dist/trinity/core/mesh/Tr2InstancedMesh.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2Mesh.js +288 -183
- package/dist/trinity/core/mesh/Tr2Mesh.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2MeshArea.js +32 -3
- package/dist/trinity/core/mesh/Tr2MeshArea.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js +58 -8
- package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +141 -142
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2SerializedMorphAnimation.js +2 -2
- package/dist/trinity/core/mesh/Tr2SerializedMorphAnimation.js.map +1 -1
- package/dist/trinity/core/procedural/GradientTextureConstructor.js +62 -0
- package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -0
- package/dist/trinity/core/procedural/gradientTexture.js +196 -0
- package/dist/trinity/core/procedural/gradientTexture.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -1
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +5 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -1
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +2 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -1
- package/dist/trinity/core/tool/Tr2ManipulationTool.js +2 -2
- package/dist/trinity/core/tool/Tr2ManipulationTool.js.map +1 -1
- package/dist/trinity/core/tool/Tr2RotationTool.js +2 -2
- package/dist/trinity/core/tool/Tr2RotationTool.js.map +1 -1
- package/dist/trinity/core/tool/Tr2ScalingTool.js +2 -2
- package/dist/trinity/core/tool/Tr2ScalingTool.js.map +1 -1
- package/dist/trinity/core/tool/Tr2TranslationTool.js +2 -2
- package/dist/trinity/core/tool/Tr2TranslationTool.js.map +1 -1
- package/dist/trinity/core/variable/Tr2ExpressionTermInfo.js +2 -2
- package/dist/trinity/core/variable/Tr2ExpressionTermInfo.js.map +1 -1
- package/dist/trinity/core/variable/TriFloat.js +2 -2
- package/dist/trinity/core/variable/TriFloat.js.map +1 -1
- package/dist/trinity/core/variable/TriObserverLocal.js +2 -2
- package/dist/trinity/core/variable/TriObserverLocal.js.map +1 -1
- package/dist/trinity/core/variable/TriVariable.js +2 -2
- package/dist/trinity/core/variable/TriVariable.js.map +1 -1
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js +2 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -1
- package/dist/trinity/core/view/TriProjection.js +2 -2
- package/dist/trinity/core/view/TriProjection.js.map +1 -1
- package/dist/trinity/core/view/TriRect.js +2 -2
- package/dist/trinity/core/view/TriRect.js.map +1 -1
- package/dist/trinity/core/view/TriView.js +2 -2
- package/dist/trinity/core/view/TriView.js.map +1 -1
- package/dist/trinity/core/view/TriViewport.js +2 -2
- package/dist/trinity/core/view/TriViewport.js.map +1 -1
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +3 -3
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/curves/Tr2CurveSetRange.js +2 -2
- package/dist/trinity/curves/Tr2CurveSetRange.js.map +1 -1
- package/dist/trinity/curves/TriCurveSet.js +2 -2
- package/dist/trinity/curves/TriCurveSet.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2BoneMatrixCurve.js +2 -2
- package/dist/trinity/curves/curve/Tr2BoneMatrixCurve.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveColor.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveColor.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveColorMixer.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveColorMixer.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveCombiner.js +3 -3
- package/dist/trinity/curves/curve/Tr2CurveCombiner.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveConstant.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveConstant.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveEulerRotation.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveEulerRotation.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveEulerRotationExpression.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveEulerRotationExpression.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveQuaternion.js +3 -3
- package/dist/trinity/curves/curve/Tr2CurveQuaternion.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveScalar.js +3 -3
- package/dist/trinity/curves/curve/Tr2CurveScalar.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveScalarExpression.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveScalarExpression.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveVector2.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveVector2.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveVector3.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveVector3.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveVector3Expression.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveVector3Expression.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveVector3Lerp.js +2 -2
- package/dist/trinity/curves/curve/Tr2CurveVector3Lerp.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2DistanceTracker.js +5 -5
- package/dist/trinity/curves/curve/Tr2DistanceTracker.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2FollowCurve.js +2 -2
- package/dist/trinity/curves/curve/Tr2FollowCurve.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2QuaternionLerpCurve.js +2 -2
- package/dist/trinity/curves/curve/Tr2QuaternionLerpCurve.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2RotationAdapter.js +2 -2
- package/dist/trinity/curves/curve/Tr2RotationAdapter.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2ScalarExprKeyCurve.js +2 -2
- package/dist/trinity/curves/curve/Tr2ScalarExprKeyCurve.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2ScalarFader.js +2 -2
- package/dist/trinity/curves/curve/Tr2ScalarFader.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2TranslationAdapter.js +2 -2
- package/dist/trinity/curves/curve/Tr2TranslationAdapter.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2VectorFunctionModifier.js +2 -2
- package/dist/trinity/curves/curve/Tr2VectorFunctionModifier.js.map +1 -1
- package/dist/trinity/curves/curve/TriColorSequencer.js +18 -18
- package/dist/trinity/curves/curve/TriColorSequencer.js.map +1 -1
- package/dist/trinity/curves/curve/TriEventCurve.js +51 -51
- package/dist/trinity/curves/curve/TriEventCurve.js.map +1 -1
- package/dist/trinity/curves/curve/TriPerlinCurve.js +2 -2
- package/dist/trinity/curves/curve/TriPerlinCurve.js.map +1 -1
- package/dist/trinity/curves/curve/TriVectorSequencer.js +36 -36
- package/dist/trinity/curves/curve/TriVectorSequencer.js.map +1 -1
- package/dist/trinity/curves/key/Tr2CameraFollowCurveKey.js +2 -2
- package/dist/trinity/curves/key/Tr2CameraFollowCurveKey.js.map +1 -1
- package/dist/trinity/curves/key/Tr2MatrixKey.js +2 -2
- package/dist/trinity/curves/key/Tr2MatrixKey.js.map +1 -1
- package/dist/trinity/curves/key/Tr2ObjectFollowCurveKey.js +2 -2
- package/dist/trinity/curves/key/Tr2ObjectFollowCurveKey.js.map +1 -1
- package/dist/trinity/curves/key/Tr2ScalarExprKey.js +28 -24
- package/dist/trinity/curves/key/Tr2ScalarExprKey.js.map +1 -1
- package/dist/trinity/curves/key/TriEventKey.js +2 -2
- package/dist/trinity/curves/key/TriEventKey.js.map +1 -1
- package/dist/trinity/curves/track/Tr2GrannyEventTrack.js +2 -2
- package/dist/trinity/curves/track/Tr2GrannyEventTrack.js.map +1 -1
- package/dist/trinity/curves/track/Tr2GrannyTrack.js +9 -4
- package/dist/trinity/curves/track/Tr2GrannyTrack.js.map +1 -1
- package/dist/trinity/curves/track/Tr2GrannyTransformTrack.js +2 -2
- package/dist/trinity/curves/track/Tr2GrannyTransformTrack.js.map +1 -1
- package/dist/trinity/curves/track/Tr2GrannyVectorTrack.js +2 -2
- package/dist/trinity/curves/track/Tr2GrannyVectorTrack.js.map +1 -1
- package/dist/trinity/eve/AudioGameObject.js +6 -8
- package/dist/trinity/eve/AudioGameObject.js.map +1 -1
- package/dist/trinity/eve/EveCustomMask.js +2 -2
- package/dist/trinity/eve/EveCustomMask.js.map +1 -1
- package/dist/trinity/eve/EveDistanceField.js +6 -4
- package/dist/trinity/eve/EveDistanceField.js.map +1 -1
- package/dist/trinity/eve/EveImpactOverlay.js +2 -2
- package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
- package/dist/trinity/eve/EveThrottleable.js +2 -2
- package/dist/trinity/eve/EveThrottleable.js.map +1 -1
- package/dist/trinity/eve/EveTriggerVolume.js +4 -5
- package/dist/trinity/eve/EveTriggerVolume.js.map +1 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js +1 -23
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
- package/dist/trinity/eve/IEveSpaceObject2.js +1 -24
- package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/IEveTransform.js +1 -22
- package/dist/trinity/eve/IEveTransform.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerItem.js +2 -2
- package/dist/trinity/eve/attachment/banner/EveBannerItem.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerLight.js +2 -2
- package/dist/trinity/eve/attachment/banner/EveBannerLight.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js +20 -3
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +127 -122
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +5 -5
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +4 -5
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveTrailsSet.js +4 -2
- package/dist/trinity/eve/attachment/booster/EveTrailsSet.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +169 -155
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js +3 -3
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSetItem.js +2 -2
- package/dist/trinity/eve/attachment/haze/EveHazeSetItem.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSetLight.js +2 -2
- package/dist/trinity/eve/attachment/haze/EveHazeSetLight.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneLight.js +2 -2
- package/dist/trinity/eve/attachment/plane/EvePlaneLight.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +10 -4
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSetItem.js +3 -2
- package/dist/trinity/eve/attachment/plane/EvePlaneSetItem.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightLight.js +2 -2
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +3 -3
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSetItem.js +2 -2
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLight.js +2 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteLight.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +4 -4
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSetItem.js +2 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +5 -5
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteSetItem.js +2 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretFiringFX.js +7 -4
- package/dist/trinity/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +177 -144
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +2 -2
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
- package/dist/trinity/eve/camera/EveCamera.js +5 -11
- package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
- package/dist/trinity/eve/child/EveChildAudio.js +4 -5
- package/dist/trinity/eve/child/EveChildAudio.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBehaviorSystem.js +5 -6
- package/dist/trinity/eve/child/EveChildBehaviorSystem.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js +6 -6
- package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBulletStorm.js +4 -5
- package/dist/trinity/eve/child/EveChildBulletStorm.js.map +1 -1
- package/dist/trinity/eve/child/EveChildCloud.js +5 -6
- package/dist/trinity/eve/child/EveChildCloud.js.map +1 -1
- package/dist/trinity/eve/child/EveChildCloud2.js +166 -166
- package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/trinity/eve/child/EveChildContainer.js +235 -169
- package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildEffectPropagator.js +9 -9
- package/dist/trinity/eve/child/EveChildEffectPropagator.js.map +1 -1
- package/dist/trinity/eve/child/EveChildExplosion.js +11 -7
- package/dist/trinity/eve/child/EveChildExplosion.js.map +1 -1
- package/dist/trinity/eve/child/EveChildFogVolume.js +2 -2
- package/dist/trinity/eve/child/EveChildFogVolume.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInheritProperties.js +2 -2
- package/dist/trinity/eve/child/EveChildInheritProperties.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstanceContainer.js +2 -2
- package/dist/trinity/eve/child/EveChildInstanceContainer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstanceMeshRenderer.js +11 -7
- package/dist/trinity/eve/child/EveChildInstanceMeshRenderer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +2 -2
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +2 -2
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +2 -2
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +4 -5
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
- package/dist/trinity/eve/child/EveChildLightingOverride.js +4 -5
- package/dist/trinity/eve/child/EveChildLightingOverride.js.map +1 -1
- package/dist/trinity/eve/child/EveChildLineSet.js +4 -5
- package/dist/trinity/eve/child/EveChildLineSet.js.map +1 -1
- package/dist/trinity/eve/child/EveChildLink.js +2 -2
- package/dist/trinity/eve/child/EveChildLink.js.map +1 -1
- package/dist/trinity/eve/child/EveChildMesh.js +315 -229
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +2 -2
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js +2 -2
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -1
- package/dist/trinity/eve/child/EveChildParticleSphere.js +4 -5
- package/dist/trinity/eve/child/EveChildParticleSphere.js.map +1 -1
- package/dist/trinity/eve/child/EveChildParticleSystem.js +36 -36
- package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPlug.js +60 -14
- package/dist/trinity/eve/child/EveChildPlug.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPostProcessVolume.js +2 -2
- package/dist/trinity/eve/child/EveChildPostProcessVolume.js.map +1 -1
- package/dist/trinity/eve/child/EveChildQuad.js +4 -5
- package/dist/trinity/eve/child/EveChildQuad.js.map +1 -1
- package/dist/trinity/eve/child/EveChildRef.js +2 -2
- package/dist/trinity/eve/child/EveChildRef.js.map +1 -1
- package/dist/trinity/eve/child/EveChildSocket.js +2 -2
- package/dist/trinity/eve/child/EveChildSocket.js.map +1 -1
- package/dist/trinity/eve/child/EveChildSpherePin.js +4 -4
- package/dist/trinity/eve/child/EveChildSpherePin.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +4 -4
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/child/EveCloudVolumeBall.js +2 -2
- package/dist/trinity/eve/child/EveCloudVolumeBall.js.map +1 -1
- package/dist/trinity/eve/child/EveCloudVolumeTextureParameter.js +6 -6
- package/dist/trinity/eve/child/EveCloudVolumeTextureParameter.js.map +1 -1
- package/dist/trinity/eve/child/EveSpaceObjectChild.js +2 -2
- package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
- package/dist/trinity/eve/child/IEveLightingOverride.js +1 -23
- package/dist/trinity/eve/child/IEveLightingOverride.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/Allign.js +2 -2
- package/dist/trinity/eve/child/behaviors/Allign.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/ApproachGroup.js +2 -2
- package/dist/trinity/eve/child/behaviors/ApproachGroup.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/BackAndForth.js +2 -2
- package/dist/trinity/eve/child/behaviors/BackAndForth.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/BehaviorGroup.js +4 -4
- package/dist/trinity/eve/child/behaviors/BehaviorGroup.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/BehaviorGroupBooster.js +2 -2
- package/dist/trinity/eve/child/behaviors/BehaviorGroupBooster.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/CollisionAvoidance.js +2 -2
- package/dist/trinity/eve/child/behaviors/CollisionAvoidance.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/DroneAvoidance.js +2 -2
- package/dist/trinity/eve/child/behaviors/DroneAvoidance.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/FollowASpline.js +2 -2
- package/dist/trinity/eve/child/behaviors/FollowASpline.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/Formation.js +2 -2
- package/dist/trinity/eve/child/behaviors/Formation.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/InclusionVolume.js +2 -2
- package/dist/trinity/eve/child/behaviors/InclusionVolume.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/Inertia.js +2 -2
- package/dist/trinity/eve/child/behaviors/Inertia.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/PlayFX.js +2 -2
- package/dist/trinity/eve/child/behaviors/PlayFX.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/SeekTarget.js +2 -2
- package/dist/trinity/eve/child/behaviors/SeekTarget.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/SpawnDrones.js +2 -2
- package/dist/trinity/eve/child/behaviors/SpawnDrones.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/Wander.js +2 -2
- package/dist/trinity/eve/child/behaviors/Wander.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/lifecycle/ProcessLifetime.js +2 -2
- package/dist/trinity/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -1
- package/dist/trinity/eve/child/behaviors/tunnels/SplineTunnelGroup.js +2 -2
- package/dist/trinity/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -1
- package/dist/trinity/eve/child/lineSetPaths/EveBezierCurve.js +8 -8
- package/dist/trinity/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
- package/dist/trinity/eve/child/lineSetPaths/EveCircle.js +8 -8
- package/dist/trinity/eve/child/lineSetPaths/EveCircle.js.map +1 -1
- package/dist/trinity/eve/child/lineSetPaths/EveLineChildContainer.js +2 -2
- package/dist/trinity/eve/child/lineSetPaths/EveLineChildContainer.js.map +1 -1
- package/dist/trinity/eve/child/modifiers/EveChildModifierAttachToBone.js +2 -2
- package/dist/trinity/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -1
- package/dist/trinity/eve/child/modifiers/EveChildModifierBillboard3D.js +2 -2
- package/dist/trinity/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -1
- package/dist/trinity/eve/child/modifiers/EveChildModifierSRT.js +2 -2
- package/dist/trinity/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
- package/dist/trinity/eve/child/modifiers/EveChildModifierStretch.js +2 -2
- package/dist/trinity/eve/child/modifiers/EveChildModifierStretch.js.map +1 -1
- package/dist/trinity/eve/child/modifiers/EveChildModifierTranslateWithCamera.js +2 -2
- package/dist/trinity/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -1
- package/dist/trinity/eve/child/procedural/EveChildProceduralContainer.js +5 -6
- package/dist/trinity/eve/child/procedural/EveChildProceduralContainer.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js +3 -3
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +3 -3
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCycling.js +2 -2
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js +3 -3
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandom.js +4 -4
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js +4 -4
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js +4 -4
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -1
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholds.js +4 -4
- package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -1
- package/dist/trinity/eve/distribution/EveBaseDistributionMethod.js +2 -2
- package/dist/trinity/eve/distribution/EveBaseDistributionMethod.js.map +1 -1
- package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +2 -2
- package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -1
- package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +2 -2
- package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -1
- package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +2 -2
- package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -1
- package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js +2 -2
- package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -1
- package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +4 -4
- package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -1
- package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js +2 -2
- package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -1
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +2 -2
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -1
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +2 -2
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -1
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +2 -2
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -1
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +2 -2
- package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -1
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerBurst.js +2 -2
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -1
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +2 -2
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -1
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerInterval.js +2 -2
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -1
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +2 -2
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -1
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +2 -2
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -1
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +2 -2
- package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -1
- package/dist/trinity/eve/effect/lensflare/EveLensflare.js +4 -5
- package/dist/trinity/eve/effect/lensflare/EveLensflare.js.map +1 -1
- package/dist/trinity/eve/effect/multiEffect/EveMultiEffect.js +4 -5
- package/dist/trinity/eve/effect/multiEffect/EveMultiEffect.js.map +1 -1
- package/dist/trinity/eve/effect/multiEffect/EveMultiEffectParameter.js +4 -4
- package/dist/trinity/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -1
- package/dist/trinity/eve/index.js +4 -4
- package/dist/trinity/eve/lights/Tr2FactionLight.js +5 -6
- package/dist/trinity/eve/lights/Tr2FactionLight.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2Light.js +37 -9
- package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2PointLight.js +2 -2
- package/dist/trinity/eve/lights/Tr2PointLight.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2SpotLight.js +2 -2
- package/dist/trinity/eve/lights/Tr2SpotLight.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2TexturedPointLight.js +29 -31
- package/dist/trinity/eve/lights/Tr2TexturedPointLight.js.map +1 -1
- package/dist/trinity/eve/locator/EveLocator2.js +2 -2
- package/dist/trinity/eve/locator/EveLocator2.js.map +1 -1
- package/dist/trinity/eve/locator/EveLocatorSets.js +13 -4
- package/dist/trinity/eve/locator/EveLocatorSets.js.map +1 -1
- package/dist/trinity/eve/locator/Locator.js +2 -2
- package/dist/trinity/eve/locator/Locator.js.map +1 -1
- package/dist/trinity/eve/overlays/EveDamageOverlay.js +2 -2
- package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
- package/dist/trinity/eve/overlays/EveMeshOverlayEffect.js +2 -2
- package/dist/trinity/eve/overlays/EveMeshOverlayEffect.js.map +1 -1
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +5 -6
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveFiringEffectElementContainer.js +4 -5
- package/dist/trinity/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveLocalPositionCurve.js +2 -2
- package/dist/trinity/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveRemotePositionCurve.js +2 -2
- package/dist/trinity/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch.js +6 -6
- package/dist/trinity/eve/renderable/stretch/EveStretch.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js +10 -8
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js +4 -5
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceScene.js +2 -2
- package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -2
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
- package/dist/trinity/eve/scene/components/EveComponentRegistry.js +3 -3
- package/dist/trinity/eve/scene/components/EveComponentRegistry.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveChildSmartLightSet.js +6 -7
- package/dist/trinity/eve/smartLights/EveChildSmartLightSet.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveSmartLightBaseGroup.js +2 -2
- package/dist/trinity/eve/smartLights/EveSmartLightBaseGroup.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveSmartLightColorShareGroup.js +4 -8
- package/dist/trinity/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveSmartLightMesh.js +7 -4
- package/dist/trinity/eve/smartLights/EveSmartLightMesh.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveSmartLightPointLight.js +25 -15
- package/dist/trinity/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveSmartLightQuad.js +4 -9
- package/dist/trinity/eve/smartLights/EveSmartLightQuad.js.map +1 -1
- package/dist/trinity/eve/smartLights/EveSmartLightSpotLight.js +2 -2
- package/dist/trinity/eve/smartLights/EveSmartLightSpotLight.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +2 -3
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +2 -2
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +2 -2
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +10 -18
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +2 -2
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +2 -2
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -1
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +4 -9
- package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterBool.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterBool.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterColor.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterColor.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterFloat.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterFloat.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterInt.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterInt.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterString.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterString.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterVector2.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterVector2.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterVector3.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterVector3.js.map +1 -1
- package/dist/trinity/eve/socket/EveSocketParameterVector4.js +2 -2
- package/dist/trinity/eve/socket/EveSocketParameterVector4.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveEffectRoot2.js +20 -17
- package/dist/trinity/eve/spaceObject/EveEffectRoot2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveMissile.js +2 -2
- package/dist/trinity/eve/spaceObject/EveMissile.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveMissileWarhead.js +2 -2
- package/dist/trinity/eve/spaceObject/EveMissileWarhead.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveMobile.js +2 -2
- package/dist/trinity/eve/spaceObject/EveMobile.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveRootTransform.js +2 -2
- package/dist/trinity/eve/spaceObject/EveRootTransform.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveShip2.js +2 -2
- package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +539 -432
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveTransform.js +7 -7
- package/dist/trinity/eve/spaceObject/EveTransform.js.map +1 -1
- package/dist/trinity/eve/spaceObject/IEveSpaceObject2ParentData.js +44 -52
- package/dist/trinity/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -1
- package/dist/trinity/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +2 -2
- package/dist/trinity/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -1
- package/dist/trinity/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +2 -2
- package/dist/trinity/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -1
- package/dist/trinity/eve/spaceObject/planet/EvePlanet.js +2 -2
- package/dist/trinity/eve/spaceObject/planet/EvePlanet.js.map +1 -1
- package/dist/trinity/eve/spaceObject/swarm/EveSwarm.js +2 -2
- package/dist/trinity/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
- package/dist/trinity/eve/spaceObject/swarm/EveSwarmRenderable.js +7 -8
- package/dist/trinity/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -1
- package/dist/trinity/eve/ui/EveConnector.js +2 -2
- package/dist/trinity/eve/ui/EveConnector.js.map +1 -1
- package/dist/trinity/eve/ui/EveEllipseDefinition.js +2 -2
- package/dist/trinity/eve/ui/EveEllipseDefinition.js.map +1 -1
- package/dist/trinity/eve/ui/EveEllipseSet.js +36 -6
- package/dist/trinity/eve/ui/EveEllipseSet.js.map +1 -1
- package/dist/trinity/eve/ui/EveLineContainer.js +4 -5
- package/dist/trinity/eve/ui/EveLineContainer.js.map +1 -1
- package/dist/trinity/eve/ui/EveProjectBracket.js +11 -3
- package/dist/trinity/eve/ui/EveProjectBracket.js.map +1 -1
- package/dist/trinity/eve/ui/EveSpherePin.js +6 -7
- package/dist/trinity/eve/ui/EveSpherePin.js.map +1 -1
- package/dist/trinity/eve/ui/EveSprite2dBracket.js +2 -2
- package/dist/trinity/eve/ui/EveSprite2dBracket.js.map +1 -1
- package/dist/trinity/eve/ui/EveSprite2dBracketRenderer.js +2 -2
- package/dist/trinity/eve/ui/EveSprite2dBracketRenderer.js.map +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js +6 -24
- package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
- package/dist/trinity/eve/ui/EveUiObject.js +2 -2
- package/dist/trinity/eve/ui/EveUiObject.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +4 -5
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveLineSet.js +6 -7
- package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +2 -2
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -1
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +8 -9
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/EveVirtualCamera.js +2 -2
- package/dist/trinity/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/EveVirtualCameraSystem.js +2 -2
- package/dist/trinity/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +4 -4
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +4 -4
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +2 -2
- package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
- package/dist/trinity/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +2 -2
- package/dist/trinity/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
- package/dist/trinity/eve/volume/EveBoxVolume.js +44 -44
- package/dist/trinity/eve/volume/EveBoxVolume.js.map +1 -1
- package/dist/trinity/eve/volume/EveEllipsoidVolume.js +2 -2
- package/dist/trinity/eve/volume/EveEllipsoidVolume.js.map +1 -1
- package/dist/trinity/eve/volume/EveSphereVolume.js +5 -6
- package/dist/trinity/eve/volume/EveSphereVolume.js.map +1 -1
- package/dist/trinity/generated/eve/child/EveCloudEditableVolume.js +2 -2
- package/dist/trinity/generated/eve/child/EveCloudEditableVolume.js.map +1 -1
- package/dist/trinity/generated/eve/effect/EveOccluder.js +2 -2
- package/dist/trinity/generated/eve/effect/EveOccluder.js.map +1 -1
- package/dist/trinity/generated/eve/effect/EveStarfield.js +2 -2
- package/dist/trinity/generated/eve/effect/EveStarfield.js.map +1 -1
- package/dist/trinity/generated/font/Tr2FontManager.js +2 -2
- package/dist/trinity/generated/font/Tr2FontManager.js.map +1 -1
- package/dist/trinity/generated/font/Tr2FontMeasurer.js +2 -2
- package/dist/trinity/generated/font/Tr2FontMeasurer.js.map +1 -1
- package/dist/trinity/generated/font/Tr2SBitWrapper.js +2 -2
- package/dist/trinity/generated/font/Tr2SBitWrapper.js.map +1 -1
- package/dist/trinity/generated/particle/Tr2GpuParticleSystem.js +2 -2
- package/dist/trinity/generated/particle/Tr2GpuParticleSystem.js.map +1 -1
- package/dist/trinity/generated/raytracing/Tr2RaytracingManager.js +2 -2
- package/dist/trinity/generated/raytracing/Tr2RaytracingManager.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2d.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2d.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dArc.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dArc.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dContainer.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dContainer.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dFrame.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dFrame.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dLayer.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dLayer.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dLine.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dLine.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretch.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretch.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretchVertical.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretchVertical.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dTextObject.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dTextObject.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dTexture.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2Sprite2dTexture.js.map +1 -1
- package/dist/trinity/generated/sprite2d/Tr2SpriteObject.js +2 -2
- package/dist/trinity/generated/sprite2d/Tr2SpriteObject.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2AtlasTexture.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2AtlasTexture.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2GpuStructuredBuffer.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2GpuStructuredBuffer.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2GrannyPrimitiveSet.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2GrannyPrimitiveSet.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2HostBitmap.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2HostBitmap.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2ImpostorManager.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2ImpostorManager.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2PrimitiveScene.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2PrimitiveScene.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2PrimitiveText.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2PrimitiveText.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2ReflectionProbe.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2ReflectionProbe.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2SSSSS.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2SSSSS.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2TextureAtlas.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2TextureAtlas.js.map +1 -1
- package/dist/trinity/generated/trinityCore/Tr2TextureAtlasMan.js +2 -2
- package/dist/trinity/generated/trinityCore/Tr2TextureAtlasMan.js.map +1 -1
- package/dist/trinity/index.js +23 -16
- package/dist/trinity/index.js.map +1 -1
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js +1 -31
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -1
- package/dist/trinity/particle/Tr2ParticleSystem.js +51 -52
- package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
- package/dist/trinity/particle/attribute/Tr2CapsuleShapeAttributeGenerator.js +2 -2
- package/dist/trinity/particle/attribute/Tr2CapsuleShapeAttributeGenerator.js.map +1 -1
- package/dist/trinity/particle/attribute/Tr2ConsecutiveIntegerAttributeGenerator.js +2 -2
- package/dist/trinity/particle/attribute/Tr2ConsecutiveIntegerAttributeGenerator.js.map +1 -1
- package/dist/trinity/particle/attribute/Tr2RandomDirectionAttributeGenerator.js +2 -2
- package/dist/trinity/particle/attribute/Tr2RandomDirectionAttributeGenerator.js.map +1 -1
- package/dist/trinity/particle/attribute/Tr2RandomIntegerAttributeGenerator.js +2 -2
- package/dist/trinity/particle/attribute/Tr2RandomIntegerAttributeGenerator.js.map +1 -1
- package/dist/trinity/particle/attribute/Tr2RandomUniformAttributeGenerator.js +2 -2
- package/dist/trinity/particle/attribute/Tr2RandomUniformAttributeGenerator.js.map +1 -1
- package/dist/trinity/particle/attribute/Tr2SphereShapeAttributeGenerator.js +2 -2
- package/dist/trinity/particle/attribute/Tr2SphereShapeAttributeGenerator.js.map +1 -1
- package/dist/trinity/particle/constraint/Tr2ElementBlendConstraint.js +2 -2
- package/dist/trinity/particle/constraint/Tr2ElementBlendConstraint.js.map +1 -1
- package/dist/trinity/particle/constraint/Tr2PlaneConstraint.js +13 -3
- package/dist/trinity/particle/constraint/Tr2PlaneConstraint.js.map +1 -1
- package/dist/trinity/particle/constraint/Tr2SphereConstraint.js +2 -2
- package/dist/trinity/particle/constraint/Tr2SphereConstraint.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementData.js +22 -8
- package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementDeclaration.js +13 -25
- package/dist/trinity/particle/element/Tr2ParticleElementDeclaration.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementDeclarationName.js +38 -3
- package/dist/trinity/particle/element/Tr2ParticleElementDeclarationName.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +26 -27
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +4 -5
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2GpuUniqueEmitter.js +2 -2
- package/dist/trinity/particle/emitter/Tr2GpuUniqueEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +17 -18
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ForceSphereVolume.js +2 -2
- package/dist/trinity/particle/force/Tr2ForceSphereVolume.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleAttractorForce.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleAttractorForce.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleDirectForce.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleDirectForce.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleDragForce.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleDragForce.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleFluidDragForce.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleFluidDragForce.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleSpring.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleSpring.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleTurbulenceForce.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleTurbulenceForce.js.map +1 -1
- package/dist/trinity/particle/force/Tr2ParticleVortexForce.js +2 -2
- package/dist/trinity/particle/force/Tr2ParticleVortexForce.js.map +1 -1
- package/dist/trinity/particle/index.js +1 -1
- package/dist/trinity/postProcess/Tr2PostProcess.js +2 -2
- package/dist/trinity/postProcess/Tr2PostProcess.js.map +1 -1
- package/dist/trinity/postProcess/Tr2PostProcess2.js +2 -2
- package/dist/trinity/postProcess/Tr2PostProcess2.js.map +1 -1
- package/dist/trinity/postProcess/Tr2PostProcessAttributes.js +2 -2
- package/dist/trinity/postProcess/Tr2PostProcessAttributes.js.map +1 -1
- package/dist/trinity/postProcess/Tr2PostProcessRenderer.js +4 -4
- package/dist/trinity/postProcess/Tr2PostProcessRenderer.js.map +1 -1
- package/dist/trinity/postProcess/Tr2SSAO.js +4 -4
- package/dist/trinity/postProcess/Tr2SSAO.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPBloomEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPBloomEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPColorCorrectionEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPColorCorrectionEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPDepthOfFieldEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPDepthOfFieldEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPDesaturateEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPDesaturateEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPDynamicExposureEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPDynamicExposureEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPFadeEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPFadeEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPFilmGrainEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPFilmGrainEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPFogEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPFogEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPGenericEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPGenericEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPGodRaysEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPGodRaysEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPLutEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPLutEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPSignalLossEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPSignalLossEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPTaaEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPTaaEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPTonemappingEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPTonemappingEffect.js.map +1 -1
- package/dist/trinity/postProcess/effect/Tr2PPVignetteEffect.js +2 -2
- package/dist/trinity/postProcess/effect/Tr2PPVignetteEffect.js.map +1 -1
- package/dist/trinity/renderJob/Tr2RenderJobs.js +5 -5
- package/dist/trinity/renderJob/Tr2RenderJobs.js.map +1 -1
- package/dist/trinity/renderJob/TriRenderJob.js +4 -4
- package/dist/trinity/renderJob/TriRenderJob.js.map +1 -1
- package/dist/trinity/renderJob/node/Tr2RenderNodeEffect.js +4 -5
- package/dist/trinity/renderJob/node/Tr2RenderNodeEffect.js.map +1 -1
- package/dist/trinity/renderJob/node/Tr2RenderNodeSprite2dScene.js +4 -5
- package/dist/trinity/renderJob/node/Tr2RenderNodeSprite2dScene.js.map +1 -1
- package/dist/trinity/renderJob/step/Tr2StepExecuteRenderNode.js +2 -2
- package/dist/trinity/renderJob/step/Tr2StepExecuteRenderNode.js.map +1 -1
- package/dist/trinity/renderJob/step/TriRenderStep.js +2 -2
- package/dist/trinity/renderJob/step/TriRenderStep.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepClear.js +2 -2
- package/dist/trinity/renderJob/step/TriStepClear.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepClearUav.js +2 -2
- package/dist/trinity/renderJob/step/TriStepClearUav.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepCopyRenderTarget.js +2 -2
- package/dist/trinity/renderJob/step/TriStepCopyRenderTarget.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepEnableWireframeMode.js +2 -2
- package/dist/trinity/renderJob/step/TriStepEnableWireframeMode.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepFilterVisibilityResults.js +2 -2
- package/dist/trinity/renderJob/step/TriStepFilterVisibilityResults.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepGenerateMipMaps.js +2 -2
- package/dist/trinity/renderJob/step/TriStepGenerateMipMaps.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPopRenderTarget.js +2 -2
- package/dist/trinity/renderJob/step/TriStepPopRenderTarget.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPresentSwapChain.js +2 -2
- package/dist/trinity/renderJob/step/TriStepPresentSwapChain.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPushDepthStencil.js +2 -2
- package/dist/trinity/renderJob/step/TriStepPushDepthStencil.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +2 -2
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderAtlas.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderAtlas.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderDebug.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderDebug.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderEffect.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderEffect.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderFps.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderFps.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderLineGraph.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderLineGraph.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderObject.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderObject.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderPass.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderPass.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderScene.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderScene.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderSceneDebug.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderSceneDebug.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRenderTexture.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRenderTexture.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepResolve.js +2 -2
- package/dist/trinity/renderJob/step/TriStepResolve.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRunComputeShader.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRunComputeShader.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepRunJob.js +2 -2
- package/dist/trinity/renderJob/step/TriStepRunJob.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetDebugRenderer.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetDebugRenderer.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetDepthStencil.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetDepthStencil.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetProjection.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetProjection.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetRenderState.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetRenderState.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetRenderTarget.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetRenderTarget.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetStdRndStates.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetStdRndStates.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetUpscalingContextID.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetUpscalingContextID.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetVariableStore.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetVariableStore.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetView.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetView.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetViewport.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetViewport.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepSetVisualizationMode.js +2 -2
- package/dist/trinity/renderJob/step/TriStepSetVisualizationMode.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepTestBlocking.js +2 -2
- package/dist/trinity/renderJob/step/TriStepTestBlocking.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepToggleCubemap.js +2 -2
- package/dist/trinity/renderJob/step/TriStepToggleCubemap.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepUpdate.js +2 -2
- package/dist/trinity/renderJob/step/TriStepUpdate.js.map +1 -1
- package/dist/trinity/shader/Tr2DataTextureManager.js +9 -9
- package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Effect.js +370 -347
- package/dist/trinity/shader/Tr2Effect.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +5 -5
- package/dist/trinity/shader/Tr2Material.js.map +1 -1
- package/dist/trinity/shader/Tr2ShaderBuffer.js +3 -4
- package/dist/trinity/shader/Tr2ShaderBuffer.js.map +1 -1
- package/dist/trinity/shader/index.js +3 -0
- package/dist/trinity/shader/index.js.map +1 -1
- package/dist/trinity/shader/parameter/CjsParameter.js +202 -185
- package/dist/trinity/shader/parameter/CjsParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/CjsVectorParameter.js +2 -2
- package/dist/trinity/shader/parameter/CjsVectorParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/ITriEffectParameter.js +56 -0
- package/dist/trinity/shader/parameter/ITriEffectParameter.js.map +1 -0
- package/dist/trinity/shader/parameter/ITriEffectResourceParameter.js +31 -0
- package/dist/trinity/shader/parameter/ITriEffectResourceParameter.js.map +1 -0
- package/dist/trinity/shader/parameter/ITriEffectTextureParameter.js +43 -0
- package/dist/trinity/shader/parameter/ITriEffectTextureParameter.js.map +1 -0
- package/dist/trinity/shader/parameter/Tr2ConstantEffectParameter.js +17 -5
- package/dist/trinity/shader/parameter/Tr2ConstantEffectParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2FloatParameter.js +46 -45
- package/dist/trinity/shader/parameter/Tr2FloatParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +14 -12
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2Matrix4Parameter.js +33 -32
- package/dist/trinity/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2RuntimeTextureParameter.js +11 -10
- package/dist/trinity/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2TextureAnimationParameter.js +55 -53
- package/dist/trinity/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2Vector2Parameter.js +49 -48
- package/dist/trinity/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2Vector3Parameter.js +52 -51
- package/dist/trinity/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2Vector4Parameter.js +56 -55
- package/dist/trinity/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
- package/dist/trinity/shader/parameter/TriFloatArrayParameter.js +8 -8
- package/dist/trinity/shader/parameter/TriFloatArrayParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/TriTextureParameter.js +27 -22
- package/dist/trinity/shader/parameter/TriTextureParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/TriTransformParameter.js +27 -27
- package/dist/trinity/shader/parameter/TriTransformParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/TriVariableParameter.js +53 -54
- package/dist/trinity/shader/parameter/TriVariableParameter.js.map +1 -1
- package/dist/trinity/shader/parameter/TriVector4.js +2 -2
- package/dist/trinity/shader/parameter/TriVector4.js.map +1 -1
- package/dist/trinity/shader/reflection/Tr2ShaderOption.js +4 -2
- package/dist/trinity/shader/reflection/Tr2ShaderOption.js.map +1 -1
- package/dist/trinity/shader/sampler/Tr2SamplerOverride.js +11 -2
- package/dist/trinity/shader/sampler/Tr2SamplerOverride.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dContainerBase.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dContainerBase.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dLineTrace.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dLineTrace.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dLineTraceVertex.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dLineTraceVertex.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dPickingMask.js +8 -9
- package/dist/trinity/sprite2d/Tr2Sprite2dPickingMask.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dPolygon.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dPolygon.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dRenderJob.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dRenderJob.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dScene.js +4 -4
- package/dist/trinity/sprite2d/Tr2Sprite2dScene.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dTransform.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dTransform.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2Sprite2dTriangle.js +2 -2
- package/dist/trinity/sprite2d/Tr2Sprite2dTriangle.js.map +1 -1
- package/dist/trinity/sprite2d/Tr2SpriteObjectBase.js +2 -2
- package/dist/trinity/sprite2d/Tr2SpriteObjectBase.js.map +1 -1
- package/dist/trinity/ui/Tr2PresentParameters.js +2 -2
- package/dist/trinity/ui/Tr2PresentParameters.js.map +1 -1
- package/dist/trinity/ui/Tr2ProjectBoundingBoxBracket.js +3 -3
- package/dist/trinity/ui/Tr2ProjectBoundingBoxBracket.js.map +1 -1
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
- package/docs/core/README.md +38 -38
- package/docs/core/architecture.md +6 -5
- package/docs/core/reference/api.md +0 -10
- package/docs/core/reference/classes/README.md +57 -67
- package/docs/global/architecture.md +1 -3
- package/docs/global/blue-enums.md +115 -0
- package/docs/global/concepts/model-lifecycle.md +177 -182
- package/docs/global/core-types/README.md +394 -317
- package/docs/global/reference/api.md +2 -2
- package/docs/global/reference/classes/README.md +355 -205
- package/docs/global/reference/classes/dropped.md +40 -0
- package/docs/resource/architecture.md +152 -112
- package/docs/resource/concepts/resource-lifecycle.md +21 -15
- package/docs/resource/formats/geometry-interchange.md +50 -0
- package/docs/resource/formats/pickle.md +126 -100
- package/docs/resource/formats/provenance.md +15 -9
- package/docs/resource/formats/webgl/carbon-constant-layouts.md +98 -232
- package/docs/resource/formats/webgl/decl-io.md +241 -397
- package/docs/resource/formats/webgl/memory-structured.md +91 -128
- package/docs/resource/formats/webgl/texture-sample.md +306 -469
- package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +278 -530
- package/docs/resource/reference/classes/README.md +3 -1
- package/docs/resource/reference/classes/dropped.md +21 -1
- package/docs/resource/reference/classes/formats.md +33 -0
- package/docs/resource/reference/classes/texture.md +11 -1
- package/docs/resource/reference/classes/video.md +92 -0
- package/docs/resource/reference/events.md +10 -9
- package/docs/resource/reference/motherlode-cache.md +24 -11
- package/docs/resource/reference/queues.md +30 -1
- package/docs/trinity/README.md +5 -5
- package/docs/trinity/architecture.md +355 -344
- package/docs/trinity/concepts/eve-runtime-behavior.md +1 -1
- package/docs/trinity/reference/api.md +19 -7
- package/docs/trinity/reference/classes/dropped.md +2 -11
- package/docs/trinity/reference/classes/eve-runtime.md +1 -1
- package/docs/trinity/reference/classes/trinity-core.md +1672 -1622
- package/docs/trinity/reference/implementation-status.md +92 -92
- package/package.json +2 -1
- package/dist/core/CjsFrameDriver.js +0 -109
- package/dist/core/CjsFrameDriver.js.map +0 -1
- package/dist/global/contracts/CjsFrameLifecycle.js +0 -49
- package/dist/global/contracts/CjsFrameLifecycle.js.map +0 -1
- package/dist/global/contracts/CjsInstancedMeshManager.js +0 -58
- package/dist/global/contracts/CjsInstancedMeshManager.js.map +0 -1
- package/dist/resource/formats/black/core/black-schema-v1-2026-07-23.json.js +0 -4
- package/dist/resource/formats/black/core/black-schema-v1-2026-07-23.json.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackAndForth.js","sources":["../../../../../../src/trinity/eve/child/behaviors/BackAndForth.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/Behaviors/BackAndForth.h\r\n// trinity/trinity/Eve/SpaceObject/Children/Behaviors/BackAndForth.cpp\r\n// Hand-maintained from Carbon source, promoted out of generated intake.\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { LocatorType } from \"./enums.js\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { EveLocatorSets } from \"../../locator/EveLocatorSets.js\";\r\n\r\n// Module scratch for the per-agent loop (behavior updates run sequentially).\r\nconst Z_AXIS = vec3.fromValues(0, 0, 1);\r\nconst UP_AXIS = vec3.fromValues(0, 1, 0);\r\nconst TARGET_POINT = vec3.create();\r\nconst AGENT_POSITION_WS = vec3.create();\r\nconst DESIRED_VELOCITY = vec3.create();\r\nconst INV_DIR = vec3.create();\r\nconst NO_FORCES = [];\r\n\r\n/** A steering behaviour that shuttles each drone between seek and deliver locators, slowing on approach, snapping its facing, and triggering effects on arrival. */\r\n@type.define({ className: \"BackAndForth\", family: \"eve/child/behaviors\" })\r\nexport class BackAndForth extends CjsModel\r\n{\r\n\r\n /** m_priority (int32_t) [READWRITE, PERSIST, NOTIFY, ENUM] */\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n behaviorPriority = 0;\r\n\r\n /** m_enabled (bool) [READWRITE, PERSIST, NOTIFY, ENUM] */\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n enabled = true;\r\n\r\n /** m_locatorType (LocatorType - enum LocatorType) [READWRITE, PERSIST, ENUM, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n @type.enum(\"LocatorType\")\r\n locatorType = 0;\r\n\r\n /** m_locatorSets (PEveLocatorSetsVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveLocatorSets\")\r\n locatorSet = [];\r\n\r\n /** m_arrivedRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n arrivedRadius = 50;\r\n\r\n /** m_distFromOrigin (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n distFromOrigin = 20;\r\n\r\n /** m_slowDownRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n slowDownRadius = 200;\r\n\r\n /** m_backAndForthWeight (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n backAndForthWeight = 100;\r\n\r\n /** m_fxBehavior (IBehavior*) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"IBehavior\")\r\n fxBehavior = null;\r\n\r\n /** m_target (EveSpaceObject2*) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"EveSpaceObject2\")\r\n target = null;\r\n\r\n /** m_parent (EveSpaceObject2*) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"EveSpaceObject2\")\r\n parent = null;\r\n\r\n /** m_seconds (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n secondsToTurn = 0.25;\r\n\r\n /** m_locatorSetName (BlueSharedString) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n locatorSetName = \"damage\";\r\n\r\n // Debug arrival point (Carbon m_arrivalPoint).\r\n #arrivalPoint = vec3.create();\r\n\r\n /** Carbon BackAndForth::GetProcessPriority (cpp:31-34). */\r\n @carbon.method\r\n @impl.implemented\r\n GetProcessPriority()\r\n {\r\n return this.behaviorPriority;\r\n }\r\n\r\n /** Carbon BackAndForth::GetBehaviorName (cpp:36-39). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBehaviorName()\r\n {\r\n return \"BackAndForth\";\r\n }\r\n\r\n /** Per-agent scratch record count (Carbon sizeof(BackAndForthData)). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon returns a byte size; the JS port models scratch as one plain record per agent, so any non-zero value means 'has scratch'.\")\r\n GetScratchMemorySize()\r\n {\r\n return 1;\r\n }\r\n\r\n /** Fresh per-agent scratch record (Carbon BackAndForthData placement init). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon initializes caller-provided raw memory; the JS port returns the fresh record instead.\")\r\n InitializeScratch()\r\n {\r\n return {\r\n locatorTarget: vec3.create(),\r\n locatorDirection: vec3.create(),\r\n locatorIndex: -1,\r\n seek: true,\r\n deliver: false,\r\n arrived: true,\r\n timePassed: 0\r\n };\r\n }\r\n\r\n /**\r\n * Shuttles each agent between its seek/deliver (or parent/target) locators\r\n * with arrival slow-down, facing snap, and PlayFX triggering (Carbon\r\n * CalculateBehavior, cpp:51-194).\r\n * @param {Array} agents - DroneAgent records\r\n * @param {Array} scratchData - per-agent BackAndForthData records\r\n * @param {Number} deltaTime\r\n * @param {Object} group - owning BehaviorGroup\r\n * @param {Object} system - owning EveChildBehaviorSystem\r\n * @param {Array} _dronesInSearchRadius - unused\r\n * @returns {Array} empty (as Carbon)\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"TriRandInt maps to Math.random and Be::Time fx timestamps to Date.now seconds; the steering math is ported verbatim.\")\r\n CalculateBehavior(agents, scratchData, deltaTime, group, system, _dronesInSearchRadius)\r\n {\r\n if (!this.enabled)\r\n {\r\n return NO_FORCES;\r\n }\r\n\r\n if (this.fxBehavior === null)\r\n {\r\n this.fxBehavior = group.GetBehaviorByName(\"PlayFX\");\r\n }\r\n\r\n const worldTransform = system.GetWorldTransform();\r\n\r\n for (let c = 0; c < agents.length; c++)\r\n {\r\n const agent = agents[c];\r\n const data = scratchData?.[c];\r\n if (!data)\r\n {\r\n continue;\r\n }\r\n\r\n if (this.locatorType === BackAndForth.LocatorType.LOCAL_LOCATORS)\r\n {\r\n if (data.arrived)\r\n {\r\n if (data.seek)\r\n {\r\n const seekLocators = this.#GetLocatorsForSet(\"seek\");\r\n if (seekLocators !== null && seekLocators.length > 0)\r\n {\r\n const index = Math.floor(Math.random() * seekLocators.length);\r\n vec3.copy(data.locatorTarget, seekLocators[index].position);\r\n vec3.transformQuat(data.locatorDirection, UP_AXIS, seekLocators[index].direction);\r\n }\r\n }\r\n else if (data.deliver)\r\n {\r\n const deliverLocators = this.#GetLocatorsForSet(\"deliver\");\r\n if (deliverLocators !== null && deliverLocators.length > 0)\r\n {\r\n const index = Math.floor(Math.random() * deliverLocators.length);\r\n vec3.copy(data.locatorTarget, deliverLocators[index].position);\r\n vec3.transformQuat(data.locatorDirection, UP_AXIS, deliverLocators[index].direction);\r\n }\r\n }\r\n data.arrived = false;\r\n }\r\n }\r\n else if (this.locatorType === BackAndForth.LocatorType.PARENT_LOCATORS)\r\n {\r\n if (this.parent === null)\r\n {\r\n this.parent = group.GetParent();\r\n }\r\n\r\n if (data.arrived && this.parent)\r\n {\r\n // Pick a new locator to go to\r\n const count = Number(this.parent.GetLocatorCount?.(this.locatorSetName) ?? 0);\r\n data.locatorIndex = Math.floor(Math.random() * Math.max(count, 1));\r\n }\r\n\r\n this.#GetOwnerLocatorPosition(this.parent, data);\r\n data.arrived = false;\r\n }\r\n else if (this.locatorType === BackAndForth.LocatorType.TARGET_LOCATORS)\r\n {\r\n if (data.arrived && this.target)\r\n {\r\n // Pick a new locator to go to\r\n const count = Number(this.target.GetLocatorCount?.(this.locatorSetName) ?? 0);\r\n data.locatorIndex = Math.floor(Math.random() * Math.max(count, 1));\r\n }\r\n\r\n this.#GetOwnerLocatorPosition(this.target, data);\r\n data.arrived = false;\r\n }\r\n\r\n vec3.copy(agent.target, data.locatorTarget);\r\n\r\n // If the direction is (0,0,0) it points up, but then the slow-down\r\n // radius won't work\r\n if (vec3.squaredLength(data.locatorDirection) === 0)\r\n {\r\n vec3.set(data.locatorDirection, 0, 1, 0);\r\n }\r\n\r\n vec3.normalize(TARGET_POINT, data.locatorDirection);\r\n vec3.scale(TARGET_POINT, TARGET_POINT, this.distFromOrigin);\r\n vec3.add(TARGET_POINT, TARGET_POINT, data.locatorTarget);\r\n\r\n // For debugging\r\n vec3.copy(this.#arrivalPoint, TARGET_POINT);\r\n\r\n vec3.transformMat4(AGENT_POSITION_WS, agent.position, worldTransform);\r\n\r\n vec3.subtract(DESIRED_VELOCITY, TARGET_POINT, AGENT_POSITION_WS);\r\n const distance = vec3.length(DESIRED_VELOCITY);\r\n vec3.normalize(DESIRED_VELOCITY, DESIRED_VELOCITY);\r\n\r\n // If we are approaching the target\r\n if (distance < this.slowDownRadius)\r\n {\r\n // make the agent slow down before arriving at target\r\n vec3.scale(DESIRED_VELOCITY, DESIRED_VELOCITY, this.backAndForthWeight * (distance / this.slowDownRadius));\r\n\r\n // Set the rotation of the drone\r\n vec3.subtract(INV_DIR, data.locatorTarget, AGENT_POSITION_WS);\r\n vec3.normalize(INV_DIR, INV_DIR);\r\n if (vec3.squaredLength(INV_DIR) > 0)\r\n {\r\n quat.rotationTo(agent.rotation, Z_AXIS, INV_DIR);\r\n }\r\n data.timePassed = 0;\r\n\r\n // Start playing fx when slowing down\r\n if (!agent.playFX && this.fxBehavior !== null)\r\n {\r\n agent.fxStartTime = Date.now() / 1000;\r\n agent.playFX = true;\r\n }\r\n\r\n // If the agent has arrived at the target, switch targets\r\n if (distance < this.arrivedRadius)\r\n {\r\n const seek = data.seek;\r\n data.seek = data.deliver;\r\n data.deliver = seek;\r\n data.arrived = true;\r\n }\r\n }\r\n else\r\n {\r\n // Have the drone slowly start moving based on time passed\r\n data.timePassed += deltaTime;\r\n data.timePassed = Math.max(data.timePassed, this.secondsToTurn);\r\n vec3.scale(DESIRED_VELOCITY, DESIRED_VELOCITY, Math.max(data.timePassed, this.secondsToTurn) / this.secondsToTurn);\r\n }\r\n vec3.add(agent.acceleration, agent.acceleration, DESIRED_VELOCITY);\r\n vec3.subtract(agent.acceleration, agent.acceleration, agent.velocity);\r\n }\r\n\r\n return NO_FORCES;\r\n }\r\n\r\n /** Carbon method AddLocatorSet (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.implemented\r\n AddLocatorSet()\r\n {\r\n const seek = new EveLocatorSets();\r\n seek.SetName(\"seek\");\r\n const deliver = new EveLocatorSets();\r\n deliver.SetName(\"deliver\");\r\n this.locatorSet.push(seek, deliver);\r\n }\r\n\r\n /** Carbon BackAndForth::SetParent (cpp:348-354). */\r\n @carbon.method\r\n @impl.implemented\r\n SetParent(parent)\r\n {\r\n this.parent = parent ?? null;\r\n }\r\n\r\n // Carbon GetLocatorsForSet (cpp:322-332): first locator set with the name.\r\n /**\r\n * The locators of the first locator set matching a name, or null when none matches.\r\n */\r\n #GetLocatorsForSet(setName)\r\n {\r\n for (const set of this.locatorSet)\r\n {\r\n if (set?.HasName?.(setName))\r\n {\r\n return set.GetLocators();\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Carbon GetParentLocatorPosition (BackAndForth.cpp:356-363): null-guard\r\n * the parent, then the world position and direction of its indexed locator\r\n * from the behaviour's named set, into the caller's two out-vectors.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetParentLocatorPosition(locatorIndex, outPosition, outDirection)\r\n {\r\n this.#ReadOwnerLocator(this.parent, locatorIndex, outPosition, outDirection);\r\n }\r\n\r\n /** Carbon GetTargetLocatorPosition (cpp:365-372): the target twin. */\r\n @carbon.method\r\n @impl.implemented\r\n GetTargetLocatorPosition(locatorIndex, outPosition, outDirection)\r\n {\r\n this.#ReadOwnerLocator(this.target, locatorIndex, outPosition, outDirection);\r\n }\r\n\r\n /** The shared body of the pair above; the owner duck is the runtime's\r\n * locator-set surface (GetLocatorPositionFromSet/GetLocatorRotationFromSet). */\r\n #ReadOwnerLocator(owner, locatorIndex, outPosition, outDirection)\r\n {\r\n if (owner)\r\n {\r\n owner.GetLocatorPositionFromSet?.(locatorIndex, true, this.locatorSetName, outPosition);\r\n owner.GetLocatorRotationFromSet?.(locatorIndex, true, this.locatorSetName, outDirection);\r\n }\r\n }\r\n\r\n /**\r\n * Reads the world position and forward direction of an owner's currently indexed locator into the agent's scratch record.\r\n */\r\n #GetOwnerLocatorPosition(owner, data)\r\n {\r\n this.#ReadOwnerLocator(owner, data.locatorIndex, data.locatorTarget, data.locatorDirection);\r\n }\r\n\r\n static LocatorType = LocatorType;\r\n\r\n}\r\n"],"names":["Z_AXIS","vec3","fromValues","UP_AXIS","TARGET_POINT","create","AGENT_POSITION_WS","DESIRED_VELOCITY","INV_DIR","NO_FORCES","_BackAndForth","_identity","BackAndForth","CjsModel","e","_init_behaviorPriority","_init_extra_behaviorPriority","_init_enabled","_init_extra_enabled","_init_locatorType","_init_extra_locatorType","_init_locatorSet","_init_extra_locatorSet","_init_arrivedRadius","_init_extra_arrivedRadius","_init_distFromOrigin","_init_extra_distFromOrigin","_init_slowDownRadius","_init_extra_slowDownRadius","_init_backAndForthWeight","_init_extra_backAndForthWeight","_init_fxBehavior","_init_extra_fxBehavior","_init_target","_init_extra_target","_init_parent","_init_extra_parent","_init_secondsToTurn","_init_extra_secondsToTurn","_init_locatorSetName","_init_extra_locatorSetName","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","boolean","enum","list","float32","model","readwrite","string","carbon","method","impl","implemented","adapted","reason","behaviorPriority","enabled","locatorType","locatorSet","arrivedRadius","distFromOrigin","slowDownRadius","backAndForthWeight","fxBehavior","target","parent","secondsToTurn","locatorSetName","GetProcessPriority","GetBehaviorName","GetScratchMemorySize","InitializeScratch","locatorTarget","locatorDirection","locatorIndex","seek","deliver","arrived","timePassed","CalculateBehavior","agents","scratchData","deltaTime","group","system","_dronesInSearchRadius","GetBehaviorByName","worldTransform","GetWorldTransform","length","agent","data","LocatorType","LOCAL_LOCATORS","seekLocators","index","Math","floor","random","copy","position","transformQuat","direction","deliverLocators","PARENT_LOCATORS","GetParent","count","Number","GetLocatorCount","max","TARGET_LOCATORS","squaredLength","set","normalize","scale","add","transformMat4","subtract","distance","quat","rotationTo","rotation","playFX","fxStartTime","Date","now","acceleration","velocity","AddLocatorSet","EveLocatorSets","SetName","push","SetParent","#GetLocatorsForSet","setName","HasName","GetLocators","GetParentLocatorPosition","outPosition","outDirection","GetTargetLocatorPosition","#ReadOwnerLocator","owner","GetLocatorPositionFromSet","GetLocatorRotationFromSet","#GetOwnerLocatorPosition","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BackAndForth.js","sources":["../../../../../../src/trinity/eve/child/behaviors/BackAndForth.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/Behaviors/BackAndForth.h\r\n// trinity/trinity/Eve/SpaceObject/Children/Behaviors/BackAndForth.cpp\r\n// Hand-maintained from Carbon source, promoted out of generated intake.\r\nimport { carbon, impl, edit, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { LocatorType } from \"./enums.js\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { EveLocatorSets } from \"../../locator/EveLocatorSets.js\";\r\n\r\n// Module scratch for the per-agent loop (behavior updates run sequentially).\r\nconst Z_AXIS = vec3.fromValues(0, 0, 1);\r\nconst UP_AXIS = vec3.fromValues(0, 1, 0);\r\nconst TARGET_POINT = vec3.create();\r\nconst AGENT_POSITION_WS = vec3.create();\r\nconst DESIRED_VELOCITY = vec3.create();\r\nconst INV_DIR = vec3.create();\r\nconst NO_FORCES = [];\r\n\r\n/** A steering behaviour that shuttles each drone between seek and deliver locators, slowing on approach, snapping its facing, and triggering effects on arrival. */\r\n@type.define({ className: \"BackAndForth\", family: \"eve/child/behaviors\" })\r\nexport class BackAndForth extends CjsModel\r\n{\r\n\r\n /** m_priority (int32_t) [READWRITE, PERSIST, NOTIFY, ENUM] */\r\n @edit.notify\r\n @edit.persist\r\n @type.int32\r\n behaviorPriority = 0;\r\n\r\n /** m_enabled (bool) [READWRITE, PERSIST, NOTIFY, ENUM] */\r\n @edit.notify\r\n @edit.persist\r\n @type.boolean\r\n enabled = true;\r\n\r\n /** m_locatorType (LocatorType - enum LocatorType) [READWRITE, PERSIST, ENUM, NOTIFY] */\r\n @edit.notify\r\n @edit.persist\r\n @type.int32\r\n @type.enum(\"LocatorType\")\r\n locatorType = 0;\r\n\r\n /** m_locatorSets (PEveLocatorSetsVector) [READ, PERSIST] */\r\n @edit.persist\r\n @type.list(\"EveLocatorSets\")\r\n locatorSet = [];\r\n\r\n /** m_arrivedRadius (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n arrivedRadius = 50;\r\n\r\n /** m_distFromOrigin (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n distFromOrigin = 20;\r\n\r\n /** m_slowDownRadius (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n slowDownRadius = 200;\r\n\r\n /** m_backAndForthWeight (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n backAndForthWeight = 100;\r\n\r\n /** m_fxBehavior (IBehavior*) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.model(\"IBehavior\")\r\n fxBehavior = null;\r\n\r\n /** m_target (EveSpaceObject2*) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.model(\"EveSpaceObject2\")\r\n target = null;\r\n\r\n /** m_parent (EveSpaceObject2*) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.model(\"EveSpaceObject2\")\r\n parent = null;\r\n\r\n /** m_seconds (float) [READWRITE] */\r\n @edit.readwrite\r\n @type.float32\r\n secondsToTurn = 0.25;\r\n\r\n /** m_locatorSetName (BlueSharedString) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.string\r\n locatorSetName = \"damage\";\r\n\r\n // Debug arrival point (Carbon m_arrivalPoint).\r\n #arrivalPoint = vec3.create();\r\n\r\n /** Carbon BackAndForth::GetProcessPriority (cpp:31-34). */\r\n @carbon.method\r\n @impl.implemented\r\n GetProcessPriority()\r\n {\r\n return this.behaviorPriority;\r\n }\r\n\r\n /** Carbon BackAndForth::GetBehaviorName (cpp:36-39). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBehaviorName()\r\n {\r\n return \"BackAndForth\";\r\n }\r\n\r\n /** Per-agent scratch record count (Carbon sizeof(BackAndForthData)). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon returns a byte size; the JS port models scratch as one plain record per agent, so any non-zero value means 'has scratch'.\")\r\n GetScratchMemorySize()\r\n {\r\n return 1;\r\n }\r\n\r\n /** Fresh per-agent scratch record (Carbon BackAndForthData placement init). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon initializes caller-provided raw memory; the JS port returns the fresh record instead.\")\r\n InitializeScratch()\r\n {\r\n return {\r\n locatorTarget: vec3.create(),\r\n locatorDirection: vec3.create(),\r\n locatorIndex: -1,\r\n seek: true,\r\n deliver: false,\r\n arrived: true,\r\n timePassed: 0\r\n };\r\n }\r\n\r\n /**\r\n * Shuttles each agent between its seek/deliver (or parent/target) locators\r\n * with arrival slow-down, facing snap, and PlayFX triggering (Carbon\r\n * CalculateBehavior, cpp:51-194).\r\n * @param {Array} agents - DroneAgent records\r\n * @param {Array} scratchData - per-agent BackAndForthData records\r\n * @param {Number} deltaTime\r\n * @param {Object} group - owning BehaviorGroup\r\n * @param {Object} system - owning EveChildBehaviorSystem\r\n * @param {Array} _dronesInSearchRadius - unused\r\n * @returns {Array} empty (as Carbon)\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"TriRandInt maps to Math.random and Be::Time fx timestamps to Date.now seconds; the steering math is ported verbatim.\")\r\n CalculateBehavior(agents, scratchData, deltaTime, group, system, _dronesInSearchRadius)\r\n {\r\n if (!this.enabled)\r\n {\r\n return NO_FORCES;\r\n }\r\n\r\n if (this.fxBehavior === null)\r\n {\r\n this.fxBehavior = group.GetBehaviorByName(\"PlayFX\");\r\n }\r\n\r\n const worldTransform = system.GetWorldTransform();\r\n\r\n for (let c = 0; c < agents.length; c++)\r\n {\r\n const agent = agents[c];\r\n const data = scratchData?.[c];\r\n if (!data)\r\n {\r\n continue;\r\n }\r\n\r\n if (this.locatorType === BackAndForth.LocatorType.LOCAL_LOCATORS)\r\n {\r\n if (data.arrived)\r\n {\r\n if (data.seek)\r\n {\r\n const seekLocators = this.#GetLocatorsForSet(\"seek\");\r\n if (seekLocators !== null && seekLocators.length > 0)\r\n {\r\n const index = Math.floor(Math.random() * seekLocators.length);\r\n vec3.copy(data.locatorTarget, seekLocators[index].position);\r\n vec3.transformQuat(data.locatorDirection, UP_AXIS, seekLocators[index].direction);\r\n }\r\n }\r\n else if (data.deliver)\r\n {\r\n const deliverLocators = this.#GetLocatorsForSet(\"deliver\");\r\n if (deliverLocators !== null && deliverLocators.length > 0)\r\n {\r\n const index = Math.floor(Math.random() * deliverLocators.length);\r\n vec3.copy(data.locatorTarget, deliverLocators[index].position);\r\n vec3.transformQuat(data.locatorDirection, UP_AXIS, deliverLocators[index].direction);\r\n }\r\n }\r\n data.arrived = false;\r\n }\r\n }\r\n else if (this.locatorType === BackAndForth.LocatorType.PARENT_LOCATORS)\r\n {\r\n if (this.parent === null)\r\n {\r\n this.parent = group.GetParent();\r\n }\r\n\r\n if (data.arrived && this.parent)\r\n {\r\n // Pick a new locator to go to\r\n const count = Number(this.parent.GetLocatorCount?.(this.locatorSetName) ?? 0);\r\n data.locatorIndex = Math.floor(Math.random() * Math.max(count, 1));\r\n }\r\n\r\n this.#GetOwnerLocatorPosition(this.parent, data);\r\n data.arrived = false;\r\n }\r\n else if (this.locatorType === BackAndForth.LocatorType.TARGET_LOCATORS)\r\n {\r\n if (data.arrived && this.target)\r\n {\r\n // Pick a new locator to go to\r\n const count = Number(this.target.GetLocatorCount?.(this.locatorSetName) ?? 0);\r\n data.locatorIndex = Math.floor(Math.random() * Math.max(count, 1));\r\n }\r\n\r\n this.#GetOwnerLocatorPosition(this.target, data);\r\n data.arrived = false;\r\n }\r\n\r\n vec3.copy(agent.target, data.locatorTarget);\r\n\r\n // If the direction is (0,0,0) it points up, but then the slow-down\r\n // radius won't work\r\n if (vec3.squaredLength(data.locatorDirection) === 0)\r\n {\r\n vec3.set(data.locatorDirection, 0, 1, 0);\r\n }\r\n\r\n vec3.normalize(TARGET_POINT, data.locatorDirection);\r\n vec3.scale(TARGET_POINT, TARGET_POINT, this.distFromOrigin);\r\n vec3.add(TARGET_POINT, TARGET_POINT, data.locatorTarget);\r\n\r\n // For debugging\r\n vec3.copy(this.#arrivalPoint, TARGET_POINT);\r\n\r\n vec3.transformMat4(AGENT_POSITION_WS, agent.position, worldTransform);\r\n\r\n vec3.subtract(DESIRED_VELOCITY, TARGET_POINT, AGENT_POSITION_WS);\r\n const distance = vec3.length(DESIRED_VELOCITY);\r\n vec3.normalize(DESIRED_VELOCITY, DESIRED_VELOCITY);\r\n\r\n // If we are approaching the target\r\n if (distance < this.slowDownRadius)\r\n {\r\n // make the agent slow down before arriving at target\r\n vec3.scale(DESIRED_VELOCITY, DESIRED_VELOCITY, this.backAndForthWeight * (distance / this.slowDownRadius));\r\n\r\n // Set the rotation of the drone\r\n vec3.subtract(INV_DIR, data.locatorTarget, AGENT_POSITION_WS);\r\n vec3.normalize(INV_DIR, INV_DIR);\r\n if (vec3.squaredLength(INV_DIR) > 0)\r\n {\r\n quat.rotationTo(agent.rotation, Z_AXIS, INV_DIR);\r\n }\r\n data.timePassed = 0;\r\n\r\n // Start playing fx when slowing down\r\n if (!agent.playFX && this.fxBehavior !== null)\r\n {\r\n agent.fxStartTime = Date.now() / 1000;\r\n agent.playFX = true;\r\n }\r\n\r\n // If the agent has arrived at the target, switch targets\r\n if (distance < this.arrivedRadius)\r\n {\r\n const seek = data.seek;\r\n data.seek = data.deliver;\r\n data.deliver = seek;\r\n data.arrived = true;\r\n }\r\n }\r\n else\r\n {\r\n // Have the drone slowly start moving based on time passed\r\n data.timePassed += deltaTime;\r\n data.timePassed = Math.max(data.timePassed, this.secondsToTurn);\r\n vec3.scale(DESIRED_VELOCITY, DESIRED_VELOCITY, Math.max(data.timePassed, this.secondsToTurn) / this.secondsToTurn);\r\n }\r\n vec3.add(agent.acceleration, agent.acceleration, DESIRED_VELOCITY);\r\n vec3.subtract(agent.acceleration, agent.acceleration, agent.velocity);\r\n }\r\n\r\n return NO_FORCES;\r\n }\r\n\r\n /** Carbon method AddLocatorSet (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.implemented\r\n AddLocatorSet()\r\n {\r\n const seek = new EveLocatorSets();\r\n seek.SetName(\"seek\");\r\n const deliver = new EveLocatorSets();\r\n deliver.SetName(\"deliver\");\r\n this.locatorSet.push(seek, deliver);\r\n }\r\n\r\n /** Carbon BackAndForth::SetParent (cpp:348-354). */\r\n @carbon.method\r\n @impl.implemented\r\n SetParent(parent)\r\n {\r\n this.parent = parent ?? null;\r\n }\r\n\r\n // Carbon GetLocatorsForSet (cpp:322-332): first locator set with the name.\r\n /**\r\n * The locators of the first locator set matching a name, or null when none matches.\r\n */\r\n #GetLocatorsForSet(setName)\r\n {\r\n for (const set of this.locatorSet)\r\n {\r\n if (set?.HasName?.(setName))\r\n {\r\n return set.GetLocators();\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Carbon GetParentLocatorPosition (BackAndForth.cpp:356-363): null-guard\r\n * the parent, then the world position and direction of its indexed locator\r\n * from the behaviour's named set, into the caller's two out-vectors.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetParentLocatorPosition(locatorIndex, outPosition, outDirection)\r\n {\r\n this.#ReadOwnerLocator(this.parent, locatorIndex, outPosition, outDirection);\r\n }\r\n\r\n /** Carbon GetTargetLocatorPosition (cpp:365-372): the target twin. */\r\n @carbon.method\r\n @impl.implemented\r\n GetTargetLocatorPosition(locatorIndex, outPosition, outDirection)\r\n {\r\n this.#ReadOwnerLocator(this.target, locatorIndex, outPosition, outDirection);\r\n }\r\n\r\n /** The shared body of the pair above; the owner duck is the runtime's\r\n * locator-set surface (GetLocatorPositionFromSet/GetLocatorRotationFromSet). */\r\n #ReadOwnerLocator(owner, locatorIndex, outPosition, outDirection)\r\n {\r\n if (owner)\r\n {\r\n owner.GetLocatorPositionFromSet?.(locatorIndex, true, this.locatorSetName, outPosition);\r\n owner.GetLocatorRotationFromSet?.(locatorIndex, true, this.locatorSetName, outDirection);\r\n }\r\n }\r\n\r\n /**\r\n * Reads the world position and forward direction of an owner's currently indexed locator into the agent's scratch record.\r\n */\r\n #GetOwnerLocatorPosition(owner, data)\r\n {\r\n this.#ReadOwnerLocator(owner, data.locatorIndex, data.locatorTarget, data.locatorDirection);\r\n }\r\n\r\n static LocatorType = LocatorType;\r\n\r\n}\r\n"],"names":["Z_AXIS","vec3","fromValues","UP_AXIS","TARGET_POINT","create","AGENT_POSITION_WS","DESIRED_VELOCITY","INV_DIR","NO_FORCES","_BackAndForth","_identity","BackAndForth","CjsModel","e","_init_behaviorPriority","_init_extra_behaviorPriority","_init_enabled","_init_extra_enabled","_init_locatorType","_init_extra_locatorType","_init_locatorSet","_init_extra_locatorSet","_init_arrivedRadius","_init_extra_arrivedRadius","_init_distFromOrigin","_init_extra_distFromOrigin","_init_slowDownRadius","_init_extra_slowDownRadius","_init_backAndForthWeight","_init_extra_backAndForthWeight","_init_fxBehavior","_init_extra_fxBehavior","_init_target","_init_extra_target","_init_parent","_init_extra_parent","_init_secondsToTurn","_init_extra_secondsToTurn","_init_locatorSetName","_init_extra_locatorSetName","_initProto","c","_initClass","_applyDecs","type","define","className","family","edit","notify","persist","int32","boolean","enum","list","float32","model","readwrite","string","carbon","method","impl","implemented","adapted","reason","behaviorPriority","enabled","locatorType","locatorSet","arrivedRadius","distFromOrigin","slowDownRadius","backAndForthWeight","fxBehavior","target","parent","secondsToTurn","locatorSetName","GetProcessPriority","GetBehaviorName","GetScratchMemorySize","InitializeScratch","locatorTarget","locatorDirection","locatorIndex","seek","deliver","arrived","timePassed","CalculateBehavior","agents","scratchData","deltaTime","group","system","_dronesInSearchRadius","GetBehaviorByName","worldTransform","GetWorldTransform","length","agent","data","LocatorType","LOCAL_LOCATORS","seekLocators","index","Math","floor","random","copy","position","transformQuat","direction","deliverLocators","PARENT_LOCATORS","GetParent","count","Number","GetLocatorCount","max","TARGET_LOCATORS","squaredLength","set","normalize","scale","add","transformMat4","subtract","distance","quat","rotationTo","rotation","playFX","fxStartTime","Date","now","acceleration","velocity","AddLocatorSet","EveLocatorSets","SetName","push","SetParent","#GetLocatorsForSet","setName","HasName","GetLocators","GetParentLocatorPosition","outPosition","outDirection","GetTargetLocatorPosition","#ReadOwnerLocator","owner","GetLocatorPositionFromSet","GetLocatorRotationFromSet","#GetOwnerLocatorPosition","constructor"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import {
|
|
2
|
+
import { edit, type, carbon, impl } from '#schema';
|
|
3
3
|
import { EveEntity as _EveEntity } from '../../EveEntity.js';
|
|
4
4
|
import { mat4 } from '#math/mat4';
|
|
5
5
|
import { quat } from '#math/quat';
|
|
@@ -40,7 +40,7 @@ class BehaviorGroup extends _EveEntity {
|
|
|
40
40
|
} = _applyDecs2311(this, [type.define({
|
|
41
41
|
className: "BehaviorGroup",
|
|
42
42
|
family: "eve/child/behaviors"
|
|
43
|
-
})], [[[
|
|
43
|
+
})], [[[edit, edit.persist, type, type.boolean], 16, "display"], [[edit, edit.persist, type, type.float32], 16, "maxVelocity"], [[edit, edit.persist, type, type.float32], 16, "scale"], [[edit, edit.persist, type, type.float32], 16, "blendScreenSizeMax"], [[edit, edit.persist, type, type.float32], 16, "blendScreenSizeMin"], [[edit, edit.read, type, type.float32], 16, "currentScreenSize"], [[edit, edit.persist, type, type.float32], 16, "renderThreshold"], [[edit, edit.readwrite, type, type.float32], 16, "debugIntensity"], [[edit, edit.readwrite, type, type.float32], 16, "debugLodLevel"], [[edit, edit.read, type, type.int32], 16, "actualCount"], [[edit, edit.persist, type, type.int32], 16, "count"], [[edit, edit.notify, edit, edit.persist, void 0, type.model("BehaviorGroupBooster")], 16, "boosters"], [[edit, edit.notify, edit, edit.persist, void 0, type.model("Tr2Mesh")], 16, "mesh"], [[edit, edit.persist, type, type.string], 16, "name"], [[edit, edit.persist, type, type.float32], 16, "boundingSphereRadius"], [[edit, edit.readwrite, type, type.boolean], 16, "debugMode"], [[edit, edit.persist, type, type.boolean], 16, "update"], [[edit, edit.persist, void 0, type.list("IBehavior")], 16, "behaviors"], [[edit, edit.persist, type, type.vec3], 16, "spawnPosition"], [[type, type.boolean], 16, "collectForces"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Vertex-declaration creation is a GPU seam; scratch sizing, booster flare-count sync, and the PlayFX cache are ported.")], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Blue Var matching maps to the repo's OnModified duck; a mesh change refreshes the (stubbed) vertex declaration and a booster change re-syncs the flare count.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "InitializeGeometryResource"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetVertexFunctionReferance"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetSize"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "CreateAgentTree"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBehaviorByName"], [[carbon, carbon.method, impl, impl.implemented], 18, "SortBehaviorIndexes"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMesh"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMaxVelocity"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetGroupIndexIndicator"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetGroupIndexIndicator"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddAgent"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddAgents"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Math.random replaces Carbon's TriRandInt when selecting the removed agent.")], 18, "RemoveAgent"], [[carbon, carbon.method, impl, impl.implemented], 18, "RemoveSpecificAgent"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateAgents"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Frustum ducks take a packed vec4 sphere per repo convention; a missing frustum treats agents as visible at infinite pixel size.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.implemented], 18, "IsGroupVisible"], [[carbon, carbon.method, impl, impl.implemented], 18, "AllTheSame"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "GetShipInfoForBuffer"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "GetBoosterInfoForBuffer"], [[carbon, carbon.method, impl, impl.noop], 18, "CreateVertexDeclaration"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetParent"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphereRadius"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetKDTree"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBooster"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetPlayFXBehavior"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLights"], [[carbon, carbon.method, impl, impl.noop], 18, "AddLight"], [[carbon, carbon.method, impl, impl.noop], 18, "ClearLights"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "UnRegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterWithQuadRenderer"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddQuadsToQuadRenderer"], [[impl, impl.adapted], 18, "GetAgents"], [[impl, impl.adapted], 18, "GetForces"]], 0, void 0, _EveEntity));
|
|
44
44
|
}
|
|
45
45
|
constructor(...args) {
|
|
46
46
|
super(...args);
|
|
@@ -162,10 +162,10 @@ class BehaviorGroup extends _EveEntity {
|
|
|
162
162
|
/** Carbon BehaviorGroup::OnModified (cpp:59-71); the value argument follows
|
|
163
163
|
* the repo's OnModified duck (field name or field value). */
|
|
164
164
|
OnModified(value = null) {
|
|
165
|
-
if (value === "mesh"
|
|
165
|
+
if (value === "mesh") {
|
|
166
166
|
this.CreateVertexDeclaration();
|
|
167
167
|
}
|
|
168
|
-
if (
|
|
168
|
+
if (value === "boosters" && this.boosters !== null) {
|
|
169
169
|
this.boosters.RebuildFlareBuffer?.(this.actualCount);
|
|
170
170
|
}
|
|
171
171
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BehaviorGroup.js","sources":["../../../../../../src/trinity/eve/child/behaviors/BehaviorGroup.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/Behaviors/BehaviorGroup.h\r\n// trinity/trinity/Eve/SpaceObject/Children/Behaviors/BehaviorGroup.cpp\r\n// Hand-maintained from Carbon source, promoted out of generated intake.\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { EveEntity } from \"../../EveEntity.js\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\r\nimport { ProcessPriority } from \"./enums.js\";\r\nimport { EveKDdroneManagementTree } from \"../../../eve/child/behaviors/EveKDdroneManagementTree.js\";\r\nimport { PlayFX } from \"./PlayFX.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\n\r\n// Module scratch for the per-agent integration and visibility loops (child\r\n// updates run sequentially; non-reentrant by design).\r\nconst Z_AXIS = vec3.fromValues(0, 0, 1);\r\nconst INTEREST_POINT = vec3.create();\r\nconst ACTUAL_FACING = vec3.create();\r\nconst FACING_NORMALIZED = vec3.create();\r\nconst AGENT_SPHERE = vec4.create();\r\nconst EMPTY_SEARCH_TREE = [];\r\n\r\n// Carbon ClampLength: in-place clamp of a vec3 to a maximum length.\r\nfunction ClampLength(value, maxLength)\r\n{\r\n const lengthSq = vec3.squaredLength(value);\r\n if (lengthSq > maxLength * maxLength && lengthSq > 0)\r\n {\r\n vec3.scale(value, value, maxLength / Math.sqrt(lengthSq));\r\n }\r\n return value;\r\n}\r\n\r\n/** Owns a group of drone agents, running its priority-ordered behaviours each frame to integrate their acceleration, velocity, orientation and position, and managing their count, visibility, lighting and rendering. */\r\n@type.define({ className: \"BehaviorGroup\", family: \"eve/child/behaviors\" })\r\nexport class BehaviorGroup extends EveEntity\r\n{\r\n\r\n #agents = [];\r\n\r\n // Per-behavior scratch: #scratchData[behaviorIndex] is an array of plain\r\n // per-agent records (behavior.InitializeScratch()) or null when the\r\n // behavior reports no scratch (Carbon m_scratchData raw buffers).\r\n #scratchData = [];\r\n\r\n // Behavior indexes ordered by ProcessPriority (Carbon m_sortedBehaviorIndexes).\r\n #sortedBehaviorIndexes = [];\r\n\r\n // Spatial partitioning tree (Carbon m_tree).\r\n #tree = null;\r\n\r\n // Carbon m_updatedOnce/m_createAgentTree runtime frame state.\r\n #updatedOnce = false;\r\n\r\n #createAgentTree = false;\r\n\r\n // Cached PlayFX behavior (Carbon m_playFXBehavior).\r\n #playFXBehavior = null;\r\n\r\n // Owner-provided buffer resize callback (Carbon m_changeBufferVertexCount).\r\n #changeBufferVertexCount = null;\r\n\r\n // Debug force collection (Carbon m_forces; pairs of position/force vec3s).\r\n #forces = [];\r\n\r\n // Reused per-frame search radii (Carbon local `ranges`).\r\n #ranges = [];\r\n\r\n // agentIndex -> vec4(position.xyz, lightScale) (Carbon m_lightInfo);\r\n // filled by the GPU booster-buffer path, consumed by GetLights.\r\n #lightInfo = new Map();\r\n\r\n // World transform captured by UpdateVisibility (Carbon m_parentTransform).\r\n #parentTransform = mat4.create();\r\n\r\n // Owning space object (Carbon m_parent), captured in UpdateSyncronous.\r\n #parent = null;\r\n\r\n // Base-instance indicator assigned by the behavior system (Carbon m_groupIndex).\r\n #groupIndex = 0;\r\n\r\n /** m_display (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n /** m_maxVelocity (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n maxVelocity = 100;\r\n\r\n /** m_scale (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n scale = 1;\r\n\r\n /** m_blendScreenSizeMax (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n blendScreenSizeMax = 15;\r\n\r\n /** m_blendScreenSizeMin (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n blendScreenSizeMin = 5;\r\n\r\n /** m_currentScreenSize (float) [READ] */\r\n @io.read\r\n @type.float32\r\n currentScreenSize = 0;\r\n\r\n /** m_renderThreshold (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n renderThreshold = 1;\r\n\r\n /** m_debugIntensity (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n debugIntensity = 0;\r\n\r\n /** m_debugLodLevel (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n debugLodLevel = 0;\r\n\r\n /** m_actualCount (int32_t) [READ] */\r\n @io.read\r\n @type.int32\r\n actualCount = 0;\r\n\r\n /** m_count (int32_t) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.int32\r\n count = 0;\r\n\r\n /** m_booster (BehaviorGroupBoosterPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.model(\"BehaviorGroupBooster\")\r\n boosters = null;\r\n\r\n /** m_mesh (Tr2MeshPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.model(\"Tr2Mesh\")\r\n mesh = null;\r\n\r\n /** m_behaviorGroupName (BlueSharedString) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_boundingSphereRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n boundingSphereRadius = 5;\r\n\r\n /** m_debugMode (bool) [READWRITE] */\r\n @io.readwrite\r\n @type.boolean\r\n debugMode = false;\r\n\r\n /** m_update (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n update = true;\r\n\r\n /** m_behaviors (PIBehaviorVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IBehavior\")\r\n behaviors = [];\r\n\r\n /** m_spawnPosition (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n spawnPosition = vec3.create();\r\n\r\n /** m_collectForces (bool) - debug toggle read by the behaviors. */\r\n @type.boolean\r\n collectForces = false;\r\n\r\n /** Carbon BehaviorGroup::Initialize (cpp:45-57). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Vertex-declaration creation is a GPU seam; scratch sizing, booster flare-count sync, and the PlayFX cache are ported.\")\r\n Initialize()\r\n {\r\n this.#EnsureScratchArrays();\r\n this.CreateVertexDeclaration();\r\n\r\n if (this.boosters)\r\n {\r\n this.boosters.RebuildFlareBuffer?.(this.count);\r\n }\r\n\r\n this.SetPlayFXBehavior();\r\n return true;\r\n }\r\n\r\n /** Carbon BehaviorGroup::OnModified (cpp:59-71); the value argument follows\r\n * the repo's OnModified duck (field name or field value). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Blue Var matching maps to the repo's OnModified duck; a mesh change refreshes the (stubbed) vertex declaration and a booster change re-syncs the flare count.\")\r\n OnModified(value = null)\r\n {\r\n if (value === \"mesh\" || (value !== null && value === this.mesh))\r\n {\r\n this.CreateVertexDeclaration();\r\n }\r\n if ((value === \"boosters\" || (value !== null && value === this.boosters)) && this.boosters !== null)\r\n {\r\n this.boosters.RebuildFlareBuffer?.(this.actualCount);\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Regenerates the agents from scratch: clears them, re-sorts the behavior\r\n * indexes, and re-adds m_count agents (Carbon InitializeGeometryResource,\r\n * cpp:126-140). Behaviors like SpawnDrones use this as a full reset.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n InitializeGeometryResource()\r\n {\r\n this.#agents.length = 0;\r\n for (let i = 0; i < this.#scratchData.length; i++)\r\n {\r\n if (this.#scratchData[i])\r\n {\r\n this.#scratchData[i].length = 0;\r\n }\r\n }\r\n\r\n this.SortBehaviorIndexes();\r\n\r\n const t = this.count;\r\n this.actualCount = 0;\r\n this.SetCount(t);\r\n }\r\n\r\n /** Carbon BehaviorGroup::SetVertexFunctionReferance (cpp:142-145). */\r\n @carbon.method\r\n @impl.implemented\r\n SetVertexFunctionReferance(callback)\r\n {\r\n this.#changeBufferVertexCount = typeof callback === \"function\" ? callback : null;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetSize (cpp:151-154). */\r\n @carbon.method\r\n @impl.implemented\r\n GetSize()\r\n {\r\n return this.#agents.length;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetCount (cpp:160-163). */\r\n @carbon.method\r\n @impl.implemented\r\n GetCount()\r\n {\r\n return this.actualCount;\r\n }\r\n\r\n /** Carbon method CreateAgentTree (cpp:169-177). */\r\n @carbon.method\r\n @impl.implemented\r\n CreateAgentTree()\r\n {\r\n this.#tree = new EveKDdroneManagementTree();\r\n this.#tree.CreateTree(this.#agents, this.behaviors.length);\r\n return this.#tree;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetBehaviorByName (cpp:187-197). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBehaviorByName(name)\r\n {\r\n const target = String(name ?? \"\");\r\n for (const behavior of this.behaviors)\r\n {\r\n if (target === (behavior?.GetBehaviorName?.() ?? \"unnamed\"))\r\n {\r\n return behavior;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /** Carbon BehaviorGroup::SortBehaviorIndexes (cpp:206-221). */\r\n @carbon.method\r\n @impl.implemented\r\n SortBehaviorIndexes()\r\n {\r\n this.#sortedBehaviorIndexes.length = 0;\r\n for (let priority = 0; priority < ProcessPriority.COUNT; priority++)\r\n {\r\n for (let index = 0; index < this.behaviors.length; index++)\r\n {\r\n if ((this.behaviors[index]?.GetProcessPriority?.() ?? ProcessPriority.LEAST_PRIORITY) === priority)\r\n {\r\n this.#sortedBehaviorIndexes.push(index);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetMesh (cpp:227-230). */\r\n @carbon.method\r\n @impl.implemented\r\n GetMesh()\r\n {\r\n return this.mesh;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetMaxVelocity (cpp:236-239). */\r\n @carbon.method\r\n @impl.implemented\r\n GetMaxVelocity()\r\n {\r\n return this.maxVelocity;\r\n }\r\n\r\n /** Carbon BehaviorGroup::SetGroupIndexIndicator (cpp:254-257). */\r\n @carbon.method\r\n @impl.implemented\r\n SetGroupIndexIndicator(index)\r\n {\r\n this.#groupIndex = Number(index) | 0;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetGroupIndexIndicator (cpp:263-266). */\r\n @carbon.method\r\n @impl.implemented\r\n GetGroupIndexIndicator()\r\n {\r\n return this.#groupIndex;\r\n }\r\n\r\n /** Carbon method AddAgent (cpp:272-278). */\r\n @carbon.method\r\n @impl.implemented\r\n AddAgent()\r\n {\r\n this.#AddAgentPrivate();\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /**\r\n * Adds one agent per position and initializes the newcomers' scratch\r\n * records (Carbon AddAgents, cpp:280-310).\r\n * @param {Array<Float32Array>} positions\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddAgents(positions)\r\n {\r\n if (!Array.isArray(positions))\r\n {\r\n return;\r\n }\r\n\r\n const firstNewIndex = this.#agents.length;\r\n for (const position of positions)\r\n {\r\n const agent = this.#createAgent();\r\n vec3.copy(agent.position, position);\r\n this.#agents.push(agent);\r\n }\r\n\r\n this.#EnsureScratchArrays();\r\n for (let agentIndex = firstNewIndex; agentIndex < this.#agents.length; agentIndex++)\r\n {\r\n this.#InitializeScratchForAgent(agentIndex);\r\n }\r\n\r\n this.actualCount += positions.length;\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /** Carbon method RemoveAgent (cpp:415-426). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Math.random replaces Carbon's TriRandInt when selecting the removed agent.\")\r\n RemoveAgent()\r\n {\r\n if (this.#agents.length === 0)\r\n {\r\n return;\r\n }\r\n const index = Math.floor(Math.random() * this.#agents.length);\r\n this.RemoveSpecificAgent(index);\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /**\r\n * Swap-with-last removal that keeps every behavior's per-agent scratch\r\n * record aligned (Carbon RemoveSpecificAgent, cpp:432-452).\r\n * @param {Number} index\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RemoveSpecificAgent(index)\r\n {\r\n const lastIndex = this.#agents.length - 1;\r\n if (index < 0 || index > lastIndex)\r\n {\r\n return;\r\n }\r\n\r\n this.#agents[index] = this.#agents[lastIndex];\r\n this.#agents.pop();\r\n\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const records = this.#scratchData[i];\r\n if (!records)\r\n {\r\n continue;\r\n }\r\n records[index] = records[lastIndex];\r\n records.length = this.#agents.length;\r\n }\r\n\r\n this.actualCount--;\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /** Carbon method SetCount (cpp:350-368). */\r\n @carbon.method\r\n @impl.implemented\r\n SetCount(count)\r\n {\r\n const value = Number(count);\r\n const desired = Number.isFinite(value) ? Math.trunc(value) : -1;\r\n if (desired === this.actualCount || desired < 0)\r\n {\r\n return;\r\n }\r\n\r\n if (this.actualCount < desired)\r\n {\r\n this.#AddAgentsByCount(desired);\r\n }\r\n else\r\n {\r\n this.#RemoveAgentsByCount(desired);\r\n }\r\n\r\n // Carbon updates only m_actualCount here; m_count stays the authored\r\n // spawn count that InitializeGeometryResource restores.\r\n this.actualCount = desired;\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /**\r\n * Runs the priority-sorted behaviors against the shared range query, then\r\n * integrates every agent's acceleration, velocity, facing, and position\r\n * (Carbon UpdateAgents, cpp:521-626).\r\n * @param {Number} dt - delta time in seconds\r\n * @param {Object} system - owning EveChildBehaviorSystem\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAgents(dt, system)\r\n {\r\n // make sure the update isn't too big when e.g. a player resizes his window\r\n const deltaTime = Math.min(Math.max(Number(dt) || 0, 0), 0.1);\r\n\r\n // JS has no Blue list notify: keep the priority order and scratch shells\r\n // in sync with the behavior list before the frame body runs (Carbon's\r\n // OnListModified seam).\r\n if (this.#sortedBehaviorIndexes.length !== this.behaviors.length)\r\n {\r\n this.SortBehaviorIndexes();\r\n }\r\n this.#EnsureScratchArrays();\r\n this.#SyncScratchRecords();\r\n\r\n if (this.#updatedOnce)\r\n {\r\n if (!this.display || !this.update)\r\n {\r\n this.#tree = null;\r\n return;\r\n }\r\n if (this.#agents.length === 0)\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const index = this.#sortedBehaviorIndexes[i];\r\n this.behaviors[index]?.CalculateBehavior?.(this.#agents, this.#scratchData[index], deltaTime, this, system, EMPTY_SEARCH_TREE);\r\n }\r\n return;\r\n }\r\n }\r\n if (this.#tree === null)\r\n {\r\n this.CreateAgentTree();\r\n }\r\n\r\n const ranges = this.#ranges;\r\n ranges.length = 0;\r\n const boundingRadius = this.boundingSphereRadius * this.scale;\r\n for (const behavior of this.behaviors)\r\n {\r\n const searchRadius = behavior?.GetBehaviorSearchRadius?.() ?? -1;\r\n ranges.push(searchRadius === -1 ? -1 : searchRadius + boundingRadius);\r\n }\r\n\r\n const dronesInRange = this.#tree.FindDronesInRange(this.#agents, ranges, boundingRadius);\r\n\r\n // Calculate the behaviors\r\n if (this.collectForces)\r\n {\r\n this.#forces.length = 0;\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const index = this.#sortedBehaviorIndexes[i];\r\n const forces = this.behaviors[index]?.CalculateBehavior?.(this.#agents, this.#scratchData[index], deltaTime, this, system, dronesInRange[index] ?? EMPTY_SEARCH_TREE);\r\n if (Array.isArray(forces))\r\n {\r\n for (const force of forces)\r\n {\r\n this.#forces.push(force);\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const index = this.#sortedBehaviorIndexes[i];\r\n this.behaviors[index]?.CalculateBehavior?.(this.#agents, this.#scratchData[index], deltaTime, this, system, dronesInRange[index] ?? EMPTY_SEARCH_TREE);\r\n }\r\n }\r\n\r\n // Move the agents based on the behaviors\r\n const maxVelocitySq = Math.max(1, this.maxVelocity * this.maxVelocity);\r\n for (const agent of this.#agents)\r\n {\r\n agent.lifetime += deltaTime;\r\n\r\n vec3.scaleAndAdd(agent.velocity, agent.velocity, agent.acceleration, deltaTime);\r\n\r\n vec3.transformQuat(INTEREST_POINT, Z_AXIS, agent.rotation);\r\n vec3.lerp(ACTUAL_FACING, INTEREST_POINT, agent.velocity, vec3.squaredLength(agent.velocity) / maxVelocitySq);\r\n\r\n // Carbon TriQuaternionRotationArc(zAxis -> actualFacingDir); rotationTo\r\n // needs unit vectors, and a zero facing keeps the previous rotation.\r\n vec3.normalize(FACING_NORMALIZED, ACTUAL_FACING);\r\n if (vec3.squaredLength(FACING_NORMALIZED) > 0)\r\n {\r\n quat.rotationTo(agent.rotation, Z_AXIS, FACING_NORMALIZED);\r\n }\r\n vec3.copy(agent.targetDirection, ACTUAL_FACING);\r\n\r\n ClampLength(agent.velocity, this.maxVelocity);\r\n vec3.scaleAndAdd(agent.position, agent.position, agent.velocity, deltaTime);\r\n vec3.set(agent.acceleration, 0, 0, 0);\r\n }\r\n\r\n this.#tree.UpdateTree(deltaTime);\r\n\r\n // we always want to update the behaviors at least once, otherwise\r\n // behaviors like SpawnDrones won't get to spawn the drones\r\n this.#updatedOnce = true;\r\n }\r\n\r\n /**\r\n * Per-agent frustum visibility and mesh/sprite crossfade (Carbon\r\n * UpdateVisibility, cpp:637-677).\r\n * @param {Object} updateContext - frame context (frustum ducks)\r\n * @param {Float32Array} worldTransform - owning system's world transform\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Frustum ducks take a packed vec4 sphere per repo convention; a missing frustum treats agents as visible at infinite pixel size.\")\r\n UpdateVisibility(updateContext, worldTransform)\r\n {\r\n this.currentScreenSize = 0;\r\n let worldRadius = 1;\r\n\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n const boundingRadius = this.boundingSphereRadius * this.scale;\r\n const blendModifier = this.#GetBlendModifier();\r\n\r\n for (const agent of this.#agents)\r\n {\r\n vec3.transformMat4(AGENT_SPHERE, agent.position, worldTransform);\r\n AGENT_SPHERE[3] = boundingRadius;\r\n if (frustum?.IsSphereVisible(AGENT_SPHERE) !== false)\r\n {\r\n const pixelSize = Number(frustum?.GetPixelSizeAccross?.(AGENT_SPHERE) ?? Infinity);\r\n agent.screenSize = pixelSize;\r\n this.currentScreenSize = Math.max(this.currentScreenSize, pixelSize);\r\n worldRadius = Math.max(worldRadius, boundingRadius);\r\n if (pixelSize >= this.blendScreenSizeMax)\r\n {\r\n agent.xfade = 0; // Render as mesh\r\n }\r\n else if (pixelSize <= this.blendScreenSizeMin)\r\n {\r\n agent.xfade = 1; // Render as sprite\r\n }\r\n else\r\n {\r\n agent.xfade = 1 - (pixelSize - this.blendScreenSizeMin) * blendModifier;\r\n }\r\n agent.isVisible = agent.screenSize >= this.renderThreshold;\r\n }\r\n else\r\n {\r\n agent.isVisible = false;\r\n }\r\n }\r\n this.mesh?.UseWithScreenSize?.(this.currentScreenSize, worldRadius);\r\n\r\n mat4.copy(this.#parentTransform, worldTransform);\r\n }\r\n\r\n /** Carbon BehaviorGroup::IsGroupVisible (cpp:683-686). */\r\n @carbon.method\r\n @impl.implemented\r\n IsGroupVisible()\r\n {\r\n return this.currentScreenSize >= this.renderThreshold;\r\n }\r\n\r\n /**\r\n * 1 if every agent lodded out to a sprite, 0 if every agent is a mesh,\r\n * -1 when mixed or empty (Carbon AllTheSame, cpp:397-409).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AllTheSame()\r\n {\r\n let same = -1;\r\n for (const agent of this.#agents)\r\n {\r\n if (same === -1)\r\n {\r\n same = agent.xfade;\r\n }\r\n if (same !== agent.xfade)\r\n {\r\n return -1;\r\n }\r\n }\r\n return same;\r\n }\r\n\r\n /** Carbon method GetShipInfoForBuffer (cpp:692-742) - GPU instance-buffer fill. */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetShipInfoForBuffer(..._args)\r\n {\r\n throw new Error(\"BehaviorGroup.GetShipInfoForBuffer is not implemented in CarbonEngineJS (GPU instance-buffer fill).\");\r\n }\r\n\r\n /** Carbon method GetBoosterInfoForBuffer (cpp:748-821) - GPU instance-buffer fill. */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetBoosterInfoForBuffer(..._args)\r\n {\r\n throw new Error(\"BehaviorGroup.GetBoosterInfoForBuffer is not implemented in CarbonEngineJS (GPU instance-buffer fill).\");\r\n }\r\n\r\n /** Carbon method CreateVertexDeclaration (cpp:828-865) - renderer vertex\r\n * declaration bookkeeping; safe frame-loop no-op in JS. */\r\n @carbon.method\r\n @impl.noop\r\n CreateVertexDeclaration()\r\n {\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetRenderables (cpp:871-877): PlayFX effects only. */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(renderables = [])\r\n {\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.GetRenderables(renderables);\r\n }\r\n return renderables;\r\n }\r\n\r\n /** Carbon BehaviorGroup::UpdateAsyncronous (cpp:883-894): PlayFX fan-out. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAsyncronous(updateContext)\r\n {\r\n if (!this.update)\r\n {\r\n return;\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.UpdateAsyncronous(updateContext, this.#parentTransform);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::UpdateSyncronous (cpp:901-925): deferred tree\r\n * rebuild, PlayFX sync update, and parent capture. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSyncronous(updateContext, params)\r\n {\r\n if (!this.update)\r\n {\r\n return;\r\n }\r\n if (this.#createAgentTree === true)\r\n {\r\n this.CreateAgentTree();\r\n this.#createAgentTree = false;\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.UpdateSyncronous(updateContext);\r\n }\r\n\r\n if (this.#parent === null && params?.spaceObjectParent)\r\n {\r\n this.#parent = params.spaceObjectParent;\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetParent (cpp:927-930). */\r\n @carbon.method\r\n @impl.implemented\r\n GetParent()\r\n {\r\n return this.#parent;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetBoundingSphereRadius (cpp:953-956). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphereRadius()\r\n {\r\n return this.boundingSphereRadius * this.scale;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetKDTree (cpp:958-961). */\r\n @carbon.method\r\n @impl.implemented\r\n GetKDTree()\r\n {\r\n return this.#tree;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetBooster (cpp:963-966). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBooster()\r\n {\r\n return this.boosters;\r\n }\r\n\r\n /** Carbon BehaviorGroup::SetPlayFXBehavior (cpp:968-988): caches the PlayFX\r\n * behavior and swaps its component registration. The instanceof gate is\r\n * Carbon's dynamic_cast<PlayFX*> (cpp:973): the behaviors list is typed\r\n * IBehavior and resolved by string name, so a mis-named behavior of another\r\n * class must never land in the PlayFX slot. */\r\n @carbon.method\r\n @impl.implemented\r\n SetPlayFXBehavior()\r\n {\r\n const behavior = this.GetBehaviorByName(\"PlayFX\");\r\n if (behavior instanceof PlayFX)\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.#playFXBehavior)\r\n {\r\n this.#playFXBehavior.UnRegister?.(registry);\r\n }\r\n this.#playFXBehavior = behavior;\r\n if (registry)\r\n {\r\n behavior.Register?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Registers the booster light records with the duck-typed light manager\r\n * (Carbon GetLights, cpp:990-1001). The #lightInfo map is populated by the\r\n * booster instance-buffer fill, which is a GPU seam - until that path runs\r\n * the map stays empty and no lights register.\r\n * @param {Object} lightManager\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLights(lightManager)\r\n {\r\n if (this.boosters && this.boosters.GetDisplay?.())\r\n {\r\n for (const [agentIndex, info] of this.#lightInfo)\r\n {\r\n this.boosters.AddLight(lightManager, info, info[3], agentIndex, this.#parentTransform);\r\n }\r\n }\r\n }\r\n\r\n /** ITr2LightOwner::AddLight - intentionally empty in Carbon (h:116). */\r\n @carbon.method\r\n @impl.noop\r\n AddLight(_light)\r\n {\r\n }\r\n\r\n /** ITr2LightOwner::ClearLights - intentionally empty in Carbon (h:117). */\r\n @carbon.method\r\n @impl.noop\r\n ClearLights()\r\n {\r\n }\r\n\r\n /** Carbon BehaviorGroup::RegisterComponents (cpp:1003-1015): unconditional\r\n * LightOwner (Carbon's verbatim \"LightOwner\" component name,\r\n * Lights/ITr2LightOwner.h:18), then forwards the PlayFX behavior. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n this.#playFXBehavior?.Register?.(registry);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::UnRegisterComponents (cpp:1017-1027). */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n this.#playFXBehavior?.UnRegister?.(registry);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::RegisterWithQuadRenderer (cpp:1029-1040): CPU\r\n * fan-out to the booster and PlayFX quad owners. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterWithQuadRenderer(quadRenderer)\r\n {\r\n if (this.boosters)\r\n {\r\n this.boosters.RegisterWithQuadRenderer?.(quadRenderer);\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.RegisterWithQuadRenderer?.(quadRenderer);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::AddQuadsToQuadRenderer (cpp:1043-1059): CPU\r\n * fan-out, gated on display and group visibility. */\r\n @carbon.method\r\n @impl.implemented\r\n AddQuadsToQuadRenderer(frustum, quadRenderer)\r\n {\r\n if (this.display && this.IsGroupVisible())\r\n {\r\n if (this.boosters && this.boosters.GetDisplay?.())\r\n {\r\n this.boosters.AddQuadsToQuadRenderer?.(frustum, quadRenderer);\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.AddQuadsToQuadRenderer?.(frustum, quadRenderer);\r\n }\r\n }\r\n }\r\n\r\n /** Returns the portable DroneAgent records in stable instance order. */\r\n @impl.adapted\r\n GetAgents()\r\n {\r\n return this.#agents;\r\n }\r\n\r\n /** Returns the collected debug force pairs (Carbon m_forces). */\r\n @impl.adapted\r\n GetForces()\r\n {\r\n return this.#forces;\r\n }\r\n\r\n // Carbon GetBlendModifier (cpp:628-631).\r\n /**\r\n * The reciprocal of the mesh-to-sprite blend screen-size range, used to interpolate an agent's crossfade.\r\n */\r\n #GetBlendModifier()\r\n {\r\n return 1 / Math.max(0.0001, this.blendScreenSizeMax - this.blendScreenSizeMin);\r\n }\r\n\r\n // Grows the per-behavior scratch shells to the behavior count (Carbon\r\n // resizes m_scratchData wherever agents are added).\r\n /**\r\n * Grows the per-behaviour scratch array so it has one slot per behaviour in the group.\r\n */\r\n #EnsureScratchArrays()\r\n {\r\n while (this.#scratchData.length < this.behaviors.length)\r\n {\r\n this.#scratchData.push(null);\r\n }\r\n }\r\n\r\n // Fills any missing per-agent scratch records and trims removed ones -\r\n // the JS stand-in for Carbon's behavior-list OnListModified handler\r\n // (cpp:77-118), which resizes scratch when behaviors join or leave.\r\n /**\r\n * Adds missing per-agent scratch records and trims stale ones for every behaviour that needs scratch storage.\r\n */\r\n #SyncScratchRecords()\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const behavior = this.behaviors[i];\r\n if ((behavior?.GetScratchMemorySize?.() ?? 0) > 0)\r\n {\r\n let records = this.#scratchData[i];\r\n if (!records)\r\n {\r\n records = [];\r\n this.#scratchData[i] = records;\r\n }\r\n for (let j = records.length; j < this.#agents.length; j++)\r\n {\r\n records[j] = behavior.InitializeScratch();\r\n }\r\n records.length = this.#agents.length;\r\n }\r\n }\r\n }\r\n\r\n // Initializes every scratch-owning behavior's record for one agent index\r\n // (Carbon InitializeScratch over the raw buffer at size * agentIndex).\r\n /**\r\n * Initialises the scratch record for one agent index in every behaviour that uses scratch storage.\r\n */\r\n #InitializeScratchForAgent(agentIndex)\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const behavior = this.behaviors[i];\r\n if ((behavior?.GetScratchMemorySize?.() ?? 0) > 0)\r\n {\r\n let records = this.#scratchData[i];\r\n if (!records)\r\n {\r\n records = [];\r\n this.#scratchData[i] = records;\r\n }\r\n records[agentIndex] = behavior.InitializeScratch();\r\n }\r\n }\r\n }\r\n\r\n // Carbon AddAgentPrivate (cpp:316-343).\r\n /**\r\n * Creates and appends one agent, initialises its scratch records, and increments the live agent count.\r\n */\r\n #AddAgentPrivate()\r\n {\r\n const agent = this.#createAgent();\r\n this.#agents.push(agent);\r\n this.#EnsureScratchArrays();\r\n this.#InitializeScratchForAgent(this.#agents.length - 1);\r\n this.actualCount++;\r\n }\r\n\r\n // Carbon AddAgentsByCount (cpp:460-491).\r\n /**\r\n * Appends agents until the group reaches the requested count, initialising scratch records for each.\r\n */\r\n #AddAgentsByCount(count)\r\n {\r\n const sizeBeforeResize = this.#agents.length;\r\n while (this.#agents.length < count)\r\n {\r\n this.#agents.push(this.#createAgent());\r\n }\r\n\r\n this.#EnsureScratchArrays();\r\n for (let agentIndex = sizeBeforeResize; agentIndex < this.#agents.length; agentIndex++)\r\n {\r\n this.#InitializeScratchForAgent(agentIndex);\r\n }\r\n }\r\n\r\n // Carbon RemoveAgentsByCount (cpp:499-513).\r\n /**\r\n * Truncates the agent list and every behaviour's scratch array down to the requested count.\r\n */\r\n #RemoveAgentsByCount(count)\r\n {\r\n this.#agents.length = count;\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const records = this.#scratchData[i];\r\n if (records)\r\n {\r\n records.length = count;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Creates an agent with default motion, rendering and lifetime state at the group's current spawn position.\r\n */\r\n #createAgent()\r\n {\r\n return {\r\n closestAgentInGroup: null,\r\n rotation: quat.create(),\r\n // This is because the process priority behavior can also affect where\r\n // drones spawn (Carbon AddAgentPrivate, cpp:318-323).\r\n position: vec3.clone(this.spawnPosition),\r\n acceleration: vec3.create(),\r\n velocity: vec3.create(),\r\n accelerationLength: 0,\r\n velocityLength: 0,\r\n target: vec3.create(),\r\n targetDirection: vec3.create(),\r\n id: Math.floor(Math.random() * 500),\r\n lifetime: 0,\r\n playFX: false,\r\n fxStartTime: -1,\r\n xfade: 0,\r\n isVisible: false,\r\n screenSize: 0\r\n };\r\n }\r\n\r\n // Carbon OnAgentCountChanged (cpp:376-388).\r\n /**\r\n * Flags the agent tree for rebuild, notifies the owner's buffer-resize callback, and resyncs the booster flare count.\r\n */\r\n #OnAgentCountChanged()\r\n {\r\n this.#createAgentTree = true;\r\n if (this.#changeBufferVertexCount)\r\n {\r\n this.#changeBufferVertexCount();\r\n }\r\n\r\n if (this.boosters)\r\n {\r\n this.boosters.RebuildFlareBuffer?.(this.actualCount);\r\n }\r\n }\r\n\r\n}\r\n"],"names":["Z_AXIS","vec3","fromValues","INTEREST_POINT","create","ACTUAL_FACING","FACING_NORMALIZED","AGENT_SPHERE","vec4","EMPTY_SEARCH_TREE","ClampLength","value","maxLength","lengthSq","squaredLength","scale","Math","sqrt","_BehaviorGroup","BehaviorGroup","EveEntity","e","_init_display","_init_extra_display","_init_maxVelocity","_init_extra_maxVelocity","_init_scale","_init_extra_scale","_init_blendScreenSizeMax","_init_extra_blendScreenSizeMax","_init_blendScreenSizeMin","_init_extra_blendScreenSizeMin","_init_currentScreenSize","_init_extra_currentScreenSize","_init_renderThreshold","_init_extra_renderThreshold","_init_debugIntensity","_init_extra_debugIntensity","_init_debugLodLevel","_init_extra_debugLodLevel","_init_actualCount","_init_extra_actualCount","_init_count","_init_extra_count","_init_boosters","_init_extra_boosters","_init_mesh","_init_extra_mesh","_init_name","_init_extra_name","_init_boundingSphereRadius","_init_extra_boundingSphereRadius","_init_debugMode","_init_extra_debugMode","_init_update","_init_extra_update","_init_behaviors","_init_extra_behaviors","_init_spawnPosition","_init_extra_spawnPosition","_init_collectForces","_init_extra_collectForces","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","boolean","float32","read","readwrite","int32","notify","model","string","list","carbon","method","impl","adapted","reason","implemented","notImplemented","noop","constructor","args","Map","mat4","display","maxVelocity","blendScreenSizeMax","blendScreenSizeMin","currentScreenSize","renderThreshold","debugIntensity","debugLodLevel","actualCount","count","boosters","mesh","name","boundingSphereRadius","debugMode","update","behaviors","spawnPosition","collectForces","Initialize","CreateVertexDeclaration","RebuildFlareBuffer","SetPlayFXBehavior","OnModified","InitializeGeometryResource","length","i","SortBehaviorIndexes","t","SetCount","SetVertexFunctionReferance","callback","GetSize","GetCount","CreateAgentTree","EveKDdroneManagementTree","CreateTree","GetBehaviorByName","target","String","behavior","GetBehaviorName","priority","ProcessPriority","COUNT","index","GetProcessPriority","LEAST_PRIORITY","push","GetMesh","GetMaxVelocity","SetGroupIndexIndicator","Number","GetGroupIndexIndicator","AddAgent","AddAgents","positions","Array","isArray","firstNewIndex","position","agent","copy","agentIndex","RemoveAgent","floor","random","RemoveSpecificAgent","lastIndex","pop","records","desired","isFinite","trunc","UpdateAgents","dt","system","deltaTime","min","max","CalculateBehavior","ranges","boundingRadius","searchRadius","GetBehaviorSearchRadius","dronesInRange","FindDronesInRange","forces","force","maxVelocitySq","lifetime","scaleAndAdd","velocity","acceleration","transformQuat","rotation","lerp","normalize","quat","rotationTo","targetDirection","set","UpdateTree","UpdateVisibility","updateContext","worldTransform","worldRadius","frustum","GetFrustum","blendModifier","transformMat4","IsSphereVisible","pixelSize","GetPixelSizeAccross","Infinity","screenSize","xfade","isVisible","UseWithScreenSize","IsGroupVisible","AllTheSame","same","GetShipInfoForBuffer","_args","Error","GetBoosterInfoForBuffer","GetRenderables","renderables","UpdateAsyncronous","UpdateSyncronous","params","spaceObjectParent","GetParent","GetBoundingSphereRadius","GetKDTree","GetBooster","PlayFX","registry","GetComponentRegistry","UnRegister","Register","GetLights","lightManager","GetDisplay","info","AddLight","_light","ClearLights","RegisterComponents","RegisterComponent","EveComponentType","LightOwner","UnRegisterComponents","RegisterWithQuadRenderer","quadRenderer","AddQuadsToQuadRenderer","GetAgents","GetForces","#GetBlendModifier","#EnsureScratchArrays","#SyncScratchRecords","GetScratchMemorySize","j","InitializeScratch","#InitializeScratchForAgent","#AddAgentPrivate","#AddAgentsByCount","sizeBeforeResize","#RemoveAgentsByCount","#createAgent","closestAgentInGroup","clone","accelerationLength","velocityLength","id","playFX","fxStartTime","#OnAgentCountChanged"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BehaviorGroup.js","sources":["../../../../../../src/trinity/eve/child/behaviors/BehaviorGroup.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/Behaviors/BehaviorGroup.h\r\n// trinity/trinity/Eve/SpaceObject/Children/Behaviors/BehaviorGroup.cpp\r\n// Hand-maintained from Carbon source, promoted out of generated intake.\r\nimport { carbon, impl, edit, type } from \"#schema\";\r\nimport { EveEntity } from \"../../EveEntity.js\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\r\nimport { ProcessPriority } from \"./enums.js\";\r\nimport { EveKDdroneManagementTree } from \"../../../eve/child/behaviors/EveKDdroneManagementTree.js\";\r\nimport { PlayFX } from \"./PlayFX.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\n\r\n// Module scratch for the per-agent integration and visibility loops (child\r\n// updates run sequentially; non-reentrant by design).\r\nconst Z_AXIS = vec3.fromValues(0, 0, 1);\r\nconst INTEREST_POINT = vec3.create();\r\nconst ACTUAL_FACING = vec3.create();\r\nconst FACING_NORMALIZED = vec3.create();\r\nconst AGENT_SPHERE = vec4.create();\r\nconst EMPTY_SEARCH_TREE = [];\r\n\r\n// Carbon ClampLength: in-place clamp of a vec3 to a maximum length.\r\nfunction ClampLength(value, maxLength)\r\n{\r\n const lengthSq = vec3.squaredLength(value);\r\n if (lengthSq > maxLength * maxLength && lengthSq > 0)\r\n {\r\n vec3.scale(value, value, maxLength / Math.sqrt(lengthSq));\r\n }\r\n return value;\r\n}\r\n\r\n/** Owns a group of drone agents, running its priority-ordered behaviours each frame to integrate their acceleration, velocity, orientation and position, and managing their count, visibility, lighting and rendering. */\r\n@type.define({ className: \"BehaviorGroup\", family: \"eve/child/behaviors\" })\r\nexport class BehaviorGroup extends EveEntity\r\n{\r\n\r\n #agents = [];\r\n\r\n // Per-behavior scratch: #scratchData[behaviorIndex] is an array of plain\r\n // per-agent records (behavior.InitializeScratch()) or null when the\r\n // behavior reports no scratch (Carbon m_scratchData raw buffers).\r\n #scratchData = [];\r\n\r\n // Behavior indexes ordered by ProcessPriority (Carbon m_sortedBehaviorIndexes).\r\n #sortedBehaviorIndexes = [];\r\n\r\n // Spatial partitioning tree (Carbon m_tree).\r\n #tree = null;\r\n\r\n // Carbon m_updatedOnce/m_createAgentTree runtime frame state.\r\n #updatedOnce = false;\r\n\r\n #createAgentTree = false;\r\n\r\n // Cached PlayFX behavior (Carbon m_playFXBehavior).\r\n #playFXBehavior = null;\r\n\r\n // Owner-provided buffer resize callback (Carbon m_changeBufferVertexCount).\r\n #changeBufferVertexCount = null;\r\n\r\n // Debug force collection (Carbon m_forces; pairs of position/force vec3s).\r\n #forces = [];\r\n\r\n // Reused per-frame search radii (Carbon local `ranges`).\r\n #ranges = [];\r\n\r\n // agentIndex -> vec4(position.xyz, lightScale) (Carbon m_lightInfo);\r\n // filled by the GPU booster-buffer path, consumed by GetLights.\r\n #lightInfo = new Map();\r\n\r\n // World transform captured by UpdateVisibility (Carbon m_parentTransform).\r\n #parentTransform = mat4.create();\r\n\r\n // Owning space object (Carbon m_parent), captured in UpdateSyncronous.\r\n #parent = null;\r\n\r\n // Base-instance indicator assigned by the behavior system (Carbon m_groupIndex).\r\n #groupIndex = 0;\r\n\r\n /** m_display (bool) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.boolean\r\n display = true;\r\n\r\n /** m_maxVelocity (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n maxVelocity = 100;\r\n\r\n /** m_scale (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n scale = 1;\r\n\r\n /** m_blendScreenSizeMax (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n blendScreenSizeMax = 15;\r\n\r\n /** m_blendScreenSizeMin (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n blendScreenSizeMin = 5;\r\n\r\n /** m_currentScreenSize (float) [READ] */\r\n @edit.read\r\n @type.float32\r\n currentScreenSize = 0;\r\n\r\n /** m_renderThreshold (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n renderThreshold = 1;\r\n\r\n /** m_debugIntensity (float) [READWRITE] */\r\n @edit.readwrite\r\n @type.float32\r\n debugIntensity = 0;\r\n\r\n /** m_debugLodLevel (float) [READWRITE] */\r\n @edit.readwrite\r\n @type.float32\r\n debugLodLevel = 0;\r\n\r\n /** m_actualCount (int32_t) [READ] */\r\n @edit.read\r\n @type.int32\r\n actualCount = 0;\r\n\r\n /** m_count (int32_t) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.int32\r\n count = 0;\r\n\r\n /** m_booster (BehaviorGroupBoosterPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @edit.notify\r\n @edit.persist\r\n @type.model(\"BehaviorGroupBooster\")\r\n boosters = null;\r\n\r\n /** m_mesh (Tr2MeshPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @edit.notify\r\n @edit.persist\r\n @type.model(\"Tr2Mesh\")\r\n mesh = null;\r\n\r\n /** m_behaviorGroupName (BlueSharedString) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_boundingSphereRadius (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n boundingSphereRadius = 5;\r\n\r\n /** m_debugMode (bool) [READWRITE] */\r\n @edit.readwrite\r\n @type.boolean\r\n debugMode = false;\r\n\r\n /** m_update (bool) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.boolean\r\n update = true;\r\n\r\n /** m_behaviors (PIBehaviorVector) [READ, PERSIST] */\r\n @edit.persist\r\n @type.list(\"IBehavior\")\r\n behaviors = [];\r\n\r\n /** m_spawnPosition (Vector3) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.vec3\r\n spawnPosition = vec3.create();\r\n\r\n /** m_collectForces (bool) - debug toggle read by the behaviors. */\r\n @type.boolean\r\n collectForces = false;\r\n\r\n /** Carbon BehaviorGroup::Initialize (cpp:45-57). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Vertex-declaration creation is a GPU seam; scratch sizing, booster flare-count sync, and the PlayFX cache are ported.\")\r\n Initialize()\r\n {\r\n this.#EnsureScratchArrays();\r\n this.CreateVertexDeclaration();\r\n\r\n if (this.boosters)\r\n {\r\n this.boosters.RebuildFlareBuffer?.(this.count);\r\n }\r\n\r\n this.SetPlayFXBehavior();\r\n return true;\r\n }\r\n\r\n /** Carbon BehaviorGroup::OnModified (cpp:59-71); the value argument follows\r\n * the repo's OnModified duck (field name or field value). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Blue Var matching maps to the repo's OnModified duck; a mesh change refreshes the (stubbed) vertex declaration and a booster change re-syncs the flare count.\")\r\n OnModified(value = null)\r\n {\r\n if (value === \"mesh\")\r\n {\r\n this.CreateVertexDeclaration();\r\n }\r\n if ((value === \"boosters\") && this.boosters !== null)\r\n {\r\n this.boosters.RebuildFlareBuffer?.(this.actualCount);\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Regenerates the agents from scratch: clears them, re-sorts the behavior\r\n * indexes, and re-adds m_count agents (Carbon InitializeGeometryResource,\r\n * cpp:126-140). Behaviors like SpawnDrones use this as a full reset.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n InitializeGeometryResource()\r\n {\r\n this.#agents.length = 0;\r\n for (let i = 0; i < this.#scratchData.length; i++)\r\n {\r\n if (this.#scratchData[i])\r\n {\r\n this.#scratchData[i].length = 0;\r\n }\r\n }\r\n\r\n this.SortBehaviorIndexes();\r\n\r\n const t = this.count;\r\n this.actualCount = 0;\r\n this.SetCount(t);\r\n }\r\n\r\n /** Carbon BehaviorGroup::SetVertexFunctionReferance (cpp:142-145). */\r\n @carbon.method\r\n @impl.implemented\r\n SetVertexFunctionReferance(callback)\r\n {\r\n this.#changeBufferVertexCount = typeof callback === \"function\" ? callback : null;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetSize (cpp:151-154). */\r\n @carbon.method\r\n @impl.implemented\r\n GetSize()\r\n {\r\n return this.#agents.length;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetCount (cpp:160-163). */\r\n @carbon.method\r\n @impl.implemented\r\n GetCount()\r\n {\r\n return this.actualCount;\r\n }\r\n\r\n /** Carbon method CreateAgentTree (cpp:169-177). */\r\n @carbon.method\r\n @impl.implemented\r\n CreateAgentTree()\r\n {\r\n this.#tree = new EveKDdroneManagementTree();\r\n this.#tree.CreateTree(this.#agents, this.behaviors.length);\r\n return this.#tree;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetBehaviorByName (cpp:187-197). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBehaviorByName(name)\r\n {\r\n const target = String(name ?? \"\");\r\n for (const behavior of this.behaviors)\r\n {\r\n if (target === (behavior?.GetBehaviorName?.() ?? \"unnamed\"))\r\n {\r\n return behavior;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /** Carbon BehaviorGroup::SortBehaviorIndexes (cpp:206-221). */\r\n @carbon.method\r\n @impl.implemented\r\n SortBehaviorIndexes()\r\n {\r\n this.#sortedBehaviorIndexes.length = 0;\r\n for (let priority = 0; priority < ProcessPriority.COUNT; priority++)\r\n {\r\n for (let index = 0; index < this.behaviors.length; index++)\r\n {\r\n if ((this.behaviors[index]?.GetProcessPriority?.() ?? ProcessPriority.LEAST_PRIORITY) === priority)\r\n {\r\n this.#sortedBehaviorIndexes.push(index);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetMesh (cpp:227-230). */\r\n @carbon.method\r\n @impl.implemented\r\n GetMesh()\r\n {\r\n return this.mesh;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetMaxVelocity (cpp:236-239). */\r\n @carbon.method\r\n @impl.implemented\r\n GetMaxVelocity()\r\n {\r\n return this.maxVelocity;\r\n }\r\n\r\n /** Carbon BehaviorGroup::SetGroupIndexIndicator (cpp:254-257). */\r\n @carbon.method\r\n @impl.implemented\r\n SetGroupIndexIndicator(index)\r\n {\r\n this.#groupIndex = Number(index) | 0;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetGroupIndexIndicator (cpp:263-266). */\r\n @carbon.method\r\n @impl.implemented\r\n GetGroupIndexIndicator()\r\n {\r\n return this.#groupIndex;\r\n }\r\n\r\n /** Carbon method AddAgent (cpp:272-278). */\r\n @carbon.method\r\n @impl.implemented\r\n AddAgent()\r\n {\r\n this.#AddAgentPrivate();\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /**\r\n * Adds one agent per position and initializes the newcomers' scratch\r\n * records (Carbon AddAgents, cpp:280-310).\r\n * @param {Array<Float32Array>} positions\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddAgents(positions)\r\n {\r\n if (!Array.isArray(positions))\r\n {\r\n return;\r\n }\r\n\r\n const firstNewIndex = this.#agents.length;\r\n for (const position of positions)\r\n {\r\n const agent = this.#createAgent();\r\n vec3.copy(agent.position, position);\r\n this.#agents.push(agent);\r\n }\r\n\r\n this.#EnsureScratchArrays();\r\n for (let agentIndex = firstNewIndex; agentIndex < this.#agents.length; agentIndex++)\r\n {\r\n this.#InitializeScratchForAgent(agentIndex);\r\n }\r\n\r\n this.actualCount += positions.length;\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /** Carbon method RemoveAgent (cpp:415-426). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Math.random replaces Carbon's TriRandInt when selecting the removed agent.\")\r\n RemoveAgent()\r\n {\r\n if (this.#agents.length === 0)\r\n {\r\n return;\r\n }\r\n const index = Math.floor(Math.random() * this.#agents.length);\r\n this.RemoveSpecificAgent(index);\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /**\r\n * Swap-with-last removal that keeps every behavior's per-agent scratch\r\n * record aligned (Carbon RemoveSpecificAgent, cpp:432-452).\r\n * @param {Number} index\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RemoveSpecificAgent(index)\r\n {\r\n const lastIndex = this.#agents.length - 1;\r\n if (index < 0 || index > lastIndex)\r\n {\r\n return;\r\n }\r\n\r\n this.#agents[index] = this.#agents[lastIndex];\r\n this.#agents.pop();\r\n\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const records = this.#scratchData[i];\r\n if (!records)\r\n {\r\n continue;\r\n }\r\n records[index] = records[lastIndex];\r\n records.length = this.#agents.length;\r\n }\r\n\r\n this.actualCount--;\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /** Carbon method SetCount (cpp:350-368). */\r\n @carbon.method\r\n @impl.implemented\r\n SetCount(count)\r\n {\r\n const value = Number(count);\r\n const desired = Number.isFinite(value) ? Math.trunc(value) : -1;\r\n if (desired === this.actualCount || desired < 0)\r\n {\r\n return;\r\n }\r\n\r\n if (this.actualCount < desired)\r\n {\r\n this.#AddAgentsByCount(desired);\r\n }\r\n else\r\n {\r\n this.#RemoveAgentsByCount(desired);\r\n }\r\n\r\n // Carbon updates only m_actualCount here; m_count stays the authored\r\n // spawn count that InitializeGeometryResource restores.\r\n this.actualCount = desired;\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /**\r\n * Runs the priority-sorted behaviors against the shared range query, then\r\n * integrates every agent's acceleration, velocity, facing, and position\r\n * (Carbon UpdateAgents, cpp:521-626).\r\n * @param {Number} dt - delta time in seconds\r\n * @param {Object} system - owning EveChildBehaviorSystem\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAgents(dt, system)\r\n {\r\n // make sure the update isn't too big when e.g. a player resizes his window\r\n const deltaTime = Math.min(Math.max(Number(dt) || 0, 0), 0.1);\r\n\r\n // JS has no Blue list notify: keep the priority order and scratch shells\r\n // in sync with the behavior list before the frame body runs (Carbon's\r\n // OnListModified seam).\r\n if (this.#sortedBehaviorIndexes.length !== this.behaviors.length)\r\n {\r\n this.SortBehaviorIndexes();\r\n }\r\n this.#EnsureScratchArrays();\r\n this.#SyncScratchRecords();\r\n\r\n if (this.#updatedOnce)\r\n {\r\n if (!this.display || !this.update)\r\n {\r\n this.#tree = null;\r\n return;\r\n }\r\n if (this.#agents.length === 0)\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const index = this.#sortedBehaviorIndexes[i];\r\n this.behaviors[index]?.CalculateBehavior?.(this.#agents, this.#scratchData[index], deltaTime, this, system, EMPTY_SEARCH_TREE);\r\n }\r\n return;\r\n }\r\n }\r\n if (this.#tree === null)\r\n {\r\n this.CreateAgentTree();\r\n }\r\n\r\n const ranges = this.#ranges;\r\n ranges.length = 0;\r\n const boundingRadius = this.boundingSphereRadius * this.scale;\r\n for (const behavior of this.behaviors)\r\n {\r\n const searchRadius = behavior?.GetBehaviorSearchRadius?.() ?? -1;\r\n ranges.push(searchRadius === -1 ? -1 : searchRadius + boundingRadius);\r\n }\r\n\r\n const dronesInRange = this.#tree.FindDronesInRange(this.#agents, ranges, boundingRadius);\r\n\r\n // Calculate the behaviors\r\n if (this.collectForces)\r\n {\r\n this.#forces.length = 0;\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const index = this.#sortedBehaviorIndexes[i];\r\n const forces = this.behaviors[index]?.CalculateBehavior?.(this.#agents, this.#scratchData[index], deltaTime, this, system, dronesInRange[index] ?? EMPTY_SEARCH_TREE);\r\n if (Array.isArray(forces))\r\n {\r\n for (const force of forces)\r\n {\r\n this.#forces.push(force);\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const index = this.#sortedBehaviorIndexes[i];\r\n this.behaviors[index]?.CalculateBehavior?.(this.#agents, this.#scratchData[index], deltaTime, this, system, dronesInRange[index] ?? EMPTY_SEARCH_TREE);\r\n }\r\n }\r\n\r\n // Move the agents based on the behaviors\r\n const maxVelocitySq = Math.max(1, this.maxVelocity * this.maxVelocity);\r\n for (const agent of this.#agents)\r\n {\r\n agent.lifetime += deltaTime;\r\n\r\n vec3.scaleAndAdd(agent.velocity, agent.velocity, agent.acceleration, deltaTime);\r\n\r\n vec3.transformQuat(INTEREST_POINT, Z_AXIS, agent.rotation);\r\n vec3.lerp(ACTUAL_FACING, INTEREST_POINT, agent.velocity, vec3.squaredLength(agent.velocity) / maxVelocitySq);\r\n\r\n // Carbon TriQuaternionRotationArc(zAxis -> actualFacingDir); rotationTo\r\n // needs unit vectors, and a zero facing keeps the previous rotation.\r\n vec3.normalize(FACING_NORMALIZED, ACTUAL_FACING);\r\n if (vec3.squaredLength(FACING_NORMALIZED) > 0)\r\n {\r\n quat.rotationTo(agent.rotation, Z_AXIS, FACING_NORMALIZED);\r\n }\r\n vec3.copy(agent.targetDirection, ACTUAL_FACING);\r\n\r\n ClampLength(agent.velocity, this.maxVelocity);\r\n vec3.scaleAndAdd(agent.position, agent.position, agent.velocity, deltaTime);\r\n vec3.set(agent.acceleration, 0, 0, 0);\r\n }\r\n\r\n this.#tree.UpdateTree(deltaTime);\r\n\r\n // we always want to update the behaviors at least once, otherwise\r\n // behaviors like SpawnDrones won't get to spawn the drones\r\n this.#updatedOnce = true;\r\n }\r\n\r\n /**\r\n * Per-agent frustum visibility and mesh/sprite crossfade (Carbon\r\n * UpdateVisibility, cpp:637-677).\r\n * @param {Object} updateContext - frame context (frustum ducks)\r\n * @param {Float32Array} worldTransform - owning system's world transform\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Frustum ducks take a packed vec4 sphere per repo convention; a missing frustum treats agents as visible at infinite pixel size.\")\r\n UpdateVisibility(updateContext, worldTransform)\r\n {\r\n this.currentScreenSize = 0;\r\n let worldRadius = 1;\r\n\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n const boundingRadius = this.boundingSphereRadius * this.scale;\r\n const blendModifier = this.#GetBlendModifier();\r\n\r\n for (const agent of this.#agents)\r\n {\r\n vec3.transformMat4(AGENT_SPHERE, agent.position, worldTransform);\r\n AGENT_SPHERE[3] = boundingRadius;\r\n if (frustum?.IsSphereVisible(AGENT_SPHERE) !== false)\r\n {\r\n const pixelSize = Number(frustum?.GetPixelSizeAccross?.(AGENT_SPHERE) ?? Infinity);\r\n agent.screenSize = pixelSize;\r\n this.currentScreenSize = Math.max(this.currentScreenSize, pixelSize);\r\n worldRadius = Math.max(worldRadius, boundingRadius);\r\n if (pixelSize >= this.blendScreenSizeMax)\r\n {\r\n agent.xfade = 0; // Render as mesh\r\n }\r\n else if (pixelSize <= this.blendScreenSizeMin)\r\n {\r\n agent.xfade = 1; // Render as sprite\r\n }\r\n else\r\n {\r\n agent.xfade = 1 - (pixelSize - this.blendScreenSizeMin) * blendModifier;\r\n }\r\n agent.isVisible = agent.screenSize >= this.renderThreshold;\r\n }\r\n else\r\n {\r\n agent.isVisible = false;\r\n }\r\n }\r\n this.mesh?.UseWithScreenSize?.(this.currentScreenSize, worldRadius);\r\n\r\n mat4.copy(this.#parentTransform, worldTransform);\r\n }\r\n\r\n /** Carbon BehaviorGroup::IsGroupVisible (cpp:683-686). */\r\n @carbon.method\r\n @impl.implemented\r\n IsGroupVisible()\r\n {\r\n return this.currentScreenSize >= this.renderThreshold;\r\n }\r\n\r\n /**\r\n * 1 if every agent lodded out to a sprite, 0 if every agent is a mesh,\r\n * -1 when mixed or empty (Carbon AllTheSame, cpp:397-409).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AllTheSame()\r\n {\r\n let same = -1;\r\n for (const agent of this.#agents)\r\n {\r\n if (same === -1)\r\n {\r\n same = agent.xfade;\r\n }\r\n if (same !== agent.xfade)\r\n {\r\n return -1;\r\n }\r\n }\r\n return same;\r\n }\r\n\r\n /** Carbon method GetShipInfoForBuffer (cpp:692-742) - GPU instance-buffer fill. */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetShipInfoForBuffer(..._args)\r\n {\r\n throw new Error(\"BehaviorGroup.GetShipInfoForBuffer is not implemented in CarbonEngineJS (GPU instance-buffer fill).\");\r\n }\r\n\r\n /** Carbon method GetBoosterInfoForBuffer (cpp:748-821) - GPU instance-buffer fill. */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetBoosterInfoForBuffer(..._args)\r\n {\r\n throw new Error(\"BehaviorGroup.GetBoosterInfoForBuffer is not implemented in CarbonEngineJS (GPU instance-buffer fill).\");\r\n }\r\n\r\n /** Carbon method CreateVertexDeclaration (cpp:828-865) - renderer vertex\r\n * declaration bookkeeping; safe frame-loop no-op in JS. */\r\n @carbon.method\r\n @impl.noop\r\n CreateVertexDeclaration()\r\n {\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetRenderables (cpp:871-877): PlayFX effects only. */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(renderables = [])\r\n {\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.GetRenderables(renderables);\r\n }\r\n return renderables;\r\n }\r\n\r\n /** Carbon BehaviorGroup::UpdateAsyncronous (cpp:883-894): PlayFX fan-out. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAsyncronous(updateContext)\r\n {\r\n if (!this.update)\r\n {\r\n return;\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.UpdateAsyncronous(updateContext, this.#parentTransform);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::UpdateSyncronous (cpp:901-925): deferred tree\r\n * rebuild, PlayFX sync update, and parent capture. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSyncronous(updateContext, params)\r\n {\r\n if (!this.update)\r\n {\r\n return;\r\n }\r\n if (this.#createAgentTree === true)\r\n {\r\n this.CreateAgentTree();\r\n this.#createAgentTree = false;\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.UpdateSyncronous(updateContext);\r\n }\r\n\r\n if (this.#parent === null && params?.spaceObjectParent)\r\n {\r\n this.#parent = params.spaceObjectParent;\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetParent (cpp:927-930). */\r\n @carbon.method\r\n @impl.implemented\r\n GetParent()\r\n {\r\n return this.#parent;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetBoundingSphereRadius (cpp:953-956). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphereRadius()\r\n {\r\n return this.boundingSphereRadius * this.scale;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetKDTree (cpp:958-961). */\r\n @carbon.method\r\n @impl.implemented\r\n GetKDTree()\r\n {\r\n return this.#tree;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetBooster (cpp:963-966). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBooster()\r\n {\r\n return this.boosters;\r\n }\r\n\r\n /** Carbon BehaviorGroup::SetPlayFXBehavior (cpp:968-988): caches the PlayFX\r\n * behavior and swaps its component registration. The instanceof gate is\r\n * Carbon's dynamic_cast<PlayFX*> (cpp:973): the behaviors list is typed\r\n * IBehavior and resolved by string name, so a mis-named behavior of another\r\n * class must never land in the PlayFX slot. */\r\n @carbon.method\r\n @impl.implemented\r\n SetPlayFXBehavior()\r\n {\r\n const behavior = this.GetBehaviorByName(\"PlayFX\");\r\n if (behavior instanceof PlayFX)\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.#playFXBehavior)\r\n {\r\n this.#playFXBehavior.UnRegister?.(registry);\r\n }\r\n this.#playFXBehavior = behavior;\r\n if (registry)\r\n {\r\n behavior.Register?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Registers the booster light records with the duck-typed light manager\r\n * (Carbon GetLights, cpp:990-1001). The #lightInfo map is populated by the\r\n * booster instance-buffer fill, which is a GPU seam - until that path runs\r\n * the map stays empty and no lights register.\r\n * @param {Object} lightManager\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLights(lightManager)\r\n {\r\n if (this.boosters && this.boosters.GetDisplay?.())\r\n {\r\n for (const [agentIndex, info] of this.#lightInfo)\r\n {\r\n this.boosters.AddLight(lightManager, info, info[3], agentIndex, this.#parentTransform);\r\n }\r\n }\r\n }\r\n\r\n /** ITr2LightOwner::AddLight - intentionally empty in Carbon (h:116). */\r\n @carbon.method\r\n @impl.noop\r\n AddLight(_light)\r\n {\r\n }\r\n\r\n /** ITr2LightOwner::ClearLights - intentionally empty in Carbon (h:117). */\r\n @carbon.method\r\n @impl.noop\r\n ClearLights()\r\n {\r\n }\r\n\r\n /** Carbon BehaviorGroup::RegisterComponents (cpp:1003-1015): unconditional\r\n * LightOwner (Carbon's verbatim \"LightOwner\" component name,\r\n * Lights/ITr2LightOwner.h:18), then forwards the PlayFX behavior. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n this.#playFXBehavior?.Register?.(registry);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::UnRegisterComponents (cpp:1017-1027). */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n this.#playFXBehavior?.UnRegister?.(registry);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::RegisterWithQuadRenderer (cpp:1029-1040): CPU\r\n * fan-out to the booster and PlayFX quad owners. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterWithQuadRenderer(quadRenderer)\r\n {\r\n if (this.boosters)\r\n {\r\n this.boosters.RegisterWithQuadRenderer?.(quadRenderer);\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.RegisterWithQuadRenderer?.(quadRenderer);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::AddQuadsToQuadRenderer (cpp:1043-1059): CPU\r\n * fan-out, gated on display and group visibility. */\r\n @carbon.method\r\n @impl.implemented\r\n AddQuadsToQuadRenderer(frustum, quadRenderer)\r\n {\r\n if (this.display && this.IsGroupVisible())\r\n {\r\n if (this.boosters && this.boosters.GetDisplay?.())\r\n {\r\n this.boosters.AddQuadsToQuadRenderer?.(frustum, quadRenderer);\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.AddQuadsToQuadRenderer?.(frustum, quadRenderer);\r\n }\r\n }\r\n }\r\n\r\n /** Returns the portable DroneAgent records in stable instance order. */\r\n @impl.adapted\r\n GetAgents()\r\n {\r\n return this.#agents;\r\n }\r\n\r\n /** Returns the collected debug force pairs (Carbon m_forces). */\r\n @impl.adapted\r\n GetForces()\r\n {\r\n return this.#forces;\r\n }\r\n\r\n // Carbon GetBlendModifier (cpp:628-631).\r\n /**\r\n * The reciprocal of the mesh-to-sprite blend screen-size range, used to interpolate an agent's crossfade.\r\n */\r\n #GetBlendModifier()\r\n {\r\n return 1 / Math.max(0.0001, this.blendScreenSizeMax - this.blendScreenSizeMin);\r\n }\r\n\r\n // Grows the per-behavior scratch shells to the behavior count (Carbon\r\n // resizes m_scratchData wherever agents are added).\r\n /**\r\n * Grows the per-behaviour scratch array so it has one slot per behaviour in the group.\r\n */\r\n #EnsureScratchArrays()\r\n {\r\n while (this.#scratchData.length < this.behaviors.length)\r\n {\r\n this.#scratchData.push(null);\r\n }\r\n }\r\n\r\n // Fills any missing per-agent scratch records and trims removed ones -\r\n // the JS stand-in for Carbon's behavior-list OnListModified handler\r\n // (cpp:77-118), which resizes scratch when behaviors join or leave.\r\n /**\r\n * Adds missing per-agent scratch records and trims stale ones for every behaviour that needs scratch storage.\r\n */\r\n #SyncScratchRecords()\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const behavior = this.behaviors[i];\r\n if ((behavior?.GetScratchMemorySize?.() ?? 0) > 0)\r\n {\r\n let records = this.#scratchData[i];\r\n if (!records)\r\n {\r\n records = [];\r\n this.#scratchData[i] = records;\r\n }\r\n for (let j = records.length; j < this.#agents.length; j++)\r\n {\r\n records[j] = behavior.InitializeScratch();\r\n }\r\n records.length = this.#agents.length;\r\n }\r\n }\r\n }\r\n\r\n // Initializes every scratch-owning behavior's record for one agent index\r\n // (Carbon InitializeScratch over the raw buffer at size * agentIndex).\r\n /**\r\n * Initialises the scratch record for one agent index in every behaviour that uses scratch storage.\r\n */\r\n #InitializeScratchForAgent(agentIndex)\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const behavior = this.behaviors[i];\r\n if ((behavior?.GetScratchMemorySize?.() ?? 0) > 0)\r\n {\r\n let records = this.#scratchData[i];\r\n if (!records)\r\n {\r\n records = [];\r\n this.#scratchData[i] = records;\r\n }\r\n records[agentIndex] = behavior.InitializeScratch();\r\n }\r\n }\r\n }\r\n\r\n // Carbon AddAgentPrivate (cpp:316-343).\r\n /**\r\n * Creates and appends one agent, initialises its scratch records, and increments the live agent count.\r\n */\r\n #AddAgentPrivate()\r\n {\r\n const agent = this.#createAgent();\r\n this.#agents.push(agent);\r\n this.#EnsureScratchArrays();\r\n this.#InitializeScratchForAgent(this.#agents.length - 1);\r\n this.actualCount++;\r\n }\r\n\r\n // Carbon AddAgentsByCount (cpp:460-491).\r\n /**\r\n * Appends agents until the group reaches the requested count, initialising scratch records for each.\r\n */\r\n #AddAgentsByCount(count)\r\n {\r\n const sizeBeforeResize = this.#agents.length;\r\n while (this.#agents.length < count)\r\n {\r\n this.#agents.push(this.#createAgent());\r\n }\r\n\r\n this.#EnsureScratchArrays();\r\n for (let agentIndex = sizeBeforeResize; agentIndex < this.#agents.length; agentIndex++)\r\n {\r\n this.#InitializeScratchForAgent(agentIndex);\r\n }\r\n }\r\n\r\n // Carbon RemoveAgentsByCount (cpp:499-513).\r\n /**\r\n * Truncates the agent list and every behaviour's scratch array down to the requested count.\r\n */\r\n #RemoveAgentsByCount(count)\r\n {\r\n this.#agents.length = count;\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const records = this.#scratchData[i];\r\n if (records)\r\n {\r\n records.length = count;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Creates an agent with default motion, rendering and lifetime state at the group's current spawn position.\r\n */\r\n #createAgent()\r\n {\r\n return {\r\n closestAgentInGroup: null,\r\n rotation: quat.create(),\r\n // This is because the process priority behavior can also affect where\r\n // drones spawn (Carbon AddAgentPrivate, cpp:318-323).\r\n position: vec3.clone(this.spawnPosition),\r\n acceleration: vec3.create(),\r\n velocity: vec3.create(),\r\n accelerationLength: 0,\r\n velocityLength: 0,\r\n target: vec3.create(),\r\n targetDirection: vec3.create(),\r\n id: Math.floor(Math.random() * 500),\r\n lifetime: 0,\r\n playFX: false,\r\n fxStartTime: -1,\r\n xfade: 0,\r\n isVisible: false,\r\n screenSize: 0\r\n };\r\n }\r\n\r\n // Carbon OnAgentCountChanged (cpp:376-388).\r\n /**\r\n * Flags the agent tree for rebuild, notifies the owner's buffer-resize callback, and resyncs the booster flare count.\r\n */\r\n #OnAgentCountChanged()\r\n {\r\n this.#createAgentTree = true;\r\n if (this.#changeBufferVertexCount)\r\n {\r\n this.#changeBufferVertexCount();\r\n }\r\n\r\n if (this.boosters)\r\n {\r\n this.boosters.RebuildFlareBuffer?.(this.actualCount);\r\n }\r\n }\r\n\r\n}\r\n"],"names":["Z_AXIS","vec3","fromValues","INTEREST_POINT","create","ACTUAL_FACING","FACING_NORMALIZED","AGENT_SPHERE","vec4","EMPTY_SEARCH_TREE","ClampLength","value","maxLength","lengthSq","squaredLength","scale","Math","sqrt","_BehaviorGroup","BehaviorGroup","EveEntity","e","_init_display","_init_extra_display","_init_maxVelocity","_init_extra_maxVelocity","_init_scale","_init_extra_scale","_init_blendScreenSizeMax","_init_extra_blendScreenSizeMax","_init_blendScreenSizeMin","_init_extra_blendScreenSizeMin","_init_currentScreenSize","_init_extra_currentScreenSize","_init_renderThreshold","_init_extra_renderThreshold","_init_debugIntensity","_init_extra_debugIntensity","_init_debugLodLevel","_init_extra_debugLodLevel","_init_actualCount","_init_extra_actualCount","_init_count","_init_extra_count","_init_boosters","_init_extra_boosters","_init_mesh","_init_extra_mesh","_init_name","_init_extra_name","_init_boundingSphereRadius","_init_extra_boundingSphereRadius","_init_debugMode","_init_extra_debugMode","_init_update","_init_extra_update","_init_behaviors","_init_extra_behaviors","_init_spawnPosition","_init_extra_spawnPosition","_init_collectForces","_init_extra_collectForces","_initProto","c","_initClass","_applyDecs","type","define","className","family","edit","persist","boolean","float32","read","readwrite","int32","notify","model","string","list","carbon","method","impl","adapted","reason","implemented","notImplemented","noop","constructor","args","Map","mat4","display","maxVelocity","blendScreenSizeMax","blendScreenSizeMin","currentScreenSize","renderThreshold","debugIntensity","debugLodLevel","actualCount","count","boosters","mesh","name","boundingSphereRadius","debugMode","update","behaviors","spawnPosition","collectForces","Initialize","CreateVertexDeclaration","RebuildFlareBuffer","SetPlayFXBehavior","OnModified","InitializeGeometryResource","length","i","SortBehaviorIndexes","t","SetCount","SetVertexFunctionReferance","callback","GetSize","GetCount","CreateAgentTree","EveKDdroneManagementTree","CreateTree","GetBehaviorByName","target","String","behavior","GetBehaviorName","priority","ProcessPriority","COUNT","index","GetProcessPriority","LEAST_PRIORITY","push","GetMesh","GetMaxVelocity","SetGroupIndexIndicator","Number","GetGroupIndexIndicator","AddAgent","AddAgents","positions","Array","isArray","firstNewIndex","position","agent","copy","agentIndex","RemoveAgent","floor","random","RemoveSpecificAgent","lastIndex","pop","records","desired","isFinite","trunc","UpdateAgents","dt","system","deltaTime","min","max","CalculateBehavior","ranges","boundingRadius","searchRadius","GetBehaviorSearchRadius","dronesInRange","FindDronesInRange","forces","force","maxVelocitySq","lifetime","scaleAndAdd","velocity","acceleration","transformQuat","rotation","lerp","normalize","quat","rotationTo","targetDirection","set","UpdateTree","UpdateVisibility","updateContext","worldTransform","worldRadius","frustum","GetFrustum","blendModifier","transformMat4","IsSphereVisible","pixelSize","GetPixelSizeAccross","Infinity","screenSize","xfade","isVisible","UseWithScreenSize","IsGroupVisible","AllTheSame","same","GetShipInfoForBuffer","_args","Error","GetBoosterInfoForBuffer","GetRenderables","renderables","UpdateAsyncronous","UpdateSyncronous","params","spaceObjectParent","GetParent","GetBoundingSphereRadius","GetKDTree","GetBooster","PlayFX","registry","GetComponentRegistry","UnRegister","Register","GetLights","lightManager","GetDisplay","info","AddLight","_light","ClearLights","RegisterComponents","RegisterComponent","EveComponentType","LightOwner","UnRegisterComponents","RegisterWithQuadRenderer","quadRenderer","AddQuadsToQuadRenderer","GetAgents","GetForces","#GetBlendModifier","#EnsureScratchArrays","#SyncScratchRecords","GetScratchMemorySize","j","InitializeScratch","#InitializeScratchForAgent","#AddAgentPrivate","#AddAgentsByCount","sizeBeforeResize","#RemoveAgentsByCount","#createAgent","closestAgentInGroup","clone","accelerationLength","velocityLength","id","playFX","fxStartTime","#OnAgentCountChanged"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import {
|
|
2
|
+
import { edit, type, carbon, impl } from '#schema';
|
|
3
3
|
import { CjsModel } from '#model';
|
|
4
4
|
import { vec3 } from '#math/vec3';
|
|
5
5
|
import { vec4 } from '#math/vec4';
|
|
@@ -22,7 +22,7 @@ new class extends _identity {
|
|
|
22
22
|
} = _applyDecs2311(this, [type.define({
|
|
23
23
|
className: "BehaviorGroupBooster",
|
|
24
24
|
family: "eve/child/behaviors"
|
|
25
|
-
})], [[[
|
|
25
|
+
})], [[[edit, edit.persist, type, type.boolean], 16, "display"], [[edit, edit.persist, type, type.vec3], 16, "boosterOffset"], [[edit, edit.persist, type, type.uint32], 16, "atlasIndex0"], [[edit, edit.persist, type, type.uint32], 16, "atlasIndex1"], [[edit, edit.persist, void 0, type.model("Tr2Effect")], 16, "boosterEffect"], [[edit, edit.read, type, type.uint32], 16, "flareCount"], [[edit, edit.readwrite, type, type.boolean], 16, "displayAmbientFlare"], [[edit, edit.readwrite, type, type.boolean], 16, "displayBoosters"], [[edit, edit.readwrite, type, type.boolean], 16, "displayHazeFlare"], [[edit, edit.notify, edit, edit.persist, type, type.float32], 16, "ambientFlareBrightness"], [[edit, edit.notify, edit, edit.persist, type, type.float32], 16, "haloFlareBrightness"], [[edit, edit.notify, edit, edit.persist, type, type.color], 16, "ambientFlareColor"], [[edit, edit.notify, edit, edit.persist, type, type.color], 16, "haloFlareColor"], [[edit, edit.persist, type, type.color], 16, "lightColor"], [[edit, edit.notify, edit, edit.persist, void 0, type.model("Tr2Effect")], 16, "ambientFlareEffect"], [[edit, edit.notify, edit, edit.persist, void 0, type.model("Tr2Effect")], 16, "haloFlareEffect"], [[edit, edit.persist, type, type.float32], 16, "ambientFlareNoiseAmplitude"], [[edit, edit.persist, type, type.float32], 16, "haloFlareNoiseAmplitude"], [[edit, edit.persist, type, type.uint32], 16, "ambientFlareNoiseOctaves"], [[edit, edit.persist, type, type.uint32], 16, "haloFlareNoiseOctaves"], [[edit, edit.persist, type, type.float32], 16, "ambientFlareNoiseSpeed"], [[edit, edit.persist, type, type.float32], 16, "haloFlareNoiseSpeed"], [[edit, edit.notify, edit, edit.persist, type, type.vec3], 16, "ambientFlareOffset"], [[edit, edit.notify, edit, edit.persist, type, type.vec3], 16, "haloFlareOffset"], [[edit, edit.persist, type, type.float32], 16, "lightRadius"], [[edit, edit.notify, edit, edit.persist, type, type.vec3], 16, "ambientFlareScale"], [[edit, edit.notify, edit, edit.persist, type, type.vec3], 16, "haloFlareScale"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Effect graph construction is ported; Tr2QuadRenderer::Instance() flare registration and the quad buffers are renderer-owned seams.")], 18, "InitializeEffects"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDisplay"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLightSize"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetOffset"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetAtlasIndex0"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetAtlasIndex1"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetEffect"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The flare Quad lists are GPU quad packing owned by the quad-renderer seam; only the CPU count is tracked.")], 18, "RebuildFlareBuffer"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's frame clock maps to Date.now seconds for the noise phase; the light registers through the duck-typed manager (AddPointLight), never a GPU structure.")], 18, "AddLight"], [[carbon, carbon.method, impl, impl.noop], 18, "Initialize"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "AddFlare"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "GetBatch"], [[carbon, carbon.method, impl, impl.noop], 18, "CreateBuffer"], [[carbon, carbon.method, impl, impl.noop], 18, "RegisterWithQuadRenderer"], [[carbon, carbon.method, impl, impl.noop], 18, "AddQuadsToQuadRenderer"]], 0, void 0, CjsModel));
|
|
26
26
|
}
|
|
27
27
|
constructor(...args) {
|
|
28
28
|
super(...args);
|