Normand Briere
2019-08-06 ae8dc339f59e972a932b9097d47271e245e4ca9a
Proto textures parsing.
2 files modified
90 ■■■■■ changed files
Grafreed.java 73 ●●●●● patch | view | raw | blame | history
GroupEditor.java 17 ●●●● patch | view | raw | blame | history
Grafreed.java
....@@ -49,6 +49,79 @@
4949
5050 }
5151 }
52
+
53
+ public static String RemovePrefix(String s, String prefix)
54
+ {
55
+ if (s != null && prefix != null && s.startsWith(prefix))
56
+ {
57
+ return s.substring(prefix.length());
58
+ }
59
+
60
+ return s;
61
+ }
62
+
63
+ static void ParseFileSystem(java.io.File dir, iResourceCallBack callback, String prefix)
64
+ {
65
+ callback.CallBack(RemovePrefix(dir.toString(),prefix).split("/"));
66
+ File[] listFiles = dir.listFiles();
67
+ if (listFiles != null)
68
+ {
69
+ for (java.io.File file : listFiles)
70
+ {
71
+ ParseFileSystem(file, callback, prefix);
72
+ }
73
+ }
74
+ }
75
+
76
+ static interface iResourceCallBack
77
+ {
78
+ void CallBack(String[] path);
79
+ }
80
+
81
+ static void ParseResources(String path, iResourceCallBack callback)
82
+ {
83
+ java.io.File jarFile = new java.io.File(Grafreed.class.getProtectionDomain().getCodeSource().getLocation().getPath());
84
+
85
+ if (jarFile.isFile())
86
+ {
87
+ // Run with JAR file
88
+ try
89
+ {
90
+ java.util.jar.JarFile jar = new java.util.jar.JarFile(jarFile);
91
+ java.util.Enumeration<java.util.jar.JarEntry> entries = jar.entries(); //gives ALL entries in jar
92
+ while (entries.hasMoreElements())
93
+ {
94
+ String name = entries.nextElement().getName();
95
+
96
+ if (name.startsWith(path + "/"))
97
+ callback.CallBack(RemovePrefix(name, path).split("/"));
98
+ }
99
+ jar.close();
100
+ } catch (Exception ex)
101
+ {
102
+ ex.printStackTrace();
103
+ }
104
+ } else
105
+ {
106
+ // Run with IDE
107
+ final java.net.URL url = Object3D.class.getResource("/" + path);
108
+ if (url != null)
109
+ {
110
+ try
111
+ {
112
+ java.io.File apps = new java.io.File(url.toURI());
113
+ ParseFileSystem(apps, callback, RemovePrefix(url.toString(), "file:"));
114
+// for (java.io.File app : apps.listFiles())
115
+// {
116
+// //System.out.println(RemovePrefix(app.toString(), RemovePrefix(url.toString(), "file:") + "/"));
117
+// }
118
+ } catch (Exception ex)
119
+ {
120
+ ex.printStackTrace();
121
+ }
122
+ }
123
+ }
124
+ }
52125
53126 public void init()
54127 {
GroupEditor.java
....@@ -16,6 +16,7 @@
1616 //import buoy.widget.BFileChooser;
1717
1818 class GroupEditor extends ObjEditor implements //iParse, //iCallBack,
19
+ Grafreed.iResourceCallBack,
1920 ObjectUI,
2021 Runnable,
2122 ActionListener,
....@@ -311,12 +312,24 @@
311312 }
312313 }
313314
314
- public void ChangeSkybox(String name)
315
+ public void CallBack(String[] path)
316
+ {
317
+ for (int i = 0; i < path.length; i++)
318
+ {
319
+ System.out.print(path[i] + "/");
320
+ }
321
+
322
+ System.out.println();
323
+ }
324
+
325
+ public void ChangeSkybox(String skybox)
315326 {
316327 //cameraView.envyoff = false;
317
- group.skyboxname = name;
328
+ group.skyboxname = skybox;
318329 group.skyboxext = "jpg";
319330 cameraView.repaint();
331
+
332
+ Grafreed.ParseResources("textures", this);
320333 }
321334
322335 //ObjEditor objEditor;