The Trunk: EToys-jl.240.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: EToys-jl.240.mcz

commits-2
Jens Lincke uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-jl.240.mcz

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

Name: EToys-jl.240
Author: jl
Time: 20 September 2016, 6:20:07.114902 pm
UUID: 794a0157-9eed-c94b-a895-bdcb32650c0d
Ancestors: EToys-jl.239

something went wrong

=============== Diff against EToys-jl.238 ===============

Item was changed:
  ----- Method: KedamaTurtleVectorPlayer2 class>>primGetAngleToX:toY:xArray:yArray:resultInto: (in category 'as yet unclassified') -----
  primGetAngleToX: pX toY: pY xArray: xArray yArray: yArray resultInto: result
 
+ | ppx ppy x y ret currentDist minDist nearestNeighbour |
- | ppx ppy x y ret |
  <primitive: 'vectorGetAngleTo' module:'KedamaPlugin2'>
  "^ KedamaPlugin doPrimitive: #vectorGetAngleTo."
 
  ppx := pX.
  ppy := pY.
  1 to: result size do: [:index |
  pX isCollection ifTrue: [
+ minDist := SmallInteger maxVal.
+ 1 to: pX size do: [:index2 |
+ ppx := pX at: index2.
+ ppy := pY at: index2.
+ currentDist := ((ppx - (xArray at: index)) squared + (ppy - (yArray at: index)) squared) sqrt.
+ currentDist < minDist ifTrue: [
+ minDist := currentDist.
+ nearestNeighbour := index2]].
+ ppx := pX at: nearestNeighbour.
+ ppy := pY at: nearestNeighbour.
- ppx := pX at: index.
- ppy := pY at: index.
  ].
  x := ppx - (xArray at: index).
  y := ppy - (yArray at: index).
  ret := (x@y) theta radiansToDegrees + 90.0.
  ret > 360.0 ifTrue: [ret := ret - 360.0].
  result at: index put: ret.
  ].
  ^ result.
  !

Item was changed:
  ----- Method: KedamaTurtleVectorPlayer2>>getAngleTo: (in category 'player commands') -----
  getAngleTo: players
 
  | p xArray yArray result pX pY xy |
  players isCollection ifFalse: [
  p := players
  ].
  xArray := arrays at: 2.
  yArray := arrays at: 3.
  result := KedamaFloatArray new: self size.
  players isCollection ifTrue: [
  pX := KedamaFloatArray new: players size.
  pY := KedamaFloatArray new: players size.
  1 to: players size do: [:i |
  xy := (players at: i) getXAndY.
  pX at: i put: xy x.
  pY at: i put: xy y.
  ].
  ] ifFalse: [
+ pX := p turtles getX.
+ pY := p turtles getY.
- xy := p getXAndY.
- pX := xy x.
- pY := xy y.
  ].
  ^ KedamaTurtleVectorPlayer2 primGetAngleToX: pX toY: pY xArray: xArray yArray: yArray resultInto: result.
 
  !

Item was changed:
  ----- Method: MessageAsTempNode>>determineStatementType:fromDict:primaryBreedPair:messageType:isStatement:receiverObject: (in category '*Etoys-Tweak-Kedama-Generated') -----
  determineStatementType: t1 fromDict: t2 primaryBreedPair: t3 messageType: t4 isStatement: t5 receiverObject: t6
  | t7 t8 t9 t10 t11 t13 |
  t5
  ifFalse: [^ t1].
  t9 := t2 at: self.
  (t9
  select: [:t14 | t14 first notNil
  and: [t14 first isPrototypeTurtlePlayer]]) size = 0
  ifTrue: [^ #none].
  t4 = #sequential
  ifTrue: [^ #sequential].
  t1 = #sequential
  ifTrue: [^ #sequential].
  t3
  ifNil: [^ #none].
  t7 := t3 first.
  t4 = #condition
  ifTrue: [t11 := IdentitySet new.
  t13 := IdentitySet new.
  t9
  do: [:t14 |
  (((t14 at: 5)
  = #testBody
  or: [(t14 at: 5)
  = #testCond])
  and: [(t14 at: 4)
  ~= #read])
  ifTrue: [t14 first
  ifNotNil: [t13 add: t14 first]].
  (((t14 at: 5)
  = #testBody
  or: [(t14 at: 5)
  = #testCond])
  and: [(t14 at: 4)
  = #read])
  ifTrue: [t14 first
  ifNotNil: [t11 add: t14 first]]].
  ((t13 intersection: t11)
  copyWithout: t7)
  ifNotEmpty: [^ #sequential].
  ^ #parallel].
  t11 := IdentitySet new.
  t13 := IdentitySet new.
  t8 := OrderedCollection new.
  t10 := OrderedCollection new.
  t9
  do: [:t14 |
  t14 first = t7
  ifTrue: [((t7 isBreedSelector: t14 second)
  or: [t7 isUserDefinedSelector: t14 second])
  ifFalse: [t8 add: t14 second]].
  t14 first
  ifNil: [t10 add: t14 second]
  ifNotNil: [(t14 at: 4)
  == #read
  ifTrue: [t11 add: t14 first].
  (t14 at: 4)
  == #read
  ifFalse: [t13 add: t14 first]].
  (t7 containsSequentialSelector: t14 second)
  ifTrue: [^ #sequential]].
  (t8 includes: #die)
  ifTrue: [^ #die].
  (((self isKindOf: AssignmentNode)
  and: [t6 = t7])
  and: [t7 isBreedSelector: self property property])
  ifTrue: [^ #none].
  (t7 areOkaySelectors: t10)
  ifFalse: [^ #sequential].
  (t7 vectorizableTheseSelectors: t8)
  ifFalse: [^ #sequential].
  ((t11 intersection: t13)
  copyWithout: t7)
  ifNotEmpty: [^ #sequential].
  self
+ nodesDo: [:t14 | (t14 isMessageNode
+ and: [t7 containsSequentialSelector: t14 selector])
- nodesDo: [:t14 | (t14 isLeaf
- and: [t7 containsSequentialSelector: t14 key])
  ifTrue: [^ #sequential]].
  ^ #parallel!

Item was changed:
  ----- Method: MessageNode>>determineStatementType:fromDict:primaryBreedPair:messageType:isStatement:receiverObject: (in category '*Etoys-Tweak-Kedama-Generated') -----
  determineStatementType: t1 fromDict: t2 primaryBreedPair: t3 messageType: t4 isStatement: t5 receiverObject: t6
  | t7 t8 t9 t10 t11 t13 |
  t5
  ifFalse: [^ t1].
  t9 := t2 at: self.
  (t9
  select: [:t14 | t14 first notNil
  and: [t14 first isPrototypeTurtlePlayer]]) size = 0
  ifTrue: [^ #none].
  t4 = #sequential
  ifTrue: [^ #sequential].
  t1 = #sequential
  ifTrue: [^ #sequential].
  t3
  ifNil: [^ #none].
  t7 := t3 first.
  t4 = #condition
  ifTrue: [t11 := IdentitySet new.
  t13 := IdentitySet new.
  t9
  do: [:t14 |
  (((t14 at: 5)
  = #testBody
  or: [(t14 at: 5)
  = #testCond])
  and: [(t14 at: 4)
  ~= #read])
  ifTrue: [t14 first
  ifNotNil: [t13 add: t14 first]].
  (((t14 at: 5)
  = #testBody
  or: [(t14 at: 5)
  = #testCond])
  and: [(t14 at: 4)
  = #read])
  ifTrue: [t14 first
  ifNotNil: [t11 add: t14 first]]].
  ((t13 intersection: t11)
  copyWithout: t7)
  ifNotEmpty: [^ #sequential].
  ^ #parallel].
  t11 := IdentitySet new.
  t13 := IdentitySet new.
  t8 := OrderedCollection new.
  t10 := OrderedCollection new.
  t9
  do: [:t14 |
  t14 first = t7
  ifTrue: [((t7 isBreedSelector: t14 second)
  or: [t7 isUserDefinedSelector: t14 second])
  ifFalse: [t8 add: t14 second]].
  t14 first
  ifNil: [t10 add: t14 second]
  ifNotNil: [(t14 at: 4)
  == #read
  ifTrue: [t11 add: t14 first].
  (t14 at: 4)
  == #read
  ifFalse: [t13 add: t14 first]].
  (t7 containsSequentialSelector: t14 second)
  ifTrue: [^ #sequential]].
  (t8 includes: #die)
  ifTrue: [^ #die].
  (((self isKindOf: AssignmentNode)
  and: [t6 = t7])
  and: [t7 isBreedSelector: self property property])
  ifTrue: [^ #none].
  (t7 areOkaySelectors: t10)
  ifFalse: [^ #sequential].
  (t7 vectorizableTheseSelectors: t8)
  ifFalse: [^ #sequential].
  ((t11 intersection: t13)
  copyWithout: t7)
  ifNotEmpty: [^ #sequential].
  self
+ nodesDo: [:t14 | (t14 isMessageNode
+ and: [t7 containsSequentialSelector: t14 selector])
- nodesDo: [:t14 | (t14 isLeaf
- and: [t7 containsSequentialSelector: t14 key])
  ifTrue: [^ #sequential]].
  ^ #parallel!