diff --git a/js/common/view/EFACTemperatureAndColorSensorNode.js b/js/common/view/EFACTemperatureAndColorSensorNode.js
index 97ad7a68..c7c41c88 100644
--- a/js/common/view/EFACTemperatureAndColorSensorNode.js
+++ b/js/common/view/EFACTemperatureAndColorSensorNode.js
@@ -37,7 +37,7 @@ define( require => {
cursor: 'pointer',
// phet-io
- tandem: Tandem.OPTIONAL
+ tandem: Tandem.REQUIRED
}, options );
super( options );
@@ -71,7 +71,8 @@ define( require => {
},
endDrag: () => {
temperatureAndColorSensor.userControlledProperty.set( false );
- }
+ },
+ tandem: options.tandem.createTandem( 'inputListener' )
} ) );
}
}
diff --git a/js/intro/view/BeakerContainerView.js b/js/intro/view/BeakerContainerView.js
index 9654d35c..beba6a5e 100644
--- a/js/intro/view/BeakerContainerView.js
+++ b/js/intro/view/BeakerContainerView.js
@@ -94,7 +94,8 @@ define( require => {
this.grabNode,
modelViewTransform,
constrainPosition,
- model.isPlayingProperty
+ model.isPlayingProperty,
+ options.tandem.createTandem( 'inputListener' )
) );
}
diff --git a/js/intro/view/BlockNode.js b/js/intro/view/BlockNode.js
index a703d164..06c0f0a3 100644
--- a/js/intro/view/BlockNode.js
+++ b/js/intro/view/BlockNode.js
@@ -278,7 +278,8 @@ define( require => {
this,
modelViewTransform,
constrainPosition,
- simIsPlayingProperty
+ simIsPlayingProperty,
+ options.tandem.createTandem( 'inputListener' )
) );
}
diff --git a/js/intro/view/ThermalElementDragHandler.js b/js/intro/view/ThermalElementDragHandler.js
index 437f0df5..def556a9 100644
--- a/js/intro/view/ThermalElementDragHandler.js
+++ b/js/intro/view/ThermalElementDragHandler.js
@@ -19,13 +19,15 @@ define( require => {
* @param {ModelViewTransform2} modelViewTransform
* @param {function} constrainPosition
* @param {BooleanProperty} simIsPlayingProperty
+ * @param {Tandem} tandem
*/
constructor(
modelElement,
screenViewChildNode,
modelViewTransform,
constrainPosition,
- simIsPlayingProperty
+ simIsPlayingProperty,
+ tandem
) {
const dragStartOffset = new Vector2( 0, 0 );
@@ -35,7 +37,6 @@ define( require => {
// allow moving a finger (touch) across a screenViewChildNode to pick it up
allowTouchSnag: true,
-
start: event => {
// make sure the sim is playing when an element is grabbed - this will resume the sim if it is paused
@@ -49,18 +50,17 @@ define( require => {
dragStartPosition.y - modelElementViewPosition.y
);
},
-
drag: event => {
const dragPosition = currentTarget.globalToParentPoint( event.pointer.point );
const modelElementViewPosition = dragPosition.minus( dragStartOffset );
const modelElementPosition = modelViewTransform.viewToModelPosition( modelElementViewPosition );
modelElement.positionProperty.set( constrainPosition( modelElement, modelElementPosition ) );
},
-
end: () => {
modelElement.userControlledProperty.set( false );
currentTarget = null;
- }
+ },
+ tandem: tandem
} );
}
}
diff --git a/js/phet-io/energy-forms-and-changes-phet-io-elements-baseline.js b/js/phet-io/energy-forms-and-changes-phet-io-elements-baseline.js
index 579d80ff..d493e91c 100644
--- a/js/phet-io/energy-forms-and-changes-phet-io-elements-baseline.js
+++ b/js/phet-io/energy-forms-and-changes-phet-io-elements-baseline.js
@@ -3602,6 +3602,45 @@ window.phet.phetio.phetioElementsBaseline = assert &&
"phetioStudioControl": true,
"phetioTypeName": "ReferenceIO"
},
+ "energyFormsAndChanges.introScreen.view.beakerProxyNodeGroup.archetype.inputListener.dragAction": {
+ "phetioDocumentation": "Emits whenever a drag occurs with an SceneryEventIO argument. The arguments are:
- event: SceneryEventIO
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": true,
+ "phetioIsArchetype": true,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.beakerProxyNodeGroup.archetype.inputListener.pressAction": {
+ "phetioDocumentation": "Executes whenever a press occurs. The first argument when executing can be used to convey info about the SceneryEvent. The arguments are:
- event: SceneryEventIO
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": true,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.beakerProxyNodeGroup.archetype.inputListener.releaseAction": {
+ "phetioDocumentation": "Executes whenever a release occurs. The arguments are:
- event: NullableIO
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": true,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO>"
+ },
"energyFormsAndChanges.introScreen.view.beakerProxyNodeGroup.archetype.opacityProperty": {
"phetioDocumentation": "",
"phetioDynamicElement": false,
@@ -3680,6 +3719,45 @@ window.phet.phetio.phetioElementsBaseline = assert &&
"phetioStudioControl": true,
"phetioTypeName": "NodeIO"
},
+ "energyFormsAndChanges.introScreen.view.blockNodeGroup.archetype.inputListener.dragAction": {
+ "phetioDocumentation": "Emits whenever a drag occurs with an SceneryEventIO argument. The arguments are:
- event: SceneryEventIO
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": true,
+ "phetioIsArchetype": true,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.blockNodeGroup.archetype.inputListener.pressAction": {
+ "phetioDocumentation": "Executes whenever a press occurs. The first argument when executing can be used to convey info about the SceneryEvent. The arguments are:
- event: SceneryEventIO
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": true,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.blockNodeGroup.archetype.inputListener.releaseAction": {
+ "phetioDocumentation": "Executes whenever a release occurs. The arguments are:
- event: NullableIO
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": true,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO>"
+ },
"energyFormsAndChanges.introScreen.view.blockNodeGroup.archetype.opacityProperty": {
"phetioDocumentation": "Opacity of the parent NodeIO, between 0 (invisible) and 1 (fully visible)",
"phetioDynamicElement": false,
@@ -4876,6 +4954,71 @@ window.phet.phetio.phetioElementsBaseline = assert &&
"phetioStudioControl": true,
"phetioTypeName": "NodeIO"
},
+ "energyFormsAndChanges.introScreen.view.thermometer1Node.inputListener": {
+ "phetioDocumentation": "",
+ "phetioDynamicElement": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ObjectIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer1Node.inputListener.dragAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": true,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer1Node.inputListener.dragEndAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag end in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer1Node.inputListener.dragStartAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag start in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer1Node.inputListener.isDraggingProperty": {
+ "phetioDocumentation": "Indicates whether the object is dragging",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "PropertyIO"
+ },
"energyFormsAndChanges.introScreen.view.thermometer1Node.opacityProperty": {
"phetioDocumentation": "Opacity of the parent NodeIO, between 0 (invisible) and 1 (fully visible)",
"phetioDynamicElement": false,
@@ -4941,6 +5084,71 @@ window.phet.phetio.phetioElementsBaseline = assert &&
"phetioStudioControl": true,
"phetioTypeName": "NodeIO"
},
+ "energyFormsAndChanges.introScreen.view.thermometer2Node.inputListener": {
+ "phetioDocumentation": "",
+ "phetioDynamicElement": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ObjectIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer2Node.inputListener.dragAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": true,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer2Node.inputListener.dragEndAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag end in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer2Node.inputListener.dragStartAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag start in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer2Node.inputListener.isDraggingProperty": {
+ "phetioDocumentation": "Indicates whether the object is dragging",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "PropertyIO"
+ },
"energyFormsAndChanges.introScreen.view.thermometer2Node.opacityProperty": {
"phetioDocumentation": "Opacity of the parent NodeIO, between 0 (invisible) and 1 (fully visible)",
"phetioDynamicElement": false,
@@ -5006,6 +5214,71 @@ window.phet.phetio.phetioElementsBaseline = assert &&
"phetioStudioControl": true,
"phetioTypeName": "NodeIO"
},
+ "energyFormsAndChanges.introScreen.view.thermometer3Node.inputListener": {
+ "phetioDocumentation": "",
+ "phetioDynamicElement": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ObjectIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer3Node.inputListener.dragAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": true,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer3Node.inputListener.dragEndAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag end in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer3Node.inputListener.dragStartAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag start in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer3Node.inputListener.isDraggingProperty": {
+ "phetioDocumentation": "Indicates whether the object is dragging",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "PropertyIO"
+ },
"energyFormsAndChanges.introScreen.view.thermometer3Node.opacityProperty": {
"phetioDocumentation": "Opacity of the parent NodeIO, between 0 (invisible) and 1 (fully visible)",
"phetioDynamicElement": false,
@@ -5071,6 +5344,71 @@ window.phet.phetio.phetioElementsBaseline = assert &&
"phetioStudioControl": true,
"phetioTypeName": "NodeIO"
},
+ "energyFormsAndChanges.introScreen.view.thermometer4Node.inputListener": {
+ "phetioDocumentation": "",
+ "phetioDynamicElement": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ObjectIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer4Node.inputListener.dragAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": true,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer4Node.inputListener.dragEndAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag end in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer4Node.inputListener.dragStartAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag start in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.introScreen.view.thermometer4Node.inputListener.isDraggingProperty": {
+ "phetioDocumentation": "Indicates whether the object is dragging",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "PropertyIO"
+ },
"energyFormsAndChanges.introScreen.view.thermometer4Node.opacityProperty": {
"phetioDocumentation": "Opacity of the parent NodeIO, between 0 (invisible) and 1 (fully visible)",
"phetioDynamicElement": false,
@@ -8477,6 +8815,136 @@ window.phet.phetio.phetioElementsBaseline = assert &&
"phetioStudioControl": true,
"phetioTypeName": "NodeIO"
},
+ "energyFormsAndChanges.systemsScreen.view.energySources.faucetNode.faucetNode": {
+ "phetioDocumentation": "",
+ "phetioDynamicElement": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "FaucetNodeIO"
+ },
+ "energyFormsAndChanges.systemsScreen.view.energySources.faucetNode.faucetNode.inputListener": {
+ "phetioDocumentation": "",
+ "phetioDynamicElement": false,
+ "phetioEventType": "USER",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ObjectIO"
+ },
+ "energyFormsAndChanges.systemsScreen.view.energySources.faucetNode.faucetNode.inputListener.dragAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": true,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.systemsScreen.view.energySources.faucetNode.faucetNode.inputListener.dragEndAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag end in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.systemsScreen.view.energySources.faucetNode.faucetNode.inputListener.dragStartAction": {
+ "phetioDocumentation": "A function that executes. The arguments are:
- point: Vector2IO. the position of the drag start in view coordinates
",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "ActionIO"
+ },
+ "energyFormsAndChanges.systemsScreen.view.energySources.faucetNode.faucetNode.inputListener.isDraggingProperty": {
+ "phetioDocumentation": "Indicates whether the object is dragging",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "PropertyIO"
+ },
+ "energyFormsAndChanges.systemsScreen.view.energySources.faucetNode.faucetNode.opacityProperty": {
+ "phetioDocumentation": "Opacity of the parent NodeIO, between 0 (invisible) and 1 (fully visible)",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": true,
+ "phetioStudioControl": true,
+ "phetioTypeName": "NumberPropertyIO"
+ },
+ "energyFormsAndChanges.systemsScreen.view.energySources.faucetNode.faucetNode.opacityProperty.rangeProperty": {
+ "phetioDocumentation": "provides the range of possible values for the parent NumberProperty",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": true,
+ "phetioStudioControl": true,
+ "phetioTypeName": "PropertyIO>"
+ },
+ "energyFormsAndChanges.systemsScreen.view.energySources.faucetNode.faucetNode.pickableProperty": {
+ "phetioDocumentation": "Sets whether the node will be pickable (and hence interactive), see the NodeIO documentation for more details",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": true,
+ "phetioStudioControl": true,
+ "phetioTypeName": "PropertyIO>"
+ },
+ "energyFormsAndChanges.systemsScreen.view.energySources.faucetNode.faucetNode.visibleProperty": {
+ "phetioDocumentation": "Controls whether the Node will be visible (and interactive), see the NodeIO documentation for more details.",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": true,
+ "phetioStudioControl": true,
+ "phetioTypeName": "PropertyIO"
+ },
"energyFormsAndChanges.systemsScreen.view.energySources.faucetNode.faucetSettingProperty": {
"phetioDocumentation": "",
"phetioDynamicElement": false,
@@ -10102,6 +10570,71 @@ window.phet.phetio.phetioElementsBaseline = assert &&
"phetioStudioControl": true,
"phetioTypeName": "PropertyIO>"
},
+ "energyFormsAndChanges.systemsScreen.view.energyUsers.beakerHeaterNode.thermometerNode": {
+ "phetioDocumentation": "",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": false,
+ "phetioStudioControl": true,
+ "phetioTypeName": "NodeIO"
+ },
+ "energyFormsAndChanges.systemsScreen.view.energyUsers.beakerHeaterNode.thermometerNode.opacityProperty": {
+ "phetioDocumentation": "Opacity of the parent NodeIO, between 0 (invisible) and 1 (fully visible)",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": true,
+ "phetioStudioControl": true,
+ "phetioTypeName": "NumberPropertyIO"
+ },
+ "energyFormsAndChanges.systemsScreen.view.energyUsers.beakerHeaterNode.thermometerNode.opacityProperty.rangeProperty": {
+ "phetioDocumentation": "provides the range of possible values for the parent NumberProperty",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": true,
+ "phetioState": true,
+ "phetioStudioControl": true,
+ "phetioTypeName": "PropertyIO>"
+ },
+ "energyFormsAndChanges.systemsScreen.view.energyUsers.beakerHeaterNode.thermometerNode.pickableProperty": {
+ "phetioDocumentation": "Sets whether the node will be pickable (and hence interactive), see the NodeIO documentation for more details",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": true,
+ "phetioStudioControl": true,
+ "phetioTypeName": "PropertyIO>"
+ },
+ "energyFormsAndChanges.systemsScreen.view.energyUsers.beakerHeaterNode.thermometerNode.visibleProperty": {
+ "phetioDocumentation": "Controls whether the Node will be visible (and interactive), see the NodeIO documentation for more details.",
+ "phetioDynamicElement": false,
+ "phetioEventType": "MODEL",
+ "phetioFeatured": false,
+ "phetioHighFrequency": false,
+ "phetioIsArchetype": false,
+ "phetioPlayback": false,
+ "phetioReadOnly": false,
+ "phetioState": true,
+ "phetioStudioControl": true,
+ "phetioTypeName": "PropertyIO"
+ },
"energyFormsAndChanges.systemsScreen.view.energyUsers.beakerHeaterNode.visibleProperty": {
"phetioDocumentation": "Controls whether the Node will be visible (and interactive), see the NodeIO documentation for more details.",
"phetioDynamicElement": false,
diff --git a/js/phet-io/energy-forms-and-changes-phet-io-types.js b/js/phet-io/energy-forms-and-changes-phet-io-types.js
index 982aa2e1..bbeed359 100644
--- a/js/phet-io/energy-forms-and-changes-phet-io-types.js
+++ b/js/phet-io/energy-forms-and-changes-phet-io-types.js
@@ -381,6 +381,17 @@ window.phet.phetio.phetioTypes = assert &&
"supertype": "ObjectIO",
"typeName": "EventIO"
},
+ "FaucetNodeIO": {
+ "documentation": "Faucet that emits fluid, typically user-controllable",
+ "events": [
+ "startTapToDispense",
+ "endTapToDispense"
+ ],
+ "methodOrder": [],
+ "methods": {},
+ "supertype": "NodeIO",
+ "typeName": "FaucetNodeIO"
+ },
"FocusIO": {
"documentation": "A IO type for the instance in the simulation which currently has keyboard focus. FocusIO is serialized into and Object with key `focusedPhetioElement` that is a list of PhET-iO elements, from parent-most to child-most cooresponding to the PhET-iO element that was instrumented.",
"events": [],
diff --git a/js/systems/view/BeakerHeaterNode.js b/js/systems/view/BeakerHeaterNode.js
index 6c4db9c4..ad667fef 100644
--- a/js/systems/view/BeakerHeaterNode.js
+++ b/js/systems/view/BeakerHeaterNode.js
@@ -124,11 +124,13 @@ define( require => {
// Add the thermometer that will indicate the beaker water temperature. Since the position of the thermometer is
// relative to the beaker heater, the model view transform must be compensated
- const temperatureAndColorSensorNode = new EFACTemperatureAndColorSensorNode(
- beakerHeater.thermometer,
- { modelViewTransform: scaleOnlyMVT }
+ const thermometerNode = new EFACTemperatureAndColorSensorNode(
+ beakerHeater.thermometer, {
+ modelViewTransform: scaleOnlyMVT,
+ tandem: tandem.createTandem( 'thermometerNode' )
+ }
);
- this.addChild( temperatureAndColorSensorNode );
+ this.addChild( thermometerNode );
// update the transparency of the hot element to make the dark element appear to heat up
beakerHeater.heatProportionProperty.link( litProportion => {
diff --git a/js/systems/view/FaucetAndWaterNode.js b/js/systems/view/FaucetAndWaterNode.js
index 2ef5f1b5..aedb670f 100644
--- a/js/systems/view/FaucetAndWaterNode.js
+++ b/js/systems/view/FaucetAndWaterNode.js
@@ -77,7 +77,8 @@ define( require => {
shooterOptions: {
touchAreaXDilation: 77,
touchAreaYDilation: 100
- }
+ },
+ tandem: tandem.createTandem( 'faucetNode' )
} );
// create the energy chunk layer