On Wednesday 22 December 2004 12:33 am, stéphane ducasse wrote:
I was showing to a teacher how to use make siblings and we were confused by the behavior. Is there somewhere a description of the difference between copy and make siblings.
Copy (green halo handle, "Duplicate") is now the default for an UnscriptedPlayer, that is, one without scripts or variables). For an unscripted player, "duplicate" and "make a sibling" do exactly the same thing.
In the case of such a morph, this merely duplicates the Morph. Since there isn't a Player uniclass this doesn't have to get copied.
In the case of a scripted player, duplication also copies the Player uniclass, making a separate class. This used to be the default for the green halo handle. It is now harder to get to for a scripted player; you can do so via the red halo menu/halo actions/duplicate.
Make a sibling (olive halo handle) uses the same Player uniclass, if any. So changes to scripts or instance variables are shared by all the siblings. This is the same thing (and is implemented) as having multiple instances of a given class in Smalltalk.
This is now the default for scripted players.
Apparently the behavior (duplicate) changed between 3.6-3.7 and 3.8. in 3.8 this is now make siblings by default. I checked a bit and it seems that indeed all the siblings are sharing the same behavior and the variables are local to each object.
Yes, this is most often what is wanted.
So one teacher asked me how to get back the default copy behavior I browsed in the halos menus but I could not find that anymore. So what is the status of the makesibling/copy behavior? Is copy simply deprecated (which makes sense to me).
It's still there in the menu, but 2 levels deep in the red halo menu: "halo actions/duplicate".
Also, the "copy" property/command in the Etoy vocabulary creates a sibling.