[squeak-dev] The Trunk: EToys-tfel.211.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Aug 30 10:28:45 UTC 2016


Tim Felgentreff uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-tfel.211.mcz

==================== Summary ====================

Name: EToys-tfel.211
Author: tfel
Time: 30 August 2016, 12:26:41.667946 pm
UUID: 3b473c59-76cc-5f45-a96c-eab36c25f3fd
Ancestors: EToys-tfel.210

optional dependency on ScratchPlugin

=============== Diff against EToys-tfel.210 ===============

Item was changed:
  ----- Method: EtoyDAVLoginMorph>>launchBrowser (in category 'actions') -----
  launchBrowser
  
  	ActiveWorld addMorph: self buildPanel centeredNear: Sensor cursorPoint.
+ 	(Smalltalk classNamed: 'ScratchPlugin') ifNotNil: [:sp | sp primOpenURL: self url].
- 	ScratchPlugin primOpenURL: self url.
  !

Item was changed:
  ----- Method: FileList2>>loginHit (in category '*Etoys-Squeakland-private') -----
  loginHit
  
  	| s failed ret loginDialog |
+ 	(Smalltalk classNamed: 'EtoyDAVLoginMorph') ifNil: [^ false].
  	loginDialog := modalView valueOfProperty: #loginDialog ifAbsent: [nil].
  	loginDialog ifNotNil: [^ false].
  	s := ServerDirectory servers at: 'My Squeakland' ifAbsent: [^ false].
  	failed := [EtoysUtilities loggedIn: false. loginDialog := nil. s user: nil].
  	ret := true.
+ 	loginDialog := (Smalltalk classNamed: 'EtoyDAVLoginMorph') new.
- 	loginDialog := EtoyDAVLoginMorph new.
  	loginDialog loginAndDo: [:n :p |
  		s ifNotNil: [
  			s user: n.
  			s password: p.
  			[s copy createPersonalDirectory: n] on: Error do: [:ex |
  				"either directory already exists or could not create.
  				Here, it is just eaten as the following test will tell us whether it can be read."].
  			[s entries] on: ProtocolClientError,  NetworkError do: [:ex |
  				failed value. self inform: 'Login failed.'. ret := false].
  			ret ifTrue: [Utilities authorName: n. Utilities loggedIn: true]].
  		self updateLoginButtonAppearance.
  		EtoysUtilities loggedIn ifTrue: [
  			self directory: directory.
  			brevityState := #FileList.
  			"self addPath: path."
  			self changed: #fileList.
  			self changed: #contents.
  			self changed: #currentDirectorySelected.
  			EToyProjectDetailsMorph updateTripletsFromWebSiteInBackground.
  		].
  		loginDialog := nil. 
  		true.
  	] ifCanceled: failed.
  !

Item was changed:
  ----- Method: KedamaMorph>>acceptForm: (in category 'event handling') -----
  acceptForm: aForm
  
  	| c xArray yArray colorArray newX newY turtlesByColor colorArrays thisPlayer xArrays yArrays |
  	turtlesDict keysAndValuesDo: [:player :vector |
  		player setTurtleCount: 0].
  	turtlesByColor := Dictionary new.
  	turtlesDict keysAndValuesDo: [:player :vector |
  		turtlesByColor at: player color put: player].
  	xArrays := Dictionary new.
  	yArrays := Dictionary new.
  	colorArrays := Dictionary new.
  	0 to: aForm height do: [:y |
  		0 to: aForm width do: [:x |
  			c := aForm colorAt: (x at y).
  			c isTransparent ifFalse: [
  				newX := x.
  				newY := y.
  				((newX >= 0 and: [newX < (self dimensions * pixelsPerPatch) x]) and: [newY >= 0 and: [newY < (self dimensions * pixelsPerPatch) y]]) ifTrue: [
  					thisPlayer := turtlesByColor at: c ifAbsentPut: [
  						turtlesByColor keys
+ 							detect: [:thisColor | (thisColor diff: c) < 0.2]
+ 							ifFound: [:thisColor | turtlesByColor at: thisColor]
- 							detect: [:color | (color diff: c) < 0.2]
- 							ifFound: [:color | turtlesByColor at: color]
  							ifNone: [
  								(self player newTurtleSilently color: c; player)]].
  					xArray := xArrays at: thisPlayer ifAbsentPut: [OrderedCollection new: aForm width * aForm height].
  					yArray := yArrays at: thisPlayer ifAbsentPut: [OrderedCollection new: aForm width * aForm height].
  					colorArray := colorArrays at: thisPlayer ifAbsentPut: [OrderedCollection new: aForm width * aForm height].
  
  					xArray add: newX asFloat / pixelsPerPatch.
  					yArray add: newY asFloat / pixelsPerPatch.
  					colorArray add: (c pixelValueForDepth: 32).
  				].
  			].
  		].
  	].
  	xArrays keysAndValuesDo: [:player :xArry |
  		self makeTurtlesAtPositionsIn: {xArry asArray. (yArrays at: player) asArray. (colorArrays at: player) asArray} examplerPlayer: player ofPrototype: nil.
  		player costume privateTurtleCount: (self turtlesCountOf: player)].!

Item was changed:
  ----- Method: SketchMorph>>blur:form: (in category '*Etoys-Squeakland-filters') -----
  blur: aWidth form: filteredForm 
  	| f fOut fWidth |
  	aWidth = 0 ifTrue:[^ filteredForm].
  	f := filteredForm asFormOfDepth: 32.
  	fWidth := f width + (aWidth - 1) max: f width.
  	fOut := f deepCopy.
+ 	(Smalltalk classNamed: 'ScratchPlugin') ifNotNil: [:sp |
+ 		sp
+ 			primBlur: f bits
+ 			into: fOut bits
+ 			width: fWidth].
- 	ScratchPlugin
- 		primBlur: f bits
- 		into: fOut bits
- 		width: fWidth.
  	^ fOut asFormOfDepth: 16!

Item was changed:
  ----- Method: SketchMorph>>brightnessShift:form: (in category '*Etoys-Squeakland-filters') -----
  brightnessShift: aShift form: filteredForm 
  	| f fOut shift |
  	aShift = 0 ifTrue:[^ filteredForm].
  	shift := aShift min: 100 max: -100.
  	f := filteredForm asFormOfDepth: 32.
  	fOut := f deepCopy.
+ 	(Smalltalk classNamed: 'ScratchPlugin') ifNotNil: [:sp |
+ 		sp
+ 			primShiftBrightness: f bits
+ 			into: fOut bits
+ 			by: shift].
- 	ScratchPlugin
- 		primShiftBrightness: f bits
- 		into: fOut bits
- 		by: shift.
  	^ fOut asFormOfDepth: 16!

Item was changed:
  ----- Method: SketchMorph>>fishEye:form: (in category '*Etoys-Squeakland-filters') -----
  fishEye: aPower form: aForm
  | f fOut power |
  	aPower = 0 ifTrue:[^aForm].
  	power := (100 + (aPower * 10)) max:0.
  	f := aForm asFormOfDepth: 32.
  	fOut := f deepCopy.
+ 	(Smalltalk classNamed: 'ScratchPlugin') ifNotNil: [:sp |
+ 		sp primFisheye: f bits into: fOut bits width: f width power: power].
- 	ScratchPlugin primFisheye: f bits into: fOut bits width: f width power: power.
  	^fOut  asFormOfDepth: 16!

Item was changed:
  ----- Method: SketchMorph>>hueShift:form: (in category '*Etoys-Squeakland-filters') -----
  hueShift: aShift form: filteredForm 
  	| f fOut shift |
  	aShift = 0 ifTrue:[^ filteredForm].
  	shift := aShift min: 360 max: -360.
  	f := filteredForm asFormOfDepth: 32.
  	fOut := f deepCopy.
+ 	(Smalltalk classNamed: 'ScratchPlugin') ifNotNil: [:sp |
+ 		sp
+ 			primShiftHue: f bits
+ 			into: fOut bits
+ 			byDegrees: shift].
- 	ScratchPlugin
- 		primShiftHue: f bits
- 		into: fOut bits
- 		byDegrees: shift.
  	^ fOut asFormOfDepth: 16!

Item was changed:
  ----- Method: SketchMorph>>saturationShift:form: (in category '*Etoys-Squeakland-filters') -----
  saturationShift: aShift form: filteredForm 
  	| f fOut shift |
  	aShift = 0 ifTrue:[^ filteredForm].
  	shift := aShift min: 100 max: -100.
  	f := filteredForm asFormOfDepth: 32.
  	fOut := f deepCopy.
+ 	(Smalltalk classNamed: 'ScratchPlugin') ifNotNil: [:sp |
+ 		sp
+ 			primShiftSaturation: f bits
+ 			into: fOut bits
+ 			by: shift].
- 	ScratchPlugin
- 		primShiftSaturation: f bits
- 		into: fOut bits
- 		by: shift.
  	^ fOut asFormOfDepth: 16!

Item was changed:
  ----- Method: SketchMorph>>whirl:form: (in category '*Etoys-Squeakland-filters') -----
  whirl: anAngle form: aForm
  	| f fOut |
  	anAngle = 0 ifTrue:[^aForm].
  	
  	f := aForm asFormOfDepth: 32.
  	fOut := f deepCopy.
+ 	(Smalltalk classNamed: 'ScratchPlugin') ifNotNil: [:sp |
+ 		sp primWhirl: f bits into: fOut bits width: f width angle: anAngle].
- 	ScratchPlugin primWhirl: f bits into: fOut bits width: f width angle: anAngle.
  	^fOut  asFormOfDepth: 16!



More information about the Squeak-dev mailing list