Browse Source

Implemented rudimentary XBuf Support.

MeFisto94 9 years ago
parent
commit
18c4bff0e0

+ 8 - 7
build.gradle

@@ -21,17 +21,16 @@ repositories {
     maven {
         url 'http://nifty-gui.sourceforge.net/nifty-maven-repo/'
     }
+    maven { url "https://jitpack.io" }
 
 }
 
-ext.jmeEngineVersion = "3.1.0-beta1" // Specify the Engine Version to be used.
-ext.jmeEngineVersion = "3.1.0-SNAPSHOT" // Specify the Engine Version to be used.
-ext.jmeEngineVersion = "3.1.0-master-SNAPSHOT" // Specify the Engine Version to be used.
 if (ext.jmeGitTag != null)
     ext.jmeEngineVersion = "3.1.0-" + ext.jmeGitTag + "-SNAPSHOT"
 else
     ext.jmeEngineVersion = "3.1.0-master-SNAPSHOT" // Specify the Engine Version to be used.
 
+
 configurations {
     corelibs
     optlibs
@@ -41,7 +40,9 @@ configurations {
 
 dependencies {
 
-    corelibs dep("org.jmonkeyengine:jme3-core:$jmeEngineVersion",true,true)
+    corelibs dep("com.github.xbuf:jme3_xbuf:0.8.4", false, false)
+
+    corelibs dep("org.jmonkeyengine:jme3-core:$jmeEngineVersion", true, true)
     corelibs dep("org.jmonkeyengine:jme3-desktop:$jmeEngineVersion", true, true)
     corelibs dep("org.jmonkeyengine:jme3-lwjgl:$jmeEngineVersion", true, true)
     corelibs dep("org.jmonkeyengine:jme3-effects:$jmeEngineVersion", true, true)
@@ -119,7 +120,7 @@ task copyBaseLibs(dependsOn:configurations.corelibs) <<{
    
     project.configurations.corelibs.collect {file ->
         // copy built jme3 jar files to jme3-core-baselibs
-        if (file.name.startsWith("jme3-") && !isSourceOrJavadoc(file.name)){
+        if (file.name.startsWith("jme3") && !isSourceOrJavadoc(file.name)){
             copy {
                 from file
                 into "jme3-core-baselibs/release/modules/ext/"
@@ -150,7 +151,7 @@ def isJavadoc(dep){
     return dep.endsWith("-javadoc.jar")
 }
 def isJmeDep(dep) {
-    return dep.startsWith("jme3-")
+    return dep.startsWith("jme3")
 }
 
 task createBaseXml(dependsOn: configurations.corelibs) <<{
@@ -162,7 +163,7 @@ task createBaseXml(dependsOn: configurations.corelibs) <<{
     // collect jar files
     project.configurations.corelibs.collect {file ->
         // copy built jme3 jar files to jme3-core-baselibs
-        if (file.name.startsWith("jme3-") && !isSourceOrJavadoc(file.name)){
+        if (file.name.startsWith("jme3") && !isSourceOrJavadoc(file.name)){
         
             //collect jme jars
             if(!jmeJarFiles.contains(file)){

+ 32 - 2
jme3-blender/src/com/jme3/gde/blender/BlenderAssetManagerConfigurator.java

@@ -1,11 +1,39 @@
 /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
+ *  Copyright (c) 2009-2016 jMonkeyEngine
+ *  All rights reserved.
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are
+ *  met:
+ * 
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 
+ *  * Neither the name of 'jMonkeyEngine' nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ *  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 package com.jme3.gde.blender;
 
 import com.jme3.asset.AssetManager;
 import com.jme3.gde.core.assets.AssetManagerConfigurator;
+import jme3_ext_xbuf.XbufLoader;
 
 /**
  *
@@ -14,8 +42,10 @@ import com.jme3.gde.core.assets.AssetManagerConfigurator;
 @org.openide.util.lookup.ServiceProvider(service = AssetManagerConfigurator.class)
 public class BlenderAssetManagerConfigurator implements AssetManagerConfigurator {
 
+    @Override
     public void prepareManager(AssetManager manager) {
         manager.registerLoader(com.jme3.scene.plugins.blender.BlenderModelLoader.class, "blend");
         manager.registerLoader(com.jme3.scene.plugins.blender.BlenderModelLoader.class, BlenderTool.TEMP_SUFFIX);
+        manager.registerLoader(XbufLoader.class, "xbuf");
     }
 }

+ 3 - 3
jme3-blender/src/com/jme3/gde/blender/Bundle.properties

@@ -1,5 +1,5 @@
 OpenIDE-Module-Display-Category=jMonkeyEngine
 OpenIDE-Module-Long-Description=\
-    This plugin adds support for Blender .blend files
-OpenIDE-Module-Name=Blender Support
-OpenIDE-Module-Short-Description=Adds support for Blender .blend files
+    This plugin adds support for Blender .blend files and XBuf's .xbuf files
+OpenIDE-Module-Name=Blender (and XBuf) Support
+OpenIDE-Module-Short-Description=Adds support for Blender .blend and XBuf's .xbuf files

+ 99 - 0
jme3-blender/src/com/jme3/gde/blender/XbufDataObject.java

@@ -0,0 +1,99 @@
+/*
+ *  Copyright (c) 2009-2016 jMonkeyEngine
+ *  All rights reserved.
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are
+ *  met:
+ * 
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 
+ *  * Neither the name of 'jMonkeyEngine' nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ *  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package com.jme3.gde.blender;
+
+import com.jme3.asset.ModelKey;
+import com.jme3.gde.core.assets.SpatialAssetDataObject;
+import java.io.IOException;
+import org.openide.awt.ActionID;
+import org.openide.awt.ActionReference;
+import org.openide.awt.ActionReferences;
+import org.openide.filesystems.FileObject;
+import org.openide.filesystems.MIMEResolver;
+import org.openide.loaders.DataObject;
+import org.openide.loaders.DataObjectExistsException;
+import org.openide.loaders.MultiFileLoader;
+import org.openide.util.NbBundle.Messages;
+import jme3_ext_xbuf.*;
+
+@Messages({
+    "LBL_XBUF_LOADER=XBuf Files"
+})
[email protected](
+    displayName="#LBL_XBUF_LOADER",
+    mimeType="application/xbuf",
+    extension={ "xbuf" }
+)
[email protected](
+    mimeType = "application/xbuf", 
+    iconBase = "com/jme3/gde/blender/xbuf.png",
+    displayName="#LBL_XBUF_LOADER",
+    position=300
+)
+@ActionReferences(value = {
+    @ActionReference(id =
+    @ActionID(category = "jMonkeyPlatform", id = "com.jme3.gde.core.assets.actions.ConvertModel"), path = "Loaders/application/xbuf/Actions", position = 10),
+    @ActionReference(id =
+    @ActionID(category = "jMonkeyPlatform", id = "com.jme3.gde.core.assets.actions.OpenModel"), path = "Loaders/application/xbuf/Actions", position = 20),
+    @ActionReference(id =
+    @ActionID(category = "Edit", id = "org.openide.actions.CutAction"), path = "Loaders/application/xbuf/Actions", position = 200, separatorBefore = 100),
+    @ActionReference(id =
+    @ActionID(category = "Edit", id = "org.openide.actions.CopyAction"), path = "Loaders/application/xbuf/Actions", position = 300, separatorAfter = 400),
+    @ActionReference(id =
+    @ActionID(category = "Edit", id = "org.openide.actions.DeleteAction"), path = "Loaders/application/xbuf/Actions", position = 500),
+    @ActionReference(id =
+    @ActionID(category = "System", id = "org.openide.actions.RenameAction"), path = "Loaders/application/xbuf/Actions", position = 600, separatorAfter = 700),
+    @ActionReference(id =
+    @ActionID(category = "System", id = "org.openide.actions.SaveAsTemplateAction"), path = "Loaders/application/xbuf/Actions", position = 800, separatorAfter = 900),
+    @ActionReference(id =
+    @ActionID(category = "System", id = "org.openide.actions.FileSystemAction"), path = "Loaders/application/xbuf/Actions", position = 1000, separatorAfter = 1100),
+    @ActionReference(id =
+    @ActionID(category = "System", id = "org.openide.actions.ToolsAction"), path = "Loaders/application/xbuf/Actions", position = 1200),
+    @ActionReference(id =
+    @ActionID(category = "System", id = "org.openide.actions.PropertiesAction"), path = "Loaders/application/xbuf/Actions", position = 1300)
+})
+public class XbufDataObject extends SpatialAssetDataObject {
+
+    public XbufDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException {
+        super(pf, loader);
+    }
+
+    @Override
+    public ModelKey getAssetKey() {
+        if(super.getAssetKey() instanceof XbufKey){
+            return (XbufKey)assetKey;
+        }
+        assetKey = new XbufKey(super.getAssetKey().getName());
+        return (XbufKey)assetKey;
+    }
+    
+}

BIN
jme3-blender/src/com/jme3/gde/blender/xbuf.png