|
From: <tre...@us...> - 2007-10-30 00:18:27
|
Revision: 547
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=547&view=rev
Author: trevorolio
Date: 2007-10-29 17:18:31 -0700 (Mon, 29 Oct 2007)
Log Message:
-----------
Updated the body editor so that you can choose a new body configuration and choose which body data to use as the base.
Still need to add the ability to add a body configuration.
Modified Paths:
--------------
maven/trunk/ogoglio-body-editor-applet/src/main/java/com/ogoglio/bodyeditor/BodyEditorApplet.java
Modified: maven/trunk/ogoglio-body-editor-applet/src/main/java/com/ogoglio/bodyeditor/BodyEditorApplet.java
===================================================================
--- maven/trunk/ogoglio-body-editor-applet/src/main/java/com/ogoglio/bodyeditor/BodyEditorApplet.java 2007-10-30 00:18:29 UTC (rev 546)
+++ maven/trunk/ogoglio-body-editor-applet/src/main/java/com/ogoglio/bodyeditor/BodyEditorApplet.java 2007-10-30 00:18:31 UTC (rev 547)
@@ -193,6 +193,16 @@
saveBodyConfiguration();
updateTextures();
}
+
+ public void setBodyData(long bodyDataID){
+ if (user == null || bodyPanel == null || bodyPanel.renderable == null) {
+ return;
+ }
+ user.getBodyConfiguration().setBodyDataID(bodyDataID);
+ bodyPanel.bodyData = dataManager.getBodyData(bodyDataID);
+ bodyPanel.renderable.initBody(bodyPanel.bodyData, dataManager.getBodyTexture(user.getUsername(), user.getBodyConfiguration().getBodyConfigurationID()));
+ saveBodyConfiguration();
+ }
public void saveBodyConfiguration() {
if (user == null || bodyPanel == null || bodyPanel.renderable == null) {
@@ -204,7 +214,32 @@
e.printStackTrace();
}
}
-
+
+ public void setDefaultBodyConfiguration(long bodyConfigurationID){
+ if (user == null || bodyPanel == null || bodyPanel.renderable == null) {
+ return;
+ }
+ if(user.getBodyConfiguration().getBodyDataID() == bodyConfigurationID){
+ return;
+ }
+ try {
+ BodyConfigurationDocument doc = webClient.getBodyConfiguration(user.getUsername(), bodyConfigurationID);
+ if(doc == null){
+ System.err.println("Could not fetch body config");
+ return;
+ }
+ user.setBodyConfiguration(new BodyConfiguration(doc));
+ bodyPanel.bodyData = dataManager.getBodyData(user.getBodyConfiguration().getBodyDataID());
+ bodyPanel.renderable.initBody(bodyPanel.bodyData, dataManager.getBodyTexture(user.getUsername(), user.getBodyConfiguration().getBodyConfigurationID()));
+ accountDoc.setBodyConfigurationID(bodyConfigurationID);
+ webClient.updateAccount(accountDoc);
+
+ } catch(IOException e){
+ System.err.println("Could not fetch body config: " + e);
+ return;
+ }
+ }
+
private class SpacelessUser extends User {
public SpacelessUser(String username, BodyConfigurationDocument bodyConfigDoc) {
super(new Space(new SpacelessContext(), 1, "Space", "nobody", false, 0), username, new Transform3D(), new BodyConfiguration(bodyConfigDoc), null);
@@ -258,8 +293,8 @@
add(canvas, BorderLayout.CENTER);
setupUniverse();
}
-
- public boolean addUserRenderable() {
+
+ public boolean initUserRenderable() {
try {
bodyData = dataManager.getBodyData(user.getBodyConfiguration().getBodyDataID());
renderable = new J3DUserRenderable(user, bodyData, dataManager.getBodyTexture(user.getUsername(), user.getBodyConfiguration().getBodyConfigurationID()));
@@ -271,6 +306,12 @@
}
}
+ public void fetchNewBodyConfiguration() throws IOException{
+ user.setBodyConfiguration(new BodyConfiguration(webClient.getDefaultBodyConfiguration(accountDoc.getUsername())));
+ bodyData = dataManager.getBodyData(user.getBodyConfiguration().getBodyDataID());
+ renderable.initBody(bodyData, dataManager.getBodyTexture(user.getUsername(), user.getBodyConfiguration().getBodyConfigurationID()));
+ }
+
private void addDirectionalLight(Color3f color, Vector3f direction) {
DirectionalLight lightD1 = new DirectionalLight(color, direction);
lightD1.setInfluencingBounds(bounds);
@@ -357,7 +398,7 @@
validate();
new Thread() {
public void run() {
- bodyPanel.addUserRenderable();
+ bodyPanel.initUserRenderable();
completedInitialLoad = true;
}
}.start();
@@ -393,6 +434,7 @@
} catch (IOException e) {
removeAll();
validate();
+ e.printStackTrace();
add(new ErrorPanel("Unfortunately, I could not load a body."));
validate();
return null;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|