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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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:
  1. 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