Skip to content

Commit

Permalink
Update tandems, see #385
Browse files Browse the repository at this point in the history
  • Loading branch information
samreid committed Jan 15, 2025
1 parent 46014df commit faa4d26
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 31 deletions.
34 changes: 12 additions & 22 deletions js/common/model/EnergySkateParkModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,8 @@ import IntentionalAny from '../../../../phet-core/js/types/IntentionalAny.js';
import Stopwatch from '../../../../scenery-phet/js/Stopwatch.js';
import TimeSpeed from '../../../../scenery-phet/js/TimeSpeed.js';
import PhetioGroup from '../../../../tandem/js/PhetioGroup.js';
import PhetioObject, { PhetioObjectOptions } from '../../../../tandem/js/PhetioObject.js';
import { PhetioObjectOptions } from '../../../../tandem/js/PhetioObject.js';
import Tandem from '../../../../tandem/js/Tandem.js';
import IOType from '../../../../tandem/js/types/IOType.js';
import ReferenceIO from '../../../../tandem/js/types/ReferenceIO.js';
import energySkatePark from '../../energySkatePark.js';
import EnergySkateParkConstants from '../EnergySkateParkConstants.js';
Expand Down Expand Up @@ -101,7 +100,7 @@ type SelfOptions = {

export type EnergySkateParkModelOptions = SelfOptions & PhetioObjectOptions;

export default class EnergySkateParkModel extends PhetioObject {
export default class EnergySkateParkModel {

// emits an event whenever a track changes in some way (control points dragged, track split apart,
// track dragged, track deleted or scene changed, etc...)
Expand Down Expand Up @@ -195,11 +194,6 @@ export default class EnergySkateParkModel extends PhetioObject {
public readonly eventTimer: EventTimer;

public constructor( preferencesModel: EnergySkateParkPreferencesModel, tandem: Tandem, providedOptions?: EnergySkateParkModelOptions ) {
super( {
phetioType: EnergySkateParkModel.EnergySkateParkModelIO,
tandem: tandem,
phetioState: false
} );

const options = optionize<EnergySkateParkModelOptions, SelfOptions, PhetioObjectOptions>()( {
defaultFriction: EnergySkateParkConstants.DEFAULT_FRICTION,
Expand Down Expand Up @@ -245,29 +239,30 @@ export default class EnergySkateParkModel extends PhetioObject {
} );

this.pieChartVisibleProperty = new BooleanProperty( false, {
tandem: tandem.createTandem( 'pieChartVisibleProperty' )
tandem: tandem.createTandem( 'visibleProperties' ).createTandem( 'pieChartVisibleProperty' )
} );
this.barGraphVisibleProperty = new BooleanProperty( false, {
tandem: tandem.createTandem( 'barGraphVisibleProperty' )
tandem: tandem.createTandem( 'visibleProperties' ).createTandem( 'barGraphVisibleProperty' )
} );
this.gridVisibleProperty = new BooleanProperty( false, {
tandem: tandem.createTandem( 'gridVisibleProperty' )
tandem: tandem.createTandem( 'visibleProperties' ).createTandem( 'gridVisibleProperty' )
} );
this.speedometerVisibleProperty = new BooleanProperty( false, {
tandem: tandem.createTandem( 'speedometerVisibleProperty' )
tandem: tandem.createTandem( 'visibleProperties' ).createTandem( 'speedometerVisibleProperty' )
} );

this.preferencesModel = preferencesModel;


// whether the speed value is visible on the speedometer
this.speedValueVisibleProperty = new BooleanProperty( options.defaultSpeedValueVisible, {
tandem: tandem.createTandem( 'speedValueVisibleProperty' )
tandem: tandem.createTandem( 'visibleProperties' ).createTandem( 'speedValueVisibleProperty' )
} );
this.referenceHeightVisibleProperty = new BooleanProperty( false, {
tandem: tandem.createTandem( 'referenceHeightVisibleProperty' )
tandem: tandem.createTandem( 'visibleProperties' ).createTandem( 'referenceHeightVisibleProperty' )
} );
this.measuringTapeVisibleProperty = new BooleanProperty( false, {
tandem: tandem.createTandem( 'measuringTapeVisibleProperty' )
tandem: tandem.createTandem( 'visibleProperties' ).createTandem( 'measuringTapeVisibleProperty' )
} );

this.barGraphScaleProperty = new NumberProperty( 1 / 30, {
Expand Down Expand Up @@ -303,12 +298,12 @@ export default class EnergySkateParkModel extends PhetioObject {
} );

this.measuringTapeBasePositionProperty = new Vector2Property( new Vector2( 0, 0 ), {
tandem: tandem.createTandem( 'measuringTapeBasePositionProperty' ),
tandem: tandem.createTandem( 'measuringTape' ).createTandem( 'basePositionProperty' ),
units: 'm'
} );

this.measuringTapeTipPositionProperty = new Vector2Property( new Vector2( 0, 0 ), {
tandem: tandem.createTandem( 'measuringTapeTipPositionProperty' ),
tandem: tandem.createTandem( 'measuringTape' ).createTandem( 'tipPositionProperty' ),
units: 'm'
} );

Expand Down Expand Up @@ -1815,11 +1810,6 @@ export default class EnergySkateParkModel extends PhetioObject {
this.removeAndDisposeTrack( track );
}
}

public static readonly EnergySkateParkModelIO = new IOType( 'EnergySkateParkModelIO', {
valueType: EnergySkateParkModel,
documentation: 'The model for the Skate Park.'
} );
}

/**
Expand Down
22 changes: 13 additions & 9 deletions js/common/model/EnergySkateParkTrackSetModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ export default class EnergySkateParkTrackSetModel extends EnergySkateParkSaveSam
initializePremadeTracksOptions: null
}, providedOptions );

super( preferencesModel, tandem.createTandem( 'trackSetModel' ), options );
super( preferencesModel, tandem, options );

this.sceneProperty = new NumberProperty( 0, {
tandem: tandem.createTandem( 'sceneProperty' ),
Expand Down Expand Up @@ -132,36 +132,40 @@ export default class EnergySkateParkTrackSetModel extends EnergySkateParkSaveSam

this.trackTypes.forEach( trackType => {
if ( trackType === PremadeTracks.TrackType.PARABOLA ) {
const parabolaControlPoints = PremadeTracks.createParabolaControlPoints( this, tandem.createTandem( 'parabolaTrack' ), options.parabolaControlPointOptions );
const parabolaTrackTandem = tandem.createTandem( 'tracks' ).createTandem( 'parabolaTrack' );
const parabolaControlPoints = PremadeTracks.createParabolaControlPoints( this, parabolaTrackTandem, options.parabolaControlPointOptions );
const parabolaTrack = EnergySkateParkTrackSetModel.createPremadeTrack( this, parabolaControlPoints, merge( {
tandem: tandem.createTandem( 'parabolaTrack' )
tandem: parabolaTrackTandem
}, options.parabolaTrackOptions ) );

tracks.push( parabolaTrack );
}
else if ( trackType === PremadeTracks.TrackType.SLOPE ) {
const slopeControlPoints = PremadeTracks.createSlopeControlPoints( this, tandem.createTandem( 'slopeTrack' ), options.slopeControlPointOptions );
const slopeTrackTandem = tandem.createTandem( 'tracks' ).createTandem( 'slopeTrack' );
const slopeControlPoints = PremadeTracks.createSlopeControlPoints( this, slopeTrackTandem, options.slopeControlPointOptions );
const slopeTrack = EnergySkateParkTrackSetModel.createPremadeTrack( this, slopeControlPoints, merge( {

// Flag to indicate whether the skater transitions from the right edge of this track directly to the ground
// see #164
slopeToGround: true,
tandem: tandem.createTandem( 'slopeTrack' )
tandem: slopeTrackTandem
}, options.slopeTrackOptions ) );
tracks.push( slopeTrack );
}
else if ( trackType === PremadeTracks.TrackType.DOUBLE_WELL ) {
const doubleWellControlPoints = PremadeTracks.createDoubleWellControlPoints( this, tandem.createTandem( 'doubleWellTrack' ), options.doubleWellControlPointOptions );
const doubleWellTandem = tandem.createTandem( 'tracks' ).createTandem( 'doubleWellTrack' );
const doubleWellControlPoints = PremadeTracks.createDoubleWellControlPoints( this, doubleWellTandem, options.doubleWellControlPointOptions );
const doubleWellTrack = EnergySkateParkTrackSetModel.createPremadeTrack( this, doubleWellControlPoints, merge( {
tandem: tandem.createTandem( 'doubleWellTrack' )
tandem: doubleWellTandem
}, options.doubleWellTrackOptions ) );
tracks.push( doubleWellTrack );
}
else if ( trackType === PremadeTracks.TrackType.LOOP ) {
const loopControlPoints = PremadeTracks.createLoopControlPoints( this, tandem.createTandem( 'loopTrack' ), options.loopControlPointOptions );
const loopTrackTandem = tandem.createTandem( 'tracks' ).createTandem( 'loopTrack' );
const loopControlPoints = PremadeTracks.createLoopControlPoints( this, loopTrackTandem, options.loopControlPointOptions );
const loopTrack = EnergySkateParkTrackSetModel.createPremadeTrack( this, loopControlPoints, merge( {
draggable: this.tracksDraggable,
tandem: tandem.createTandem( 'loopTrack' )
tandem: loopTrackTandem
}, options.loopTrackOptions ) );
tracks.push( loopTrack );
}
Expand Down

0 comments on commit faa4d26

Please sign in to comment.