|
From: <tre...@us...> - 2007-10-19 00:58:44
|
Revision: 514
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=514&view=rev
Author: trevorolio
Date: 2007-10-18 17:58:48 -0700 (Thu, 18 Oct 2007)
Log Message:
-----------
Now plays the sit animation when sitting.
Other folks see the sitting avatar, both upon the event and on initial load.
Need to add UI to template html.
Modified Paths:
--------------
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/util/BodyConstants.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DRenderer.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DUserRenderable.java
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/util/BodyConstants.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/util/BodyConstants.java 2007-10-18 18:57:24 UTC (rev 513)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/util/BodyConstants.java 2007-10-19 00:58:48 UTC (rev 514)
@@ -7,4 +7,5 @@
public static final String WALK_ANIMATION_NAME = "walk";
+ public static final String SIT_ANIMATION_NAME = "sit";
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DRenderer.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DRenderer.java 2007-10-18 18:57:24 UTC (rev 513)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DRenderer.java 2007-10-19 00:58:48 UTC (rev 514)
@@ -402,6 +402,7 @@
return;
}
thingRenderable.addSitter(renderable);
+ renderable.playAnimation(BodyConstants.SIT_ANIMATION_NAME, false, false);
return;
}
@@ -427,7 +428,7 @@
}
startRenderableMotion(renderable, path);
if (!offScreen) {
- renderable.playAnimation(BodyConstants.WALK_ANIMATION_NAME, true);
+ renderable.playAnimation(BodyConstants.WALK_ANIMATION_NAME, true, true);
}
}
@@ -454,6 +455,7 @@
}
usersGroup.removeChild(userRenderable);
thingRenderable.addSitter(userRenderable);
+ userRenderable.playAnimation(BodyConstants.SIT_ANIMATION_NAME, false, false);
}
public void userStood(User user, Thing oldSeat) {
@@ -481,7 +483,7 @@
return;
}
if (!offScreen) {
- renderable.playAnimation(animationName, false);
+ renderable.playAnimation(animationName, false, true);
}
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DUserRenderable.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DUserRenderable.java 2007-10-18 18:57:24 UTC (rev 513)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DUserRenderable.java 2007-10-19 00:58:48 UTC (rev 514)
@@ -67,13 +67,15 @@
private float skeletonScale = 1;
private BodyAnimator animator = null;
-
+
private Bvh[] animations = new Bvh[0];
private BodyAnimatorListener bodyAnimatorListener = new BodyAnimatorListener();
private float userHeight = 2; //meters
+ private boolean playDefaultAnimationWhenComplete = true;
+
public J3DUserRenderable(User user, J3DBodyData bodyData, BufferedImage customSkin) {
ArgumentUtils.assertNotNull(user);
this.user = user;
@@ -102,7 +104,7 @@
for (int i = 0; i < sourceAnimations.length; i++) {
animations[i] = sourceAnimations[i].cloneBvh();
scaleBvh(animations[i]);
- if(animations[i].getName().equals(BodyConstants.DEFAULT_ANIMATION_NAME)){
+ if (animations[i].getName().equals(BodyConstants.DEFAULT_ANIMATION_NAME)) {
defaultAnimation = animations[i];
}
}
@@ -127,7 +129,7 @@
bodyGroup.addChild(skeletonBranch);
setPosition(user.getPosition());
- playAnimation(BodyConstants.DEFAULT_ANIMATION_NAME, false);
+ playAnimation(BodyConstants.DEFAULT_ANIMATION_NAME, false, true);
}
private void scaleBvh(Bvh bvh) {
@@ -222,14 +224,14 @@
stopAnimation();
}
- public void updateMorphs(){
+ public void updateMorphs() {
skin.updateMorphs();
}
-
- public void setSkinTexture(BufferedImage skinTexture){
+
+ public void setSkinTexture(BufferedImage skinTexture) {
skin.setBaseImage(skinTexture);
}
-
+
public void repaintSkinTexture() {
skin.updateTexture();
}
@@ -239,7 +241,9 @@
animator.cleanup();
animator = null;
}
- playAnimation(BodyConstants.DEFAULT_ANIMATION_NAME, false);
+ if (playDefaultAnimationWhenComplete) {
+ playAnimation(BodyConstants.DEFAULT_ANIMATION_NAME, false, false);
+ }
}
private class BodyAnimatorListener implements BodyAnimator.Listener {
@@ -247,27 +251,30 @@
if (animator.getBvh().getName().equals(BodyConstants.DEFAULT_ANIMATION_NAME)) {
return;
}
- playAnimation(BodyConstants.DEFAULT_ANIMATION_NAME, false);
+ if (playDefaultAnimationWhenComplete) {
+ playAnimation(BodyConstants.DEFAULT_ANIMATION_NAME, false, false);
+ }
}
}
- public Bvh getAnimation(String animationName){
+ public Bvh getAnimation(String animationName) {
for (int i = 0; i < animations.length; i++) {
- if(animations[i].getName().equals(animationName)){
+ if (animations[i].getName().equals(animationName)) {
return animations[i];
}
}
return null;
}
-
- public synchronized void playAnimation(String animationName, boolean loop) {
+
+ public void playAnimation(String animationName, boolean loop, boolean playDefaultWhenComplete) {
if (animator != null) {
animator.cleanup();
}
Bvh animation = getAnimation(animationName);
- if(animation == null){
+ if (animation == null) {
return;
}
+ this.playDefaultAnimationWhenComplete = playDefaultWhenComplete;
animator = new BodyAnimator(skeleton, animation, skin, bodyAnimatorListener);
animator.animate(loop);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|