Encrypting for Strings: {@link dunemask.other.StringBasedEncryption}
+ * @author Elijah
+ *
+ */
+package dunemask.other;
+
+/*
+ *
+ *
+
+
+
+
+
+
+
+
+
+
+
+
+
+ *
+ *
+ * */
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/README!.txt b/source/VoxelCraft/src/dunemasking/dunemask/resources/README!.txt
new file mode 100644
index 0000000..8a29053
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/README!.txt
@@ -0,0 +1,5 @@
+Thank You For Running This Program!
+This is an original program made by Elijah Parker.
+All Gif's,Names,Logo's,and Music are owned and Distributed by there respected owners.
+However all formatting and graphical use of these items are all original any replication or resemblence is simply coincidence.
+ENJOY!
\ No newline at end of file
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/allclasses-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/allclasses-frame.html
new file mode 100644
index 0000000..b0a6be0
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/allclasses-frame.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+All Classes
+
+
+
+
+
+All Classes
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/allclasses-noframe.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/allclasses-noframe.html
new file mode 100644
index 0000000..6856581
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/allclasses-noframe.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+All Classes
+
+
+
+
+
+All Classes
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/constant-values.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/constant-values.html
new file mode 100644
index 0000000..d2f57dc
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/constant-values.html
@@ -0,0 +1,273 @@
+
+
+
+
+
+Constant Field Values
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
dunemask.dunemasking.*
+
+
+
+dunemask.dunemasking.Setup
+
+Modifier and Type
+Constant Field
+Value
+
+
+
+
+
+ public static final int
+autoHandleSetup
+0
+
+
+
+
+ public static final int
+JarSetup
+2
+
+
+
+
+ public static final int
+Src
+1
+
+
+
+
+
+
+dunemask.dunemasking.Src
+
+Modifier and Type
+Constant Field
+Value
+
+
+
+
+
+ public static final int
+Close
+2
+
+
+
+
+ public static final int
+IDE
+0
+
+
+
+
+ public static final int
+Jar
+1
+
+
+
+
+
+
+
+
+
dunemask.util.*
+
+
+
+dunemask.util.RW
+
+Modifier and Type
+Constant Field
+Value
+
+
+
+
+
+ public static final int
+firstLine
+0
+
+
+
+
+
+
+dunemask.util.StringUtil
+
+Modifier and Type
+Constant Field
+Value
+
+
+
+
+
+ public static final java.lang.String
+alphabet
+"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ?/., !#$%^&*()_-+=~`{[}]|?><:;\\"
+
+
+
+
+ public static final java.lang.String
+tab
+"\t"
+
+
+
+
+
+
+
+
+dunemask.util.xml.XMLRW
+
+Modifier and Type
+Constant Field
+Value
+
+
+
+
+
+ public static final java.lang.String
+NOBODY
+"$none$"
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/deprecated-list.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/deprecated-list.html
new file mode 100644
index 0000000..3220b9a
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/deprecated-list.html
@@ -0,0 +1,170 @@
+
+
+
+
+
+Deprecated List
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/Dunemasking.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/Dunemasking.html
new file mode 100644
index 0000000..3697e68
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/Dunemasking.html
@@ -0,0 +1,333 @@
+
+
+
+
+
+Dunemasking
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Prev Class
+Next Class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+Dunemasking ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static java.lang.String
+appFolder (java.lang.String version)
+Returns Specific Version of Apps Folder
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+Dunemasking
+public Dunemasking()
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Prev Class
+Next Class
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/class-use/Dunemasking.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/class-use/Dunemasking.html
new file mode 100644
index 0000000..bdd52cc
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/class-use/Dunemasking.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.Dunemasking
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.Dunemasking
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/CMD.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/CMD.html
new file mode 100644
index 0000000..43238b9
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/CMD.html
@@ -0,0 +1,494 @@
+
+
+
+
+
+CMD
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Prev Class
+Next Class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+CMD ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static java.lang.String
+absolutePathFixCmd (java.lang.String command)
+
+
+static java.lang.String
+copyFileViaCmd (java.io.File in,
+ java.io.File out)
+
+
+static java.util.ArrayList<java.lang.String>
+copyFolderAndSubContetntsViaCmd (java.lang.String folderIn,
+ java.lang.String folderOut)
+
+
+static java.lang.String
+copyFolderViaCmd (java.lang.String in,
+ java.lang.String out)
+
+
+static java.lang.String
+createDirCmd (java.lang.String absPath)
+
+
+static java.lang.String
+createFileCmdCommand (java.lang.String file)
+
+
+static java.lang.String
+mkdir (java.lang.String dir)
+Creates Relative Directory
+
+
+
+static java.lang.String
+mkdirAbs (java.lang.String dir)
+Creates Absolutee Directory
+
+
+
+static void
+openCmd (java.util.ArrayList<java.lang.String> commands)
+
+
+static void
+openCmd (java.lang.String command)
+
+
+static void
+openCmd (java.lang.String[] args)
+
+
+static void
+openElevatedCmd (java.util.ArrayList<java.lang.String> commands)
+
+
+static void
+openElevatedCmd (java.lang.String command)
+
+
+static void
+openElevatedCmd (java.lang.String[] args)
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Prev Class
+Next Class
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/class-use/CMD.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/class-use/CMD.html
new file mode 100644
index 0000000..f29be30
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/class-use/CMD.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.dm.CMD
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.dm.CMD
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/package-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/package-frame.html
new file mode 100644
index 0000000..053fd89
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/package-frame.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+dunemask.dm
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/package-summary.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/package-summary.html
new file mode 100644
index 0000000..bcfb6af
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/package-summary.html
@@ -0,0 +1,142 @@
+
+
+
+
+
+dunemask.dm
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+Class Summary
+
+Class
+Description
+
+
+
+CMD
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/package-tree.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/package-tree.html
new file mode 100644
index 0000000..7452958
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/package-tree.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+dunemask.dm Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/package-use.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/package-use.html
new file mode 100644
index 0000000..ec042b9
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dm/package-use.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Package dunemask.dm
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.dm
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Capture.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Capture.html
new file mode 100644
index 0000000..f070a18
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Capture.html
@@ -0,0 +1,518 @@
+
+
+
+
+
+Capture
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.dunemasking.Capture
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+static javax.swing.JFrame
+cons
+
+
+static boolean
+consOpen
+
+
+static java.io.ByteArrayOutputStream
+errContent
+
+
+static javax.swing.JPanel
+jip
+
+
+static java.io.ByteArrayOutputStream
+outContent
+
+
+static java.io.PrintStream
+sysDefaultErr
+
+
+static java.io.PrintStream
+sysDefaultOut
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+Capture ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static void
+cleanUpStreams ()
+Turn Off Capture
+
+
+
+static void
+closeConsole ()
+Closes the institued Console
+
+
+
+static java.io.InputStream
+getConsoleIn (java.lang.String msg)
+
+
+static java.io.ByteArrayOutputStream
+getErr ()
+
+
+static java.lang.String
+getInput (java.lang.String msg)
+Get Input From User
+
+
+
+static java.io.ByteArrayOutputStream
+getOut ()
+
+
+static void
+setUpStreams ()
+Turn On Capture
+
+
+
+static void
+startConsole ()
+Start Console
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+Capture
+public Capture()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Changelog.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Changelog.html
new file mode 100644
index 0000000..f9a2777
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Changelog.html
@@ -0,0 +1,314 @@
+
+
+
+
+
+Changelog
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.dunemasking.Changelog
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+Changelog ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+Changelog
+public Changelog()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/GitHub.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/GitHub.html
new file mode 100644
index 0000000..3c7d548
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/GitHub.html
@@ -0,0 +1,438 @@
+
+
+
+
+
+GitHub
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.dunemasking.GitHub
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+static java.lang.String
+lastAddedFilePath
+
+
+static java.lang.String
+repPath
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+GitHub ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static java.io.File
+gitFile (java.lang.String reps,
+ java.lang.String genericPath)
+Get file From Dunemask Repository
+
+
+
+static java.io.File
+gitFile (java.lang.String reps,
+ java.lang.String genericPath,
+ java.io.File out)
+Get file From Dunemask Repository
+
+
+
+static java.io.File
+gitFileFromUser (java.lang.String reps,
+ java.lang.String genericPath,
+ java.lang.String user)
+Get file From Dunemask Repository
+
+
+
+static java.io.File
+gitFileFromUser (java.lang.String reps,
+ java.lang.String genericPath,
+ java.lang.String user,
+ java.io.File out)
+Get file From Dunemask Repository
+
+
+
+static void
+Station ()
+Open GithubStation
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+GitHub
+public GitHub()
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+
+
+
+
+gitFile
+public static java.io.File gitFile(java.lang.String reps,
+ java.lang.String genericPath)
+Get file From Dunemask Repository
+
+Parameters:
+genericPath
- Relative path to file from github tmp repository
+reps
- Repository
+Returns:
+file From dunemask.github.tmp directory by the specified path
+
+
+
+
+
+
+
+
+gitFile
+public static java.io.File gitFile(java.lang.String reps,
+ java.lang.String genericPath,
+ java.io.File out)
+Get file From Dunemask Repository
+
+Parameters:
+genericPath
- Relative path to file from github tmp repository
+reps
- Repository
+out
- OutFile
+Returns:
+file From dunemask.github.tmp directory by the specified path
+
+
+
+
+
+
+
+
+gitFileFromUser
+public static java.io.File gitFileFromUser(java.lang.String reps,
+ java.lang.String genericPath,
+ java.lang.String user,
+ java.io.File out)
+Get file From Dunemask Repository
+
+Parameters:
+genericPath
- Relative path to file from github tmp repository
+reps
- Repository
+user
- Github User
+Returns:
+file From dunemask.github.tmp directory by the specified path
+
+
+
+
+
+
+
+
+gitFileFromUser
+public static java.io.File gitFileFromUser(java.lang.String reps,
+ java.lang.String genericPath,
+ java.lang.String user)
+Get file From Dunemask Repository
+
+Parameters:
+genericPath
- Relative path to file from github tmp repository
+reps
- Repository
+user
- Github User
+Returns:
+file From dunemask.github.tmp directory by the specified path
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/GitHubStation.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/GitHubStation.html
new file mode 100644
index 0000000..f7e0562
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/GitHubStation.html
@@ -0,0 +1,377 @@
+
+
+
+
+
+GitHubStation
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.dunemasking.GitHubStation
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+static java.lang.String
+relPath
+
+
+static java.lang.String
+repPath
+
+
+static java.io.InputStream
+stream
+
+
+static java.util.Scanner
+sysin
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+GitHubStation ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static java.io.File
+gitFile (java.lang.String genericPath)
+Get file From Temp repository on github
+
+
+
+static void
+Start ()
+Main Entity that opens a station
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+GitHubStation
+public GitHubStation()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Setup.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Setup.html
new file mode 100644
index 0000000..187d063
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Setup.html
@@ -0,0 +1,431 @@
+
+
+
+
+
+Setup
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.dunemasking.Setup
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+static int
+autoHandleSetup
+
+
+
+
+static int
+JarSetup
+
+
+
+
+static int
+Src
+Returns the location of where the resource folder is.
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+Setup ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static void
+DMCredits ()
+Prints out all the Dunemasking Things
+
+
+
+static java.lang.String
+init (int setUpStyle,
+ java.lang.String jarName,
+ java.lang.String defaultFolderName)
+Sets up program based on how you want
+
+
+
+static void
+mainSetup ()
+Default Main Setup
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+Setup
+public Setup()
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+init
+public static java.lang.String init(int setUpStyle,
+ java.lang.String jarName,
+ java.lang.String defaultFolderName)
+Sets up program based on how you want
+
+Parameters:
+setUpStyle
- Style of setup
+jarName
- Name of the jar
+defaultFolderName
- the name for the defaultFolder
+Returns:
+Path To Dfault Folder
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Src.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Src.html
new file mode 100644
index 0000000..fa229da
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Src.html
@@ -0,0 +1,404 @@
+
+
+
+
+
+Src
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.dunemasking.Src
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+static int
+Close
+Deprecated.
+
+
+
+static int
+IDE
+Deprecated.
+
+
+
+static int
+Jar
+Deprecated.
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+Src ()
+Deprecated.
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods Deprecated Methods
+
+Modifier and Type
+Method and Description
+
+
+static java.lang.String
+defaultFolder (java.lang.String wantedJarName,
+ double version)
+Deprecated.
+Returns the location of where the resource folder is.
+
+
+
+static java.lang.String
+jarName (java.lang.String defFolder)
+Deprecated.
+Returns the Name of Jar from the Default Folder Path
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+Src
+public Src()
+Deprecated.
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+defaultFolder
+public static java.lang.String defaultFolder(java.lang.String wantedJarName,
+ double version)
+Deprecated.
+Returns the location of where the resource folder is. If non existant; it
+ creates a new one being jarName_lib (Yes it has \\ At the end)
+
+Parameters:
+wantedJarName
- The name I want for my Jar Folder
+version
- Version of Dunemasking required
+Returns:
+Returns the place where my main Resource folder is
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/StreamGobbler.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/StreamGobbler.html
new file mode 100644
index 0000000..c64db23
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/StreamGobbler.html
@@ -0,0 +1,337 @@
+
+
+
+
+
+StreamGobbler
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+java.lang.Thread
+
+
+dunemask.dunemasking.StreamGobbler
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Nested Class Summary
+
+
+
+
+Nested classes/interfaces inherited from class java.lang.Thread
+java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
+
+
+
+
+
+
+
+
+Field Summary
+
+
+
+
+Fields inherited from class java.lang.Thread
+MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+StreamGobbler (java.io.InputStream is)
+Call start function
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class java.lang.Thread
+activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+run
+public void run()
+Call start function
+
+Specified by:
+run
in interface java.lang.Runnable
+Overrides:
+run
in class java.lang.Thread
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Version.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Version.html
new file mode 100644
index 0000000..40942e9
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/Version.html
@@ -0,0 +1,343 @@
+
+
+
+
+
+Version
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.dunemasking.Version
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+Version ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+Version
+public Version()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Capture.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Capture.html
new file mode 100644
index 0000000..5c8c195
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Capture.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.dunemasking.Capture
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.dunemasking.Capture
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Changelog.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Changelog.html
new file mode 100644
index 0000000..43d5fa0
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Changelog.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.dunemasking.Changelog
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.dunemasking.Changelog
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/GitHub.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/GitHub.html
new file mode 100644
index 0000000..71f6d51
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/GitHub.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.dunemasking.GitHub
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.dunemasking.GitHub
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/GitHubStation.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/GitHubStation.html
new file mode 100644
index 0000000..f599596
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/GitHubStation.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.dunemasking.GitHubStation
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.dunemasking.GitHubStation
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Setup.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Setup.html
new file mode 100644
index 0000000..532ccc0
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Setup.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.dunemasking.Setup
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.dunemasking.Setup
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Src.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Src.html
new file mode 100644
index 0000000..aa64eb5
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Src.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.dunemasking.Src
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.dunemasking.Src
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/StreamGobbler.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/StreamGobbler.html
new file mode 100644
index 0000000..090f351
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/StreamGobbler.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.dunemasking.StreamGobbler
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.dunemasking.StreamGobbler
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Version.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Version.html
new file mode 100644
index 0000000..6efd848
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/class-use/Version.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.dunemasking.Version
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.dunemasking.Version
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/objects/package-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/objects/package-frame.html
new file mode 100644
index 0000000..b788084
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/objects/package-frame.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+dunemask.dunemasking.objects
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/objects/package-summary.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/objects/package-summary.html
new file mode 100644
index 0000000..d18d919
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/objects/package-summary.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+dunemask.dunemasking.objects
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
Package dunemask.dunemasking.objects Description
+
Tools for either working on, or setting up a Dunemasking Project
+
+Author:
+Elijah
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/objects/package-tree.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/objects/package-tree.html
new file mode 100644
index 0000000..b92e031
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/objects/package-tree.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+dunemask.dunemasking.objects Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/objects/package-use.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/objects/package-use.html
new file mode 100644
index 0000000..a736635
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/objects/package-use.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Package dunemask.dunemasking.objects
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.dunemasking.objects
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/package-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/package-frame.html
new file mode 100644
index 0000000..6ef1118
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/package-frame.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+dunemask.dunemasking
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/package-summary.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/package-summary.html
new file mode 100644
index 0000000..cf4c970
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/package-summary.html
@@ -0,0 +1,194 @@
+
+
+
+
+
+dunemask.dunemasking
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+Class Summary
+
+Class
+Description
+
+
+
+Capture
+
+TO Parse an output as a string value do outContent.parse();
+ Perform setup to capture and cleanup to close
+
+
+
+Changelog
+
+
+
+GitHub
+
+
+
+Setup
+
+SetsUp Program call the Setup.init function
+
+
+
+Src
+Deprecated
+
+
+
+
+StreamGobbler
+
+
+
+Version
+
+Handles All Dunemasking Version kinds of things
+
+
+
+
+
+
+
+
+
+
Package dunemask.dunemasking Description
+
Tools for either working on, or setting up a Dunemasking Project
+
+
Changelog Class: Changelog
+
Setup Class: Setup
+
Src Class: Src
+
Version Class: Version
+
GitHub Station: GitHub
}
+
+Author:
+Elijah
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/package-tree.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/package-tree.html
new file mode 100644
index 0000000..ada84d6
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/package-tree.html
@@ -0,0 +1,147 @@
+
+
+
+
+
+dunemask.dunemasking Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
Class Hierarchy
+
+java.lang.Object
+
+dunemask.dunemasking.Capture
+dunemask.dunemasking.Changelog
+dunemask.dunemasking.GitHub
+dunemask.dunemasking.Setup
+dunemask.dunemasking.Src
+java.lang.Thread (implements java.lang.Runnable)
+
+
+dunemask.dunemasking.Version
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/package-use.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/package-use.html
new file mode 100644
index 0000000..974cf61
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/dunemasking/package-use.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Package dunemask.dunemasking
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.dunemasking
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/ArrayListState.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/ArrayListState.html
new file mode 100644
index 0000000..f83a7ff
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/ArrayListState.html
@@ -0,0 +1,366 @@
+
+
+
+
+
+ArrayListState
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.objects.ArrayListState
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+ArrayListState ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Instance Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+void
+addState (java.util.ArrayList<java.lang.String> list,
+ java.lang.String state)
+
+
+void
+addState (java.lang.String[] list,
+ java.lang.String state)
+
+
+java.util.HashMap<java.lang.String,java.util.ArrayList<java.lang.String>>
+getMap ()
+
+
+java.util.ArrayList<java.lang.String>
+getState (java.lang.String state)
+
+
+java.lang.String[]
+getStateAsArray (java.lang.String state)
+
+
+void
+setMap (java.util.HashMap<java.lang.String,java.util.ArrayList<java.lang.String>> map)
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+ArrayListState
+public ArrayListState()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/Expression.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/Expression.html
new file mode 100644
index 0000000..0cec2e2
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/Expression.html
@@ -0,0 +1,451 @@
+
+
+
+
+
+Expression
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.objects.Expression
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+static java.lang.String
+operators
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+Expression (java.lang.String expression,
+ java.lang.String[] varNames,
+ int[] vari)
+Create an expression and call the Solve Function to solve it
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field Detail
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+Expression
+public Expression(java.lang.String expression,
+ java.lang.String[] varNames,
+ int[] vari)
+Create an expression and call the Solve Function to solve it
+
+Parameters:
+expression
- Mathematical Expression
+varNames
- Names of all Variables
+vari
- Ints that coreespond to the varNames;
+
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+
+
+
+
+getVari
+public int[] getVari()
+
+Returns:
+the vari
+
+
+
+
+
+
+
+
+solve
+public int solve()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+getAnswer
+public int getAnswer()
+
+Returns:
+the answer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/MainController.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/MainController.html
new file mode 100644
index 0000000..3e37328
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/MainController.html
@@ -0,0 +1,522 @@
+
+
+
+
+
+MainController
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.objects.MainController
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+static java.lang.String
+mediaPath
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+MainController ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Instance Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+void
+changeMedia (javafx.event.ActionEvent evt)
+MoviePlayer Action
+
+
+
+void
+Fast (javafx.event.ActionEvent evt)
+MoviePlayer Action
+
+
+
+void
+initialize (java.net.URL location,
+ java.util.ResourceBundle resources)
+
+
+void
+Pause (javafx.event.ActionEvent evt)
+MoviePlayer Action
+
+
+
+void
+Play (javafx.event.ActionEvent evt)
+MoviePlayer Action
+
+
+
+void
+Restart (javafx.event.ActionEvent evt)
+MoviePlayer Action
+
+
+
+void
+SkipAhead (javafx.event.ActionEvent evt)
+MoviePlayer Action
+
+
+
+void
+SkipBehind (javafx.event.ActionEvent evt)
+MoviePlayer Action
+
+
+
+void
+Slow (javafx.event.ActionEvent evt)
+MoviePlayer Action
+
+
+
+void
+Start (javafx.event.ActionEvent evt)
+MoviePlayer Action
+
+
+
+void
+Stop (javafx.event.ActionEvent evt)
+MoviePlayer Action
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field Detail
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+MainController
+public MainController()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/MoviePlayer.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/MoviePlayer.html
new file mode 100644
index 0000000..63063d7
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/MoviePlayer.html
@@ -0,0 +1,348 @@
+
+
+
+
+
+MoviePlayer
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+javafx.application.Application
+
+
+dunemask.objects.MoviePlayer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Nested Class Summary
+
+
+
+
+Nested classes/interfaces inherited from class javafx.application.Application
+javafx.application.Application.Parameters
+
+
+
+
+
+
+
+
+Field Summary
+
+
+
+
+Fields inherited from class javafx.application.Application
+STYLESHEET_CASPIAN, STYLESHEET_MODENA
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+MoviePlayer ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class javafx.application.Application
+getHostServices, getParameters, getUserAgentStylesheet, init, launch, launch, notifyPreloader, setUserAgentStylesheet, stop
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+MoviePlayer
+public MoviePlayer()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/MusicPlayer.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/MusicPlayer.html
new file mode 100644
index 0000000..161156b
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/MusicPlayer.html
@@ -0,0 +1,530 @@
+
+
+
+
+
+MusicPlayer
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+java.awt.Component
+
+
+java.awt.Container
+
+
+javax.swing.JComponent
+
+
+javax.swing.JInternalFrame
+
+
+dunemask.objects.MusicPlayer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Nested Class Summary
+
+
+
+
+Nested classes/interfaces inherited from class javax.swing.JInternalFrame
+javax.swing.JInternalFrame.JDesktopIcon
+
+
+
+
+
+Nested classes/interfaces inherited from class javax.swing.JComponent
+javax.swing.JComponent.AccessibleJComponent
+
+
+
+
+
+Nested classes/interfaces inherited from class java.awt.Component
+java.awt.Component.BaselineResizeBehavior
+
+
+
+
+
+
+
+
+Field Summary
+
+
+
+
+Fields inherited from class javax.swing.JInternalFrame
+CONTENT_PANE_PROPERTY, FRAME_ICON_PROPERTY, GLASS_PANE_PROPERTY, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, LAYERED_PANE_PROPERTY, MENU_BAR_PROPERTY, ROOT_PANE_PROPERTY, TITLE_PROPERTY
+
+
+
+
+
+Fields inherited from class javax.swing.JComponent
+TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
+
+
+
+
+
+Fields inherited from class java.awt.Component
+BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
+
+
+
+
+
+Fields inherited from interface javax.swing.WindowConstants
+DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
+
+
+
+
+
+Fields inherited from interface java.awt.image.ImageObserver
+ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+MusicPlayer (java.io.File trackList,
+ java.lang.String songsFolder)
+Creates a music Player
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class javax.swing.JInternalFrame
+addInternalFrameListener, dispose, doDefaultCloseAction, getAccessibleContext, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getFocusCycleRootAncestor, getFocusOwner, getFrameIcon, getGlassPane, getInternalFrameListeners, getJMenuBar, getLastCursor, getLayer, getLayeredPane, getMenuBar, getMostRecentFocusOwner, getNormalBounds, getRootPane, getTitle, getUI, getUIClassID, getWarningString, hide, isClosable, isClosed, isFocusCycleRoot, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isSelected, moveToBack, moveToFront, pack, remove, removeInternalFrameListener, reshape, restoreSubcomponentFocus, setClosable, setClosed, setContentPane, setCursor, setDefaultCloseOperation, setDesktopIcon, setFocusCycleRoot, setFrameIcon, setGlassPane, setIcon, setIconifiable, setJMenuBar, setLayer, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setNormalBounds, setResizable, setSelected, setTitle, setUI, show, toBack, toFront, updateUI
+
+
+
+
+
+Methods inherited from class javax.swing.JComponent
+addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
+
+
+
+
+
+Methods inherited from class java.awt.Container
+add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate
+
+
+
+
+
+Methods inherited from class java.awt.Component
+action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/ScaledImageLabel.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/ScaledImageLabel.html
new file mode 100644
index 0000000..cc14948
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/ScaledImageLabel.html
@@ -0,0 +1,553 @@
+
+
+
+
+
+ScaledImageLabel
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+java.awt.Component
+
+
+java.awt.Container
+
+
+javax.swing.JComponent
+
+
+javax.swing.JLabel
+
+
+dunemask.objects.ScaledImageLabel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Nested Class Summary
+
+
+
+
+Nested classes/interfaces inherited from class javax.swing.JComponent
+javax.swing.JComponent.AccessibleJComponent
+
+
+
+
+
+Nested classes/interfaces inherited from class java.awt.Component
+java.awt.Component.BaselineResizeBehavior
+
+
+
+
+
+
+
+
+Field Summary
+
+
+
+
+Fields inherited from class javax.swing.JComponent
+TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
+
+
+
+
+
+Fields inherited from class java.awt.Component
+BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
+
+
+
+
+
+Fields inherited from interface javax.swing.SwingConstants
+BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
+
+
+
+
+
+Fields inherited from interface java.awt.image.ImageObserver
+ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+ScaledImageLabel (java.awt.Image image,
+ double width,
+ double height)
+
+
+ScaledImageLabel (java.awt.Image image,
+ int width,
+ int height)
+
+
+ScaledImageLabel (java.lang.String imagePath,
+ double width,
+ double height)
+
+
+ScaledImageLabel (java.lang.String imagePath,
+ int width,
+ int height)
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class javax.swing.JLabel
+getAccessibleContext, getDisabledIcon, getDisplayedMnemonic, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getLabelFor, getText, getUI, getUIClassID, getVerticalAlignment, getVerticalTextPosition, imageUpdate, setDisabledIcon, setDisplayedMnemonic, setDisplayedMnemonic, setDisplayedMnemonicIndex, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabelFor, setText, setUI, setVerticalAlignment, setVerticalTextPosition, updateUI
+
+
+
+
+
+Methods inherited from class javax.swing.JComponent
+addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
+
+
+
+
+
+Methods inherited from class java.awt.Container
+add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate
+
+
+
+
+
+Methods inherited from class java.awt.Component
+action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/StretchIcon.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/StretchIcon.html
new file mode 100644
index 0000000..5982650
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/StretchIcon.html
@@ -0,0 +1,781 @@
+
+
+
+
+
+StretchIcon
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+javax.swing.ImageIcon
+
+
+dunemask.objects.StretchIcon
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+StretchIcon (byte[] imageData)
+Creates a StretchIcon
from an array of bytes.
+
+
+
+StretchIcon (byte[] imageData,
+ boolean proportionate)
+Creates a StretchIcon
from an array of bytes with the specified behavior.
+
+
+
+StretchIcon (byte[] imageData,
+ java.lang.String description)
+Creates a StretchIcon
from an array of bytes.
+
+
+
+StretchIcon (byte[] imageData,
+ java.lang.String description,
+ boolean proportionate)
+Creates a StretchIcon
from an array of bytes with the specified behavior.
+
+
+
+StretchIcon (java.awt.Image image)
+Creates a StretchIcon
from the image.
+
+
+
+StretchIcon (java.awt.Image image,
+ boolean proportionate)
+Creates a StretchIcon
from the image with the specified behavior.
+
+
+
+StretchIcon (java.awt.Image image,
+ java.lang.String description)
+Creates a StretchIcon
from the image.
+
+
+
+StretchIcon (java.awt.Image image,
+ java.lang.String description,
+ boolean proportionate)
+Creates a StretchIcon
from the image with the specified behavior.
+
+
+
+StretchIcon (java.lang.String filename)
+Creates a StretchIcon
from the specified file.
+
+
+
+StretchIcon (java.lang.String filename,
+ boolean proportionate)
+Creates a StretchIcon
from the specified file with the specified behavior.
+
+
+
+StretchIcon (java.lang.String filename,
+ java.lang.String description)
+Creates a StretchIcon
from the specified file.
+
+
+
+StretchIcon (java.lang.String filename,
+ java.lang.String description,
+ boolean proportionate)
+Creates a StretchIcon
from the specified file with the specified behavior.
+
+
+
+StretchIcon (java.net.URL location)
+Creates a StretchIcon
from the specified URL.
+
+
+
+StretchIcon (java.net.URL location,
+ boolean proportionate)
+Creates a StretchIcon
from the specified URL with the specified behavior.
+
+
+
+StretchIcon (java.net.URL location,
+ java.lang.String description)
+Creates a StretchIcon
from the specified URL.
+
+
+
+StretchIcon (java.net.URL location,
+ java.lang.String description,
+ boolean proportionate)
+Creates a StretchIcon
from the specified URL with the specified behavior.
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class javax.swing.ImageIcon
+getAccessibleContext, getDescription, getImage, getImageLoadStatus, getImageObserver, setDescription, setImage, setImageObserver, toString
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+
+
+
+
+StretchIcon
+public StretchIcon(byte[] imageData,
+ boolean proportionate)
+Creates a StretchIcon
from an array of bytes with the specified behavior.
+
+Parameters:
+imageData
- an array of pixels in an image format supported by
+ the AWT Toolkit, such as GIF, JPEG, or (as of 1.3) PNG
+proportionate
- true
to retain the image's aspect ratio,
+ false
to allow distortion of the image to fill the
+ component.
+See Also:
+ImageIcon.ImageIcon(byte[])
+
+
+
+
+
+
+
+
+StretchIcon
+public StretchIcon(byte[] imageData,
+ java.lang.String description)
+Creates a StretchIcon
from an array of bytes.
+
+Parameters:
+imageData
- an array of pixels in an image format supported by
+ the AWT Toolkit, such as GIF, JPEG, or (as of 1.3) PNG
+description
- a brief textual description of the image
+See Also:
+ImageIcon.ImageIcon(byte[], java.lang.String)
+
+
+
+
+
+
+
+
+StretchIcon
+public StretchIcon(byte[] imageData,
+ java.lang.String description,
+ boolean proportionate)
+Creates a StretchIcon
from an array of bytes with the specified behavior.
+
+Parameters:
+imageData
- an array of pixels in an image format supported by
+ the AWT Toolkit, such as GIF, JPEG, or (as of 1.3) PNG
+description
- a brief textual description of the image
+proportionate
- true
to retain the image's aspect ratio,
+ false
to allow distortion of the image to fill the
+ component.
+See Also:
+ImageIcon.ImageIcon(byte[])
,
+ImageIcon.ImageIcon(byte[], java.lang.String)
+
+
+
+
+
+
+
+
+
+
+
+
+StretchIcon
+public StretchIcon(java.awt.Image image,
+ boolean proportionate)
+Creates a StretchIcon
from the image with the specified behavior.
+
+Parameters:
+image
- the image
+proportionate
- true
to retain the image's aspect ratio,
+ false
to allow distortion of the image to fill the
+ component.
+See Also:
+ImageIcon.ImageIcon(java.awt.Image)
+
+
+
+
+
+
+
+
+StretchIcon
+public StretchIcon(java.awt.Image image,
+ java.lang.String description)
+Creates a StretchIcon
from the image.
+
+Parameters:
+image
- the image
+description
- a brief textual description of the image
+See Also:
+ImageIcon.ImageIcon(java.awt.Image, java.lang.String)
+
+
+
+
+
+
+
+
+StretchIcon
+public StretchIcon(java.awt.Image image,
+ java.lang.String description,
+ boolean proportionate)
+Creates a StretchIcon
from the image with the specified behavior.
+
+Parameters:
+image
- the image
+description
- a brief textual description of the image
+proportionate
- true
to retain the image's aspect ratio,
+ false
to allow distortion of the image to fill the
+ component.
+See Also:
+ImageIcon.ImageIcon(java.awt.Image, java.lang.String)
+
+
+
+
+
+
+
+
+
+
+
+
+StretchIcon
+public StretchIcon(java.lang.String filename,
+ boolean proportionate)
+Creates a StretchIcon
from the specified file with the specified behavior.
+
+Parameters:
+filename
- a String specifying a filename or path
+proportionate
- true
to retain the image's aspect ratio,
+ false
to allow distortion of the image to fill the
+ component.
+See Also:
+ImageIcon.ImageIcon(java.lang.String)
+
+
+
+
+
+
+
+
+StretchIcon
+public StretchIcon(java.lang.String filename,
+ java.lang.String description)
+Creates a StretchIcon
from the specified file.
+
+Parameters:
+filename
- a String specifying a filename or path
+description
- a brief textual description of the image
+See Also:
+ImageIcon.ImageIcon(java.lang.String, java.lang.String)
+
+
+
+
+
+
+
+
+StretchIcon
+public StretchIcon(java.lang.String filename,
+ java.lang.String description,
+ boolean proportionate)
+Creates a StretchIcon
from the specified file with the specified behavior.
+
+Parameters:
+filename
- a String specifying a filename or path
+description
- a brief textual description of the image
+proportionate
- true
to retain the image's aspect ratio,
+ false
to allow distortion of the image to fill the
+ component.
+See Also:
+ImageIcon.ImageIcon(java.awt.Image, java.lang.String)
+
+
+
+
+
+
+
+
+
+
+
+
+StretchIcon
+public StretchIcon(java.net.URL location,
+ boolean proportionate)
+Creates a StretchIcon
from the specified URL with the specified behavior.
+
+Parameters:
+location
- the URL for the image
+proportionate
- true
to retain the image's aspect ratio,
+ false
to allow distortion of the image to fill the
+ component.
+See Also:
+ImageIcon.ImageIcon(java.net.URL)
+
+
+
+
+
+
+
+
+StretchIcon
+public StretchIcon(java.net.URL location,
+ java.lang.String description)
+Creates a StretchIcon
from the specified URL.
+
+Parameters:
+location
- the URL for the image
+description
- a brief textual description of the image
+See Also:
+ImageIcon.ImageIcon(java.net.URL, java.lang.String)
+
+
+
+
+
+
+
+
+StretchIcon
+public StretchIcon(java.net.URL location,
+ java.lang.String description,
+ boolean proportionate)
+Creates a StretchIcon
from the specified URL with the specified behavior.
+
+Parameters:
+location
- the URL for the image
+description
- a brief textual description of the image
+proportionate
- true
to retain the image's aspect ratio,
+ false
to allow distortion of the image to fill the
+ component.
+See Also:
+ImageIcon.ImageIcon(java.net.URL, java.lang.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/ArrayListState.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/ArrayListState.html
new file mode 100644
index 0000000..025e0bb
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/ArrayListState.html
@@ -0,0 +1,177 @@
+
+
+
+
+
+Uses of Class dunemask.objects.ArrayListState
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/Expression.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/Expression.html
new file mode 100644
index 0000000..28f525a
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/Expression.html
@@ -0,0 +1,225 @@
+
+
+
+
+
+Uses of Class dunemask.objects.Expression
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+Packages that use Expression
+
+Package
+Description
+
+
+
+dunemask.other
+
+Other Things that you might want from Dunemasking
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Methods in dunemask.other with parameters of type Expression
+
+Modifier and Type
+Method and Description
+
+
+
+static java.lang.String
+StringBasedEncryption. decrypt (Expression keyCode,
+ java.lang.String code,
+ int[] key)
+Decrypt a String based on mathematical re-arranging
+
+
+
+static java.lang.String
+StringBasedEncryption. encrypt (Expression keyCode,
+ java.lang.String code,
+ int[] key)
+Encrypt a String based on mathematical re-arranging
+
+
+
+static java.lang.String
+StringBasedEncryption. layeredDecryption (java.lang.String text,
+ int layers,
+ Expression [] exp,
+ int[][] keys)
+Decrypt a string that's been put through layers of DM encryption
+
+
+
+static java.lang.String
+StringBasedEncryption. layeredEncryption (java.lang.String text,
+ int layers,
+ Expression [] exp,
+ int[][] keys)
+Encrypt a String through layers of DM encryption
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/MainController.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/MainController.html
new file mode 100644
index 0000000..e92dc09
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/MainController.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.objects.MainController
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.objects.MainController
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/MoviePlayer.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/MoviePlayer.html
new file mode 100644
index 0000000..8e8f491
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/MoviePlayer.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.objects.MoviePlayer
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.objects.MoviePlayer
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/MusicPlayer.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/MusicPlayer.html
new file mode 100644
index 0000000..532e635
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/MusicPlayer.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.objects.MusicPlayer
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.objects.MusicPlayer
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/ScaledImageLabel.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/ScaledImageLabel.html
new file mode 100644
index 0000000..75882de
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/ScaledImageLabel.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.objects.ScaledImageLabel
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.objects.ScaledImageLabel
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/StretchIcon.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/StretchIcon.html
new file mode 100644
index 0000000..18c08ad
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/class-use/StretchIcon.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.objects.StretchIcon
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.objects.StretchIcon
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/MovieLauncher.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/MovieLauncher.html
new file mode 100644
index 0000000..3d48f48
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/MovieLauncher.html
@@ -0,0 +1,389 @@
+
+
+
+
+
+MovieLauncher
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+javafx.application.Application
+
+
+dunemask.objects.movieplayer.MovieLauncher
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Nested Class Summary
+
+
+
+
+Nested classes/interfaces inherited from class javafx.application.Application
+javafx.application.Application.Parameters
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+static MoviePlayer
+current
+
+
+static javax.swing.JFrame
+frame
+
+
+
+
+
+
+Fields inherited from class javafx.application.Application
+STYLESHEET_CASPIAN, STYLESHEET_MODENA
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+MovieLauncher ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class javafx.application.Application
+getHostServices, getParameters, getUserAgentStylesheet, init, launch, launch, notifyPreloader, setUserAgentStylesheet, stop
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+MovieLauncher
+public MovieLauncher()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/MoviePlayer.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/MoviePlayer.html
new file mode 100644
index 0000000..3d60c8b
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/MoviePlayer.html
@@ -0,0 +1,1061 @@
+
+
+
+
+
+MoviePlayer
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.objects.movieplayer.MoviePlayer
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+java.lang.Runnable
+pause
+
+
+java.lang.Runnable
+play
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+MoviePlayer (javafx.scene.media.Media media)
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+resetSpeed
+public void resetSpeed()
+MoviePlayer Action
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+SkipToEnd
+public void SkipToEnd()
+MoviePlayer Action
+
+
+
+
+
+
+
+SkipAhead
+public void SkipAhead()
+MoviePlayer Action
+
+
+
+
+
+
+
+SkipBehind
+public void SkipBehind()
+MoviePlayer Action
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+playPause
+public void playPause()
+
+
+
+
+
+
+
+SetOnLoop
+public void SetOnLoop()
+MoviePlayer Action
+
+
+
+
+
+
+
+Slow
+public void Slow()
+MoviePlayer Action
+
+
+
+
+
+
+
+Fast
+public void Fast()
+MoviePlayer Action
+
+
+
+
+
+
+
+Restart
+public void Restart()
+MoviePlayer Action
+
+
+
+
+
+
+
+Stop
+public void Stop()
+MoviePlayer Action
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/class-use/MovieLauncher.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/class-use/MovieLauncher.html
new file mode 100644
index 0000000..f5134d2
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/class-use/MovieLauncher.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.objects.movieplayer.MovieLauncher
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.objects.movieplayer.MovieLauncher
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/class-use/MoviePlayer.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/class-use/MoviePlayer.html
new file mode 100644
index 0000000..daae283
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/class-use/MoviePlayer.html
@@ -0,0 +1,164 @@
+
+
+
+
+
+Uses of Class dunemask.objects.movieplayer.MoviePlayer
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/package-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/package-frame.html
new file mode 100644
index 0000000..33aa5d2
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/package-frame.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+dunemask.objects.movieplayer
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/package-summary.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/package-summary.html
new file mode 100644
index 0000000..ca0f50f
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/package-summary.html
@@ -0,0 +1,146 @@
+
+
+
+
+
+dunemask.objects.movieplayer
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/package-tree.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/package-tree.html
new file mode 100644
index 0000000..80ccb78
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/package-tree.html
@@ -0,0 +1,142 @@
+
+
+
+
+
+dunemask.objects.movieplayer Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
Class Hierarchy
+
+java.lang.Object
+
+javafx.application.Application
+
+
+dunemask.objects.movieplayer.MoviePlayer (implements javafx.fxml.Initializable)
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/package-use.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/package-use.html
new file mode 100644
index 0000000..51e0469
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/movieplayer/package-use.html
@@ -0,0 +1,157 @@
+
+
+
+
+
+Uses of Package dunemask.objects.movieplayer
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/package-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/package-frame.html
new file mode 100644
index 0000000..eb7b295
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/package-frame.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+dunemask.objects
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/package-summary.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/package-summary.html
new file mode 100644
index 0000000..889929e
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/package-summary.html
@@ -0,0 +1,186 @@
+
+
+
+
+
+dunemask.objects
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+Class Summary
+
+Class
+Description
+
+
+
+ArrayListState
+
+
+
+Expression
+
+Create an expression and call the Solve Function to solve it
+
+ * @author Elijah
+
+
+
+MusicPlayer
+
+Create a new JInternalFrame Music Player using
MediaUtil
+
+
+
+ScaledImageLabel
+
+Creates a JLabel with the Scaled instance of the params defined
+
+
+
+StretchIcon
+
+An Icon
that scales its image to fill the component area,
+ excluding any border or insets, optionally maintaining the image's aspect
+ ratio by padding and centering the scaled image horizontally or vertically.
+
+
+
+
+
+
+
+
+
+
Package dunemask.objects Description
+
Useful Objects that programs can use
+
+Author:
+Elijah
+ MediaUtil Music Player: MusicPlayer
+ JLabel image: ScaledImageLabel
+ * Math Expressions: Expression
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/package-tree.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/package-tree.html
new file mode 100644
index 0000000..db1309a
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/package-tree.html
@@ -0,0 +1,165 @@
+
+
+
+
+
+dunemask.objects Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
Class Hierarchy
+
+java.lang.Object
+
+dunemask.objects.ArrayListState
+java.awt.Component (implements java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable)
+
+java.awt.Container
+
+javax.swing.JComponent (implements java.io.Serializable)
+
+javax.swing.JInternalFrame (implements javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants)
+
+
+javax.swing.JLabel (implements javax.accessibility.Accessible, javax.swing.SwingConstants)
+
+
+
+
+
+
+
+
+dunemask.objects.Expression (implements java.io.Serializable)
+javax.swing.ImageIcon (implements javax.accessibility.Accessible, javax.swing.Icon, java.io.Serializable)
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/package-use.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/package-use.html
new file mode 100644
index 0000000..7e12e1a
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/objects/package-use.html
@@ -0,0 +1,182 @@
+
+
+
+
+
+Uses of Package dunemask.objects
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/StringBasedEncryption.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/StringBasedEncryption.html
new file mode 100644
index 0000000..9151792
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/StringBasedEncryption.html
@@ -0,0 +1,453 @@
+
+
+
+
+
+StringBasedEncryption
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Prev Class
+Next Class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.other.StringBasedEncryption
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+
+
+
+
+
+
+
+Constructor Summary
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static java.lang.String
+decrypt (Expression keyCode,
+ java.lang.String code,
+ int[] key)
+Decrypt a String based on mathematical re-arranging
+
+
+
+static java.lang.String
+encrypt (Expression keyCode,
+ java.lang.String code,
+ int[] key)
+Encrypt a String based on mathematical re-arranging
+
+
+
+static java.lang.String
+layeredDecryption (java.lang.String text,
+ int layers,
+ Expression [] exp,
+ int[][] keys)
+Decrypt a string that's been put through layers of DM encryption
+
+
+
+static java.lang.String
+layeredEncryption (java.lang.String text,
+ int layers,
+ Expression [] exp,
+ int[][] keys)
+Encrypt a String through layers of DM encryption
+
+
+
+static Expression
+RandomEncryptionKeyCode (int keyNumber)
+Randomly creates keys and expressions
+ (To get keys call expression.getVari() )
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+decrypt
+public static java.lang.String decrypt(Expression keyCode,
+ java.lang.String code,
+ int[] key)
+Decrypt a String based on mathematical re-arranging
+
+Parameters:
+keyCode
- expression for Solving
+code
- Text to be decrypted
+key
- to decryption
+Returns:
+the Decrypted String using key provided
+
+
+
+
+
+
+
+
+encrypt
+public static java.lang.String encrypt(Expression keyCode,
+ java.lang.String code,
+ int[] key)
+Encrypt a String based on mathematical re-arranging
+
+Parameters:
+keyCode
- expression for Solving
+code
- Text to be encrypted
+key
- to for encoding
+Returns:
+the Encrypted String using key provided
+
+
+
+
+
+
+
+
+
+
+
+
+layeredDecryption
+public static java.lang.String layeredDecryption(java.lang.String text,
+ int layers,
+ Expression [] exp,
+ int[][] keys)
+Decrypt a string that's been put through layers of DM encryption
+
+Parameters:
+text
- Text that's been Encoded
+layers
- Layers that the text has been through
+exp
- Expressions that the code has been through
+keys
- Key array that solves the expression
+Returns:
+decrypted Text
+
+
+
+
+
+
+
+
+layeredEncryption
+public static java.lang.String layeredEncryption(java.lang.String text,
+ int layers,
+ Expression [] exp,
+ int[][] keys)
+Encrypt a String through layers of DM encryption
+
+Parameters:
+text
- Text that will be encrypted
+layers
- Layers that the text will go through
+exp
- Expressions that the code has been through
+keys
- Key array that solves the expression
+Returns:
+decrypted Text
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Prev Class
+Next Class
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/class-use/StringBasedEncryption.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/class-use/StringBasedEncryption.html
new file mode 100644
index 0000000..fc53924
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/class-use/StringBasedEncryption.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.other.StringBasedEncryption
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.other.StringBasedEncryption
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/package-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/package-frame.html
new file mode 100644
index 0000000..52e9a8c
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/package-frame.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+dunemask.other
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/package-summary.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/package-summary.html
new file mode 100644
index 0000000..23d40a9
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/package-summary.html
@@ -0,0 +1,156 @@
+
+
+
+
+
+dunemask.other
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
Package dunemask.other Description
+
+
+Author:
+Elijah
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/package-tree.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/package-tree.html
new file mode 100644
index 0000000..ceace88
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/package-tree.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+dunemask.other Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/package-use.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/package-use.html
new file mode 100644
index 0000000..e747107
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/other/package-use.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Package dunemask.other
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.other
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/package-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/package-frame.html
new file mode 100644
index 0000000..74cbd9f
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/package-frame.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+dunemask
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/package-summary.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/package-summary.html
new file mode 100644
index 0000000..3b1d345
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/package-summary.html
@@ -0,0 +1,161 @@
+
+
+
+
+
+dunemask
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+Class Summary
+
+Class
+Description
+
+
+
+Dunemasking
+
+
+
+
+
+
+
+
+
+
Package dunemask Description
+
+
+Author:
+Elijah
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/package-tree.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/package-tree.html
new file mode 100644
index 0000000..e5addd0
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/package-tree.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+dunemask Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/package-use.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/package-use.html
new file mode 100644
index 0000000..4632733
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/package-use.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Package dunemask
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/github/package-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/github/package-frame.html
new file mode 100644
index 0000000..f78cc93
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/github/package-frame.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+dunemask.resources.github
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/github/package-summary.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/github/package-summary.html
new file mode 100644
index 0000000..262633e
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/github/package-summary.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+dunemask.resources.github
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/github/package-tree.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/github/package-tree.html
new file mode 100644
index 0000000..a4a94ee
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/github/package-tree.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+dunemask.resources.github Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/github/package-use.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/github/package-use.html
new file mode 100644
index 0000000..9df0286
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/github/package-use.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Package dunemask.resources.github
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.resources.github
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/media/package-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/media/package-frame.html
new file mode 100644
index 0000000..ff67cd9
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/media/package-frame.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+dunemask.resources.media
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/media/package-summary.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/media/package-summary.html
new file mode 100644
index 0000000..b08a78a
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/media/package-summary.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+dunemask.resources.media
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/media/package-tree.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/media/package-tree.html
new file mode 100644
index 0000000..97f84dd
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/media/package-tree.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+dunemask.resources.media Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/media/package-use.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/media/package-use.html
new file mode 100644
index 0000000..4fd77ce
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/media/package-use.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Package dunemask.resources.media
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.resources.media
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/package-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/package-frame.html
new file mode 100644
index 0000000..8bd2077
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/package-frame.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+dunemask.resources
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/package-summary.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/package-summary.html
new file mode 100644
index 0000000..37b0fe6
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/package-summary.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+dunemask.resources
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
Package dunemask.resources Description
+
Resources for Dunemasking
+
+Author:
+Elijah
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/package-tree.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/package-tree.html
new file mode 100644
index 0000000..f4cc2b6
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/package-tree.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+dunemask.resources Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/package-use.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/package-use.html
new file mode 100644
index 0000000..46b77e5
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/resources/package-use.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Package dunemask.resources
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.resources
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/AudioUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/AudioUtil.html
new file mode 100644
index 0000000..1162eaf
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/AudioUtil.html
@@ -0,0 +1,422 @@
+
+
+
+
+
+AudioUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.util.AudioUtil
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+static javax.sound.sampled.Clip
+clip
+
+
+static int
+pauseLocation
+
+
+static java.io.File
+song
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+AudioUtil ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static void
+closeClip ()
+Stops current playing song (If playing)
+
+
+
+static void
+pause ()
+Stores current location and closes clip
+
+
+
+static void
+playOnce (java.io.File song)
+Plays song or short Sound clip once
+
+
+
+static void
+resumeSong (java.io.File song)
+Puts the song where the held location is
+
+
+
+static void
+songLoop (java.io.File song)
+Plays song on loop
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+AudioUtil
+public AudioUtil()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/FileUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/FileUtil.html
new file mode 100644
index 0000000..1849dff
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/FileUtil.html
@@ -0,0 +1,771 @@
+
+
+
+
+
+FileUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.util.FileUtil
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+FileUtil ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static boolean
+alreadyInFile (java.io.File file,
+ java.lang.String text)
+Scans the File to see if the text is already in the list
+
+
+
+static java.lang.String
+changeExtension (java.lang.String fileName,
+ java.lang.String newExtension)
+Requires a period in the FileName, and no period in the extension name
+
+
+
+static void
+deleteAllSubFolders (java.io.File file)
+Recursively delete Sub Files and Folders
+
+
+
+static boolean
+fileExists (java.io.File dirFile,
+ java.io.File file)
+Tests File exists within a dir
+
+
+
+static java.lang.String
+filePathFix (java.lang.String filePath)
+Replace all Back Slashes with forward ones
+
+
+
+static java.lang.String
+filePathFixReverse (java.lang.String filePath)
+Replace all Forward Slashes with back ones
+
+
+
+static int
+findInDocument (java.io.File file,
+ java.lang.String text)
+Find a line of text in file, Case Not sensitive
+
+
+
+static int
+findInDocumentBounds (java.io.File file,
+ java.lang.String text,
+ int low,
+ int high)
+Find a line of text in file, Case Not sensitive
+
+
+
+static java.lang.String
+fixSpaces (java.lang.String path)
+Replaces all ' ' with '%20'
+
+
+
+static java.lang.String
+fixToSpaces (java.lang.String path)
+Replaces all '%20' with ' '
+
+
+
+static java.io.File[]
+getAllSubFiles (java.io.File dir)
+Get a list of files and folders from a package
+
+
+
+static java.io.File
+getResource (java.lang.String ResourceDirectory)
+Get File From relative Location "starts at src folder" Inside src folder
+ "resources/README!.txt"; Use that
+
+
+
+static java.net.URL
+getResourceURL (java.lang.String ResourceDirectory)
+Get File From relative Location "starts at src folder" Inside src folder
+ "resources/README!.txt"; Use that
+
+
+
+static java.io.File
+getWebFile (java.lang.String address)
+Get File From Specified URL
+
+
+
+static java.io.File
+getWebFile (java.lang.String address,
+ java.io.File file)
+Get File From Specified URL and download to Wanted 'File'
+
+
+
+static int
+lastInstanceOfText (java.io.File file,
+ java.lang.String text)
+Get The last line where a specific text was mentioned
+
+
+
+static int
+lastLine (java.io.File file)
+Gets the last Line in the document
+
+
+
+static int
+linesInFile (java.io.File file)
+Reads the number of lines that are written in the file
+
+
+
+static int
+nextFreeLine (java.io.File file)
+Gets the next Blank Line In the document
+
+
+
+static java.lang.String
+removeExtension (java.lang.String fileName)
+
+
+static void
+writeFile (java.io.File fileIn,
+ java.io.File fileOut)
+Write File From "File"
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+FileUtil
+public FileUtil()
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+
+
+
+
+lastInstanceOfText
+public static int lastInstanceOfText(java.io.File file,
+ java.lang.String text)
+Get The last line where a specific text was mentioned
+
+Parameters:
+file
- File Searched
+text
- Text wanted
+Returns:
+Return line where text was found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+changeExtension
+public static java.lang.String changeExtension(java.lang.String fileName,
+ java.lang.String newExtension)
+Requires a period in the FileName, and no period in the extension name
+
+Parameters:
+fileName
- name of file
+newExtension
- extension name without period
+Returns:
+Previous extension removed, new extension added.
+
+
+
+
+
+
+
+
+
+
+
+
+alreadyInFile
+public static boolean alreadyInFile(java.io.File file,
+ java.lang.String text)
+Scans the File to see if the text is already in the list
+
+Parameters:
+file
- to search
+text
- to look for
+Returns:
+Whether it's in the list or not.
+
+
+
+
+
+
+
+
+
+
+
+
+findInDocumentBounds
+public static int findInDocumentBounds(java.io.File file,
+ java.lang.String text,
+ int low,
+ int high)
+Find a line of text in file, Case Not sensitive
+
Returns First instance found
+
+Parameters:
+file
- File to search
+text
- Text to be searched for
+low
- Lower Bounds to be searched
+high
- Max Bounds to be searched
+Returns:
+The line where the text is located
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/JarUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/JarUtil.html
new file mode 100644
index 0000000..15c1f0b
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/JarUtil.html
@@ -0,0 +1,523 @@
+
+
+
+
+
+JarUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+JarUtil ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static boolean
+alreadyExisits (java.lang.String jarName,
+ java.io.File jarDir)
+Finds out if jarName_lib already exists
+
+
+
+static void
+extractAll (java.io.File jar,
+ java.lang.String destination)
+
+
+static void
+extractAll (java.lang.String dir,
+ java.lang.String jarName,
+ java.lang.String resourceFolderName)
+Extracts jar into new folder named: jarName_lib
+
+
+
+static void
+extractAllOpenDialog (java.io.File jar,
+ java.lang.String destination)
+Extracts jar into new folder named: jarName_lib Displays Small Progress Bar
+ While Extracting
+
+
+
+static void
+extractAllOpenDialog (java.lang.String dir,
+ java.lang.String jarName,
+ java.lang.String resourceFolderName)
+Extracts jar into new folder named: jarName_lib Displays Small Progress Bar
+ While Extracting
+
+
+
+static java.lang.String
+findEntry (java.io.File jarFile,
+ java.lang.String res)
+
+
+static java.lang.String
+getProgramPath ()
+
+
+static void
+init ()
+Creates small frame (Should be used for JProgressBar)
+
+
+
+static boolean
+isJar (java.lang.String jarName)
+Is Jar Returns wether it's a jar or not given a jar name
+
+
+
+static java.lang.String[]
+listJarEntries (java.io.File jarFile)
+Get the names of all entries in the jar
+
+
+
+static java.io.File
+loadFileInJar (java.io.File jar,
+ java.lang.String res)
+Load File In Jar
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+JarUtil
+public JarUtil()
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+extractAllOpenDialog
+public static void extractAllOpenDialog(java.io.File jar,
+ java.lang.String destination)
+ throws java.io.IOException
+Extracts jar into new folder named: jarName_lib Displays Small Progress Bar
+ While Extracting
+
+Parameters:
+jarName
- Name of Jar
+destination
- destination
+Throws:
+java.io.IOException
- If the file don't exist, it's not gonna work
+
+
+
+
+
+
+
+
+extractAllOpenDialog
+public static void extractAllOpenDialog(java.lang.String dir,
+ java.lang.String jarName,
+ java.lang.String resourceFolderName)
+ throws java.io.IOException
+Extracts jar into new folder named: jarName_lib Displays Small Progress Bar
+ While Extracting
+
+Parameters:
+dir
- Directory to the jar
+jarName
- Name of Jar
+resourceFolderName
- Name of folder that will become the resource folder
+Throws:
+java.io.IOException
- If the file don't exist, it's not gonna work
+
+
+
+
+
+
+
+
+alreadyExisits
+public static boolean alreadyExisits(java.lang.String jarName,
+ java.io.File jarDir)
+Finds out if jarName_lib already exists
+
+Parameters:
+jarName
- Name of Jar
+jarDir
- Directory where jar is located
+Returns:
+whether the jarname_lib already exists
+
+
+
+
+
+
+
+
+
+
+
+
+extractAll
+public static void extractAll(java.lang.String dir,
+ java.lang.String jarName,
+ java.lang.String resourceFolderName)
+ throws java.io.IOException
+Extracts jar into new folder named: jarName_lib
+
+Parameters:
+dir
- Directory to the jar
+jarName
- Name of Jar
+resourceFolderName
- name of resource folder
+Throws:
+java.io.IOException
- If the jarFile don't exists it's gonna blow up
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/MathUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/MathUtil.html
new file mode 100644
index 0000000..ce207ad
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/MathUtil.html
@@ -0,0 +1,330 @@
+
+
+
+
+
+MathUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.util.MathUtil
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+MathUtil ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static boolean
+isEven (int number)
+Returns if number is even
+
+
+
+static boolean
+isOdd (int number)
+Returns if number is odd
+
+
+
+static double
+removeDecimal (double doub)
+Removes the decimal
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+MathUtil
+public MathUtil()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/MediaUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/MediaUtil.html
new file mode 100644
index 0000000..188df6b
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/MediaUtil.html
@@ -0,0 +1,392 @@
+
+
+
+
+
+MediaUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.util.MediaUtil
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+MediaUtil ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static void
+pause ()
+Pauses Media
+
+
+
+static void
+play (java.io.File song)
+Play a song Once
+
+
+
+static void
+playRepeat (java.io.File song)
+Play A Song On Repeat
+
+
+
+static void
+removeRepeat ()
+If Player was On Repeat this will remove it
+
+
+
+static void
+resume ()
+Resumes song if not null
+
+
+
+static void
+setOnRepeat ()
+Set Song on Repeat
+
+
+
+static void
+stop ()
+Stops the media and puts the cursors to 0
+ And Removes Loop Modifier
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+MediaUtil
+public MediaUtil()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/ObjectUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/ObjectUtil.html
new file mode 100644
index 0000000..fe5e934
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/ObjectUtil.html
@@ -0,0 +1,359 @@
+
+
+
+
+
+ObjectUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.util.ObjectUtil
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+ObjectUtil ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods Deprecated Methods
+
+Modifier and Type
+Method and Description
+
+
+static boolean
+alreadyInList (java.lang.Object[] array,
+ java.lang.Object ob)
+Scans the file to see if the text is already in the list
+
+
+
+static java.lang.Object[]
+createObjectNotInLIst (java.lang.Object[] array,
+ java.lang.Object ob)
+Deprecated.
+
+
+
+static java.lang.Object
+readObject (java.io.File file)
+Reads object From specified file, (Needs to be casted to desired variable)
+
+
+
+static void
+writeObject (java.io.File file,
+ java.lang.Object ob)
+Writes an object to specified file (make sure it has extension)
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+ObjectUtil
+public ObjectUtil()
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+writeObject
+public static void writeObject(java.io.File file,
+ java.lang.Object ob)
+Writes an object to specified file (make sure it has extension)
+
+Parameters:
+file
- File where object is stored
+ob
- Object that will be stored
+
+
+
+
+
+
+
+
+readObject
+public static java.lang.Object readObject(java.io.File file)
+Reads object From specified file, (Needs to be casted to desired variable)
+
+Parameters:
+file
- File to be read
+Returns:
+return object from file
+
+
+
+
+
+
+
+
+alreadyInList
+public static boolean alreadyInList(java.lang.Object[] array,
+ java.lang.Object ob)
+Scans the file to see if the text is already in the list
+
+Parameters:
+array
- Obj array to be searched
+ob
- to look for
+Returns:
+Whether it's in the list or not.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/RW.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/RW.html
new file mode 100644
index 0000000..384beea
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/RW.html
@@ -0,0 +1,535 @@
+
+
+
+
+
+RW
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+static int
+firstLine
+First Line In RW Document starts here
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+RW ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods Deprecated Methods
+
+Modifier and Type
+Method and Description
+
+
+static void
+cleanFile (java.io.File file)
+Deprecated.
+
+
+
+static void
+insertLine (java.io.File file,
+ java.lang.String text,
+ int line)
+Insert Line To Specified file
+
+
+
+static void
+insertLines (java.io.File file,
+ java.lang.String[] text,
+ int startLine)
+Insert Lines in Specified file
+
+
+
+static java.lang.String
+read (java.io.File file,
+ int line)
+Reads a line of text from file
+
+
+
+static java.lang.String[]
+read (java.io.File file,
+ int start,
+ int end)
+Reads a lines of text from file
+
+
+
+static java.lang.String[]
+readAll (java.io.File file)
+Reads All Lines In The File
+
+
+
+static void
+write (java.io.File file,
+ java.lang.String[] text,
+ int startLine)
+Write String array To Specified file
+
+
+
+static void
+write (java.io.File file,
+ java.lang.String text,
+ int line)
+Write Line To Specified file
+
+
+
+static void
+writeAll (java.io.File file,
+ java.lang.String[] text)
+Write String array To Specified file
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field Detail
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+insertLine
+public static void insertLine(java.io.File file,
+ java.lang.String text,
+ int line)
+Insert Line To Specified file
+
+Parameters:
+file
- File Where line is inserted
+text
- Text to be Inserted
+line
- Line where text will be inserted
+
+
+
+
+
+
+
+
+insertLines
+public static void insertLines(java.io.File file,
+ java.lang.String[] text,
+ int startLine)
+Insert Lines in Specified file
+
+Parameters:
+file
- File Where lines are written
+text
- Text to be Inserted
+startLine
- StartLine where text will be inserted
+
+
+
+
+
+
+
+
+write
+public static void write(java.io.File file,
+ java.lang.String text,
+ int line)
+Write Line To Specified file
+
+Parameters:
+file
- File Where line is written
+text
- Text to be Written
+line
- Line where text will be written
+
+
+
+
+
+
+
+
+
+
+
+
+writeAll
+public static void writeAll(java.io.File file,
+ java.lang.String[] text)
+Write String array To Specified file
+
+Parameters:
+file
- File Where line is written
+text
- String Array to be Written
+
+
+
+
+
+
+
+
+write
+public static void write(java.io.File file,
+ java.lang.String[] text,
+ int startLine)
+Write String array To Specified file
+
+Parameters:
+file
- File Where line is written
+text
- String Array to be Written
+startLine
- Line where the writer will start writing
+
+
+
+
+
+
+
+
+
+
+
+
+read
+public static java.lang.String[] read(java.io.File file,
+ int start,
+ int end)
+Reads a lines of text from file
+
+Parameters:
+file
- File to be read
+start
- Line to start reading from
+end
- Line to end reading at
+Returns:
+Returns string array of text read
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/StringUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/StringUtil.html
new file mode 100644
index 0000000..c84d5e6
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/StringUtil.html
@@ -0,0 +1,457 @@
+
+
+
+
+
+StringUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.util.StringUtil
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+static java.lang.String
+alphabet
+The Alphabet To Be Searched for Random Char Gen.
+
+
+
+static java.lang.String
+tab
+Tab WhiteSpace
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+StringUtil ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static boolean
+alreadyInList (java.lang.String[] sArray,
+ java.lang.String text)
+Scans the file to see if the text is already in the list (Case Sensitive)
+
+
+
+static boolean
+containsIgnoreCase (java.lang.String one,
+ java.lang.String two)
+Compares to see if string one contains string two
+
+
+
+static boolean
+filteredItem (java.lang.String text,
+ java.lang.String[] exceptions,
+ java.lang.String[] requirements)
+Returns true if it met the Criterea (Case Sensitive)
+
+
+
+static boolean
+filteredItemIgnoreCase (java.lang.String text,
+ java.lang.String[] exceptions,
+ java.lang.String[] requirements)
+Returns true if it met the Criterea (Not Case Sensitive)
+
+
+
+static char
+randomCharacterGenerator (java.lang.String[] chosen)
+Gets a random character that isn't in a list already New Character from:
+ 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ?/.,
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+StringUtil
+public StringUtil()
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+containsIgnoreCase
+public static boolean containsIgnoreCase(java.lang.String one,
+ java.lang.String two)
+Compares to see if string one contains string two
+
+Parameters:
+one,
- String One
+two,
- String two
+Returns:
+If String one contains string two ignoring case sensitive
+
+
+
+
+
+
+
+
+filteredItem
+public static boolean filteredItem(java.lang.String text,
+ java.lang.String[] exceptions,
+ java.lang.String[] requirements)
+Returns true if it met the Criterea (Case Sensitive)
+
+Parameters:
+text
- Text being run through excpetions
+exceptions
- List of things that the text cannot contain
+requirements
- List of things that the text Must Contain
+Returns:
+Returns true if it made it through the filter false otherwise
+
+
+
+
+
+
+
+
+filteredItemIgnoreCase
+public static boolean filteredItemIgnoreCase(java.lang.String text,
+ java.lang.String[] exceptions,
+ java.lang.String[] requirements)
+Returns true if it met the Criterea (Not Case Sensitive)
+
+Parameters:
+text
- Text being run through excpetions
+exceptions
- List of things that the text cannot contain
+requirements
- List of things that the text Must Contain
+Returns:
+Returns true if it made it through the filter false otherwise
+
+
+
+
+
+
+
+
+randomCharacterGenerator
+public static char randomCharacterGenerator(java.lang.String[] chosen)
+Gets a random character that isn't in a list already New Character from:
+ 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ?/.,
+
+Parameters:
+chosen
- The String array that can't have the specific character
+Returns:
+Returns random character that is not in the list
+
+
+
+
+
+
+
+
+alreadyInList
+public static boolean alreadyInList(java.lang.String[] sArray,
+ java.lang.String text)
+Scans the file to see if the text is already in the list (Case Sensitive)
+
+Parameters:
+sArray
- String array to be searched
+text
- to look for
+Returns:
+Whether it's in the list or not.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/AudioUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/AudioUtil.html
new file mode 100644
index 0000000..273c328
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/AudioUtil.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.util.AudioUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.util.AudioUtil
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/FileUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/FileUtil.html
new file mode 100644
index 0000000..60904fb
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/FileUtil.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.util.FileUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.util.FileUtil
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/JarUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/JarUtil.html
new file mode 100644
index 0000000..472123e
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/JarUtil.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.util.JarUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.util.JarUtil
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/MathUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/MathUtil.html
new file mode 100644
index 0000000..d4795c0
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/MathUtil.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.util.MathUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.util.MathUtil
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/MediaUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/MediaUtil.html
new file mode 100644
index 0000000..cbe6f3d
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/MediaUtil.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.util.MediaUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.util.MediaUtil
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/ObjectUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/ObjectUtil.html
new file mode 100644
index 0000000..865f9b5
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/ObjectUtil.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.util.ObjectUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.util.ObjectUtil
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/RW.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/RW.html
new file mode 100644
index 0000000..7363c1e
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/RW.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.util.RW
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.util.RW
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/StringUtil.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/StringUtil.html
new file mode 100644
index 0000000..08641e6
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/class-use/StringUtil.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.util.StringUtil
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.util.StringUtil
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/package-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/package-frame.html
new file mode 100644
index 0000000..16d5618
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/package-frame.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+dunemask.util
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/package-summary.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/package-summary.html
new file mode 100644
index 0000000..9c84f2e
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/package-summary.html
@@ -0,0 +1,207 @@
+
+
+
+
+
+dunemask.util
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+Class Summary
+
+Class
+Description
+
+
+
+AudioUtil
+
+Used for playing audio clips (.WAV files)
+
+
+
+FileUtil
+
+Dunemasking FileUtil for easy editing and changing of filesv
+
+
+
+JarUtil
+
+Jar Utilities
+
+
+
+MathUtil
+
+Dunemasking MathUtil is a tool for the IDE development
+
+
+
+MediaUtil
+
+Media Player for mp3 and wav files, Uses deprectaed API
+
+
+
+ObjectUtil
+
+Does Some Object Editing
+
+
+
+RW
+
+Reads And Writes Files
+
+
+
+StringUtil
+
+
+
+
+
+
+
+
+
+
+
+
Package dunemask.util Description
+
+
+Author:
+Elijah
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/package-tree.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/package-tree.html
new file mode 100644
index 0000000..8db1f4a
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/package-tree.html
@@ -0,0 +1,144 @@
+
+
+
+
+
+dunemask.util Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/package-use.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/package-use.html
new file mode 100644
index 0000000..7a4ff7a
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/package-use.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Package dunemask.util
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.util
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/XMLMap.ParentBuilder.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/XMLMap.ParentBuilder.html
new file mode 100644
index 0000000..fca6fc9
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/XMLMap.ParentBuilder.html
@@ -0,0 +1,391 @@
+
+
+
+
+
+XMLMap.ParentBuilder
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.util.xml.XMLMap.ParentBuilder
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+static java.util.ArrayList<java.lang.String>
+p
+
+
+static java.io.File
+xml
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+ParentBuilder ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static void
+addPiece (java.lang.String level)
+
+
+static java.util.ArrayList<java.lang.String>
+getParent ()
+
+
+static void
+init (java.io.File xml)
+
+
+static void
+init (java.io.File xml,
+ java.util.ArrayList<java.lang.String> parent)
+
+
+static void
+reset ()
+
+
+static void
+setParent (java.util.ArrayList<java.lang.String> parent)
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+ParentBuilder
+public ParentBuilder()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/XMLMap.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/XMLMap.html
new file mode 100644
index 0000000..91b40a7
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/XMLMap.html
@@ -0,0 +1,791 @@
+
+
+
+
+
+XMLMap
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.util.xml.XMLMap
+
+
+
+
+
+
+
+
+
+
+
+
+Nested Class Summary
+
+Nested Classes
+
+Modifier and Type
+Class and Description
+
+
+static class
+XMLMap.ParentBuilder
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+XMLMap (java.io.File xml,
+ java.lang.String body)
+Create new XML file
+
+
+
+XMLMap (java.io.File xml,
+ java.lang.String body,
+ java.lang.String state)
+Create new XML file
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Instance Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+void
+addContainer (java.lang.String name,
+ java.util.ArrayList<java.lang.String> parent)
+Adds Container to xml doc
+
+
+
+void
+addContainer (java.lang.String name,
+ java.util.ArrayList<java.lang.String> parent,
+ java.lang.String state)
+Adds Container to xml doc
+
+
+
+void
+addContainers (java.util.ArrayList<java.lang.String> name,
+ java.util.ArrayList<java.lang.String> parent)
+Adds Container to xml doc
+
+
+
+void
+addContainers (java.util.ArrayList<java.lang.String> name,
+ java.util.ArrayList<java.lang.String> parent,
+ java.util.ArrayList<java.lang.String> state)
+Adds Container to xml doc
+
+
+
+void
+addElement (java.lang.String name,
+ java.util.ArrayList<java.lang.String> parent,
+ java.lang.Object value)
+Adds Element to xml doc
+
+
+
+void
+addElement (java.lang.String name,
+ java.util.ArrayList<java.lang.String> parent,
+ java.lang.String state,
+ java.lang.Object value)
+Adds Element to xml doc
+
+
+
+void
+addElements (java.util.ArrayList<java.lang.String> name,
+ java.util.ArrayList<java.lang.String> parent,
+ java.util.ArrayList<java.lang.String> value)
+Adds Container to xml doc
+
+
+
+void
+addElements (java.util.ArrayList<java.lang.String> name,
+ java.util.ArrayList<java.lang.String> parent,
+ java.util.ArrayList<java.lang.String> state,
+ java.util.ArrayList<java.lang.String> value)
+Adds Elements to xml doc
+
+
+
+void
+addElements (java.util.HashMap<java.lang.String,java.lang.Object> element,
+ java.util.ArrayList<java.lang.String> parent)
+
+
+void
+addElements (java.util.HashMap<java.lang.String,java.lang.Object> element,
+ java.util.ArrayList<java.lang.String> parent,
+ java.util.ArrayList<java.lang.String> state)
+Add Eleemnts to xml doc
+
+
+
+java.lang.String
+getElementFromDoc (java.util.ArrayList<java.lang.String> path)
+Get Value from Element
+
+
+
+java.util.HashMap<java.lang.String,java.lang.String>
+getElementsAndKeys (java.util.ArrayList<java.lang.String> path)
+Get Values from all sub elements in a container
+
+
+
+java.util.ArrayList<java.lang.String>
+getElementsFromDoc (java.util.ArrayList<java.lang.String> path)
+Get Values from all sub elements in a container
+
+
+
+ArrayListState
+getHa ()
+
+
+java.lang.String
+getLastState ()
+
+
+java.util.ArrayList<java.lang.String>
+getParent (java.util.ArrayList<java.lang.String> child)
+
+
+java.util.ArrayList<java.lang.String>
+getParentByState (java.lang.String state)
+Get an attribute from xml map based on the state, (not from doc but map)
+
+
+
+java.util.ArrayList<java.lang.String>
+getSubComponents (java.util.ArrayList<java.lang.String> parent)
+Get Components of the XML Map under the parent
+
+
+
+java.io.File
+getXml ()
+
+
+java.util.ArrayList<java.lang.String>
+lastParent ()
+Returns the arraylist by the last state that was indexed
+
+
+
+void
+setHa (ArrayListState ha)
+
+
+void
+setLastState (java.lang.String lastState)
+
+
+void
+setXml (java.io.File xml)
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+
+
+
+
+addContainers
+public void addContainers(java.util.ArrayList<java.lang.String> name,
+ java.util.ArrayList<java.lang.String> parent)
+Adds Container to xml doc
+
+Parameters:
+name
- List of container names
+parent
- Parent Path
+
+
+
+
+
+
+
+
+addContainers
+public void addContainers(java.util.ArrayList<java.lang.String> name,
+ java.util.ArrayList<java.lang.String> parent,
+ java.util.ArrayList<java.lang.String> state)
+Adds Container to xml doc
+
+Parameters:
+name
- List of container names
+parent
- Parent Path
+state
- List of states that can be called later
+
+
+
+
+
+
+
+
+addElements
+public void addElements(java.util.ArrayList<java.lang.String> name,
+ java.util.ArrayList<java.lang.String> parent,
+ java.util.ArrayList<java.lang.String> value)
+Adds Container to xml doc
+
+Parameters:
+name
- List of container names
+parent
- Parent Path
+
+
+
+
+
+
+
+
+addElements
+public void addElements(java.util.ArrayList<java.lang.String> name,
+ java.util.ArrayList<java.lang.String> parent,
+ java.util.ArrayList<java.lang.String> state,
+ java.util.ArrayList<java.lang.String> value)
+Adds Elements to xml doc
+
+Parameters:
+name
- List of container names
+parent
- Parent Path
+state
- List of states that can be called later
+value
- Value list
+
+
+
+
+
+
+
+
+
+
+
+
+addElements
+public void addElements(java.util.HashMap<java.lang.String,java.lang.Object> element,
+ java.util.ArrayList<java.lang.String> parent,
+ java.util.ArrayList<java.lang.String> state)
+Add Eleemnts to xml doc
+
+Parameters:
+element
- Hashmap of elements
+parent
- Parent Path
+state
- List of state names
+
+
+
+
+
+
+
+
+addContainer
+public void addContainer(java.lang.String name,
+ java.util.ArrayList<java.lang.String> parent)
+Adds Container to xml doc
+
+Parameters:
+name
- Name for Container
+parent
- Parent Path
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+getElementsAndKeys
+public java.util.HashMap<java.lang.String,java.lang.String> getElementsAndKeys(java.util.ArrayList<java.lang.String> path)
+Get Values from all sub elements in a container
+
+
+
+
+
+
+
+
+
+
+
+addContainer
+public void addContainer(java.lang.String name,
+ java.util.ArrayList<java.lang.String> parent,
+ java.lang.String state)
+Adds Container to xml doc
+
+Parameters:
+name
- Name for Container
+parent
- Parent Path
+state
- State that can be called later
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+addElement
+public void addElement(java.lang.String name,
+ java.util.ArrayList<java.lang.String> parent,
+ java.lang.String state,
+ java.lang.Object value)
+Adds Element to xml doc
+
+Parameters:
+name
- Name for Container
+parent
- Parent Path
+state
- State that can be called later
+value
- Object to be stored in xml
+
+
+
+
+
+
+
+
+getParentByState
+public java.util.ArrayList<java.lang.String> getParentByState(java.lang.String state)
+Get an attribute from xml map based on the state, (not from doc but map)
+
+Parameters:
+state
- State called
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/XMLRW.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/XMLRW.html
new file mode 100644
index 0000000..43db534
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/XMLRW.html
@@ -0,0 +1,658 @@
+
+
+
+
+
+XMLRW
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+dunemask.util.xml.XMLRW
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields
+
+Modifier and Type
+Field and Description
+
+
+static java.lang.String
+NOBODY
+No Body for newXMLFile
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+XMLRW ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Static Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+static void
+addElement (java.io.File file,
+ java.lang.String[] parentElementChain,
+ java.lang.String newElement,
+ java.lang.Object value)
+Adds a element in the XML Doc
+
+
+
+static void
+addElementContainer (java.io.File file,
+ java.lang.String[] parentElementChain,
+ java.lang.String container)
+Adds a container in the XML Doc
+
+
+
+static void
+addElementContainers (java.io.File file,
+ java.lang.String[][] parentElementChain,
+ java.lang.String[] container)
+Adds a containers in the XML Doc
+
+
+
+static void
+addElementContainers (java.io.File file,
+ java.lang.String[] parentElementChain,
+ java.lang.String[] container)
+Adds a containers in the XML Doc
+
+
+
+static void
+addElements (java.io.File file,
+ java.lang.String[][] parentElementChain,
+ java.lang.String[] newElement,
+ java.lang.Object[] value)
+Adds a element in the XML Doc
+
+
+
+static void
+addElements (java.io.File file,
+ java.lang.String[] parentElementChain,
+ java.lang.String[] newElement,
+ java.lang.Object[] value)
+Adds a elements in the XML Doc
+
+
+
+static java.lang.String
+closeElement (java.lang.String element)
+
+
+static java.lang.String
+element (java.lang.String element)
+
+
+static java.util.ArrayList<java.lang.String>
+getElements (java.io.File file,
+ java.lang.String[] parentElementChain)
+Get All Next Level Elements
+
+
+
+static java.util.ArrayList<java.lang.String>
+getElementsValues (java.io.File file,
+ java.lang.String[] parentElementChain)
+Returns elements from the XML Doc
+
+
+
+static java.util.ArrayList<java.lang.String>
+getElementsValues (java.io.File file,
+ java.lang.String[] parentElementChain,
+ java.util.ArrayList<java.lang.String> cont)
+Returns elements from the XML Doc
+
+
+
+static java.lang.String
+getElementValue (java.io.File file,
+ java.lang.String[] parentElementChain)
+Adds a element in the XML Doc
+
+
+
+static boolean
+isElement (java.io.File file,
+ java.lang.String[] parentElementChain)
+Tests if directed path is element
+
+
+
+static void
+newXMLFile (java.io.File file,
+ java.lang.String body)
+Creates a File in the specified location, (handles parent folders)
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field Detail
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+XMLRW
+public XMLRW()
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+addElementContainers
+public static void addElementContainers(java.io.File file,
+ java.lang.String[] parentElementChain,
+ java.lang.String[] container)
+Adds a containers in the XML Doc
+
+Parameters:
+file
- XML File
+parentElementChain
- Hiarchy down to the container to be added (All Under Same parent)
+container
- Name of Container
+
+
+
+
+
+
+
+
+addElementContainers
+public static void addElementContainers(java.io.File file,
+ java.lang.String[][] parentElementChain,
+ java.lang.String[] container)
+Adds a containers in the XML Doc
+
+Parameters:
+file
- XML File
+parentElementChain
- Hiarchy down to the container to be added
+container
- Name of Container
+
+
+
+
+
+
+
+
+addElementContainer
+public static void addElementContainer(java.io.File file,
+ java.lang.String[] parentElementChain,
+ java.lang.String container)
+Adds a container in the XML Doc
+
+Parameters:
+file
- XML File
+parentElementChain
- Hiarchy down to the container to be added
+container
- Name of Container
+
+
+
+
+
+
+
+
+addElement
+public static void addElement(java.io.File file,
+ java.lang.String[] parentElementChain,
+ java.lang.String newElement,
+ java.lang.Object value)
+Adds a element in the XML Doc
+
+Parameters:
+file
- XML File
+parentElementChain
- Hiarchy down to the element to be added
+newElement
- Name of new Element
+value
- Value for new Element
+
+
+
+
+
+
+
+
+addElements
+public static void addElements(java.io.File file,
+ java.lang.String[] parentElementChain,
+ java.lang.String[] newElement,
+ java.lang.Object[] value)
+Adds a elements in the XML Doc
+
+Parameters:
+file
- XML File
+parentElementChain
- Hiarchy down to the element to be added (All Under the same Hiarchy)
+newElement
- Name of new Element
+value
- Value for new Element
+
+
+
+
+
+
+
+
+addElements
+public static void addElements(java.io.File file,
+ java.lang.String[][] parentElementChain,
+ java.lang.String[] newElement,
+ java.lang.Object[] value)
+Adds a element in the XML Doc
+
+Parameters:
+file
- XML File
+parentElementChain
- Hiarchy down to the element to be added
+newElement
- Name of new Element
+value
- Value for new Element
+
+
+
+
+
+
+
+
+getElementsValues
+public static java.util.ArrayList<java.lang.String> getElementsValues(java.io.File file,
+ java.lang.String[] parentElementChain)
+Returns elements from the XML Doc
+
+Parameters:
+file
- XML File
+parentElementChain
- Hiarchy down to the top container of a series of Elements
+Returns:
+ArrayList of Elements
+
+
+
+
+
+
+
+
+getElementsValues
+public static java.util.ArrayList<java.lang.String> getElementsValues(java.io.File file,
+ java.lang.String[] parentElementChain,
+ java.util.ArrayList<java.lang.String> cont)
+Returns elements from the XML Doc
+
+Parameters:
+file
- XML File
+parentElementChain
- Hiarchy down to the top container of a series of Elements
+cont
- ArrayList of Each Container
+
+
+
+
+
+
+
+
+getElements
+public static java.util.ArrayList<java.lang.String> getElements(java.io.File file,
+ java.lang.String[] parentElementChain)
+Get All Next Level Elements
+
+Parameters:
+file
- XML Doc
+parentElementChain
- Highearchy down to top element who's sub-elements will be "Searched"
+Returns:
+List of the Sub Elements (not values) To obtain the values for
+
+
+
+
+
+
+
+
+getElementValue
+public static java.lang.String getElementValue(java.io.File file,
+ java.lang.String[] parentElementChain)
+Adds a element in the XML Doc
+
+Parameters:
+file
- XML File
+parentElementChain
- Hiarchy down to the element to be added
+newElement
- Name of new Element
+value
- Value for new Element
+
+
+
+
+
+
+
+
+isElement
+public static boolean isElement(java.io.File file,
+ java.lang.String[] parentElementChain)
+Tests if directed path is element
+
+Parameters:
+file
- XML doc
+parentElementChain
- Hiarchy down to the element to be added
+Returns:
+if Directed Path is element, assuming path is accurate
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/class-use/XMLMap.ParentBuilder.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/class-use/XMLMap.ParentBuilder.html
new file mode 100644
index 0000000..9f2a82d
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/class-use/XMLMap.ParentBuilder.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.util.xml.XMLMap.ParentBuilder
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.util.xml.XMLMap.ParentBuilder
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/class-use/XMLMap.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/class-use/XMLMap.html
new file mode 100644
index 0000000..fe211c5
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/class-use/XMLMap.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.util.xml.XMLMap
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.util.xml.XMLMap
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/class-use/XMLRW.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/class-use/XMLRW.html
new file mode 100644
index 0000000..9af7006
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/class-use/XMLRW.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Class dunemask.util.xml.XMLRW
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.util.xml.XMLRW
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/package-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/package-frame.html
new file mode 100644
index 0000000..e44d99a
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/package-frame.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+dunemask.util.xml
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/package-summary.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/package-summary.html
new file mode 100644
index 0000000..14753f1
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/package-summary.html
@@ -0,0 +1,150 @@
+
+
+
+
+
+dunemask.util.xml
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/package-tree.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/package-tree.html
new file mode 100644
index 0000000..29cdf93
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/package-tree.html
@@ -0,0 +1,139 @@
+
+
+
+
+
+dunemask.util.xml Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/package-use.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/package-use.html
new file mode 100644
index 0000000..47dadf5
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/dunemask/util/xml/package-use.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+Uses of Package dunemask.util.xml
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of dunemask.util.xml
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/help-doc.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/help-doc.html
new file mode 100644
index 0000000..f025955
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/help-doc.html
@@ -0,0 +1,229 @@
+
+
+
+
+
+API Help
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+Overview
+The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.
+
+
+Package
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:
+
+Interfaces (italic)
+Classes
+Enums
+Exceptions
+Errors
+Annotation Types
+
+
+
+Class/Interface
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:
+
+Class inheritance diagram
+Direct Subclasses
+All Known Subinterfaces
+All Known Implementing Classes
+Class/interface declaration
+Class/interface description
+
+
+Nested Class Summary
+Field Summary
+Constructor Summary
+Method Summary
+
+
+Field Detail
+Constructor Detail
+Method Detail
+
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+
+
+Annotation Type
+Each annotation type has its own separate page with the following sections:
+
+Annotation Type declaration
+Annotation Type description
+Required Element Summary
+Optional Element Summary
+Element Detail
+
+
+
+Enum
+Each enum has its own separate page with the following sections:
+
+Enum declaration
+Enum description
+Enum Constant Summary
+Enum Constant Detail
+
+
+
+Use
+Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
+
+
+Tree (Class Hierarchy)
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object
. The interfaces do not inherit from java.lang.Object
.
+
+When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
+When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
+
+
+
+Deprecated API
+The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+
+
+Index
+The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+
+
+Prev/Next
+These links take you to the next or previous class, interface, package, or related page.
+
+
+Frames/No Frames
+These links show and hide the HTML frames. All pages are available with or without frames.
+
+
+All Classes
+The All Classes link shows all classes and interfaces except non-static nested types.
+
+
+Serialized Form
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+
+
+Constant Field Values
+The Constant Field Values page lists the static final fields and their values.
+
+
+
This help file applies to API documentation generated using the standard doclet.
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-1.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-1.html
new file mode 100644
index 0000000..ec64dcf
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-1.html
@@ -0,0 +1,237 @@
+
+
+
+
+
+A-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
A
+
+absolutePathFixCmd(String) - Static method in class dunemask.dm.CMD
+
+addContainer(String, ArrayList<String>) - Method in class dunemask.util.xml.XMLMap
+
+Adds Container to xml doc
+
+addContainer(String, ArrayList<String>, String) - Method in class dunemask.util.xml.XMLMap
+
+Adds Container to xml doc
+
+addContainers(ArrayList<String>, ArrayList<String>) - Method in class dunemask.util.xml.XMLMap
+
+Adds Container to xml doc
+
+addContainers(ArrayList<String>, ArrayList<String>, ArrayList<String>) - Method in class dunemask.util.xml.XMLMap
+
+Adds Container to xml doc
+
+addElement(String, ArrayList<String>, Object) - Method in class dunemask.util.xml.XMLMap
+
+Adds Element to xml doc
+
+addElement(String, ArrayList<String>, String, Object) - Method in class dunemask.util.xml.XMLMap
+
+Adds Element to xml doc
+
+addElement(File, String[], String, Object) - Static method in class dunemask.util.xml.XMLRW
+
+Adds a element in the XML Doc
+
+addElementContainer(File, String[], String) - Static method in class dunemask.util.xml.XMLRW
+
+Adds a container in the XML Doc
+
+addElementContainers(File, String[], String[]) - Static method in class dunemask.util.xml.XMLRW
+
+Adds a containers in the XML Doc
+
+addElementContainers(File, String[][], String[]) - Static method in class dunemask.util.xml.XMLRW
+
+Adds a containers in the XML Doc
+
+addElements(ArrayList<String>, ArrayList<String>, ArrayList<String>) - Method in class dunemask.util.xml.XMLMap
+
+Adds Container to xml doc
+
+addElements(ArrayList<String>, ArrayList<String>, ArrayList<String>, ArrayList<String>) - Method in class dunemask.util.xml.XMLMap
+
+Adds Elements to xml doc
+
+addElements(HashMap<String, Object>, ArrayList<String>) - Method in class dunemask.util.xml.XMLMap
+
+addElements(HashMap<String, Object>, ArrayList<String>, ArrayList<String>) - Method in class dunemask.util.xml.XMLMap
+
+Add Eleemnts to xml doc
+
+addElements(File, String[], String[], Object[]) - Static method in class dunemask.util.xml.XMLRW
+
+Adds a elements in the XML Doc
+
+addElements(File, String[][], String[], Object[]) - Static method in class dunemask.util.xml.XMLRW
+
+Adds a element in the XML Doc
+
+addPiece(String) - Static method in class dunemask.util.xml.XMLMap.ParentBuilder
+
+addState(String[], String) - Method in class dunemask.objects.ArrayListState
+
+addState(ArrayList<String>, String) - Method in class dunemask.objects.ArrayListState
+
+alphabet - Static variable in class dunemask.util.StringUtil
+
+The Alphabet To Be Searched for Random Char Gen.
+
+alreadyExisits(String, File) - Static method in class dunemask.util.JarUtil
+
+Finds out if jarName_lib already exists
+
+alreadyInFile(File, String) - Static method in class dunemask.util.FileUtil
+
+Scans the File to see if the text is already in the list
+
+alreadyInList(Object[], Object) - Static method in class dunemask.util.ObjectUtil
+
+Scans the file to see if the text is already in the list
+
+alreadyInList(String[], String) - Static method in class dunemask.util.StringUtil
+
+Scans the file to see if the text is already in the list (Case Sensitive)
+
+appFolder(String) - Static method in class dunemask.Dunemasking
+
+Returns Specific Version of Apps Folder
+
+ArrayListState - Class in dunemask.objects
+
+ArrayListState() - Constructor for class dunemask.objects.ArrayListState
+
+AudioUtil - Class in dunemask.util
+
+Used for playing audio clips (.WAV files)
+
+AudioUtil() - Constructor for class dunemask.util.AudioUtil
+
+autoHandleSetup - Static variable in class dunemask.dunemasking.Setup
+
+
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-10.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-10.html
new file mode 100644
index 0000000..20b2347
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-10.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+M-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
M
+
+main(String[]) - Static method in class dunemask.dunemasking.Changelog
+
+mainSetup() - Static method in class dunemask.dunemasking.Setup
+
+Default Main Setup
+
+MathUtil - Class in dunemask.util
+
+Dunemasking MathUtil is a tool for the IDE development
+
+MathUtil() - Constructor for class dunemask.util.MathUtil
+
+MediaUtil - Class in dunemask.util
+
+Media Player for mp3 and wav files, Uses deprectaed API
+
+MediaUtil() - Constructor for class dunemask.util.MediaUtil
+
+mkdir(String) - Static method in class dunemask.dm.CMD
+
+Creates Relative Directory
+
+mkdirAbs(String) - Static method in class dunemask.dm.CMD
+
+Creates Absolutee Directory
+
+MovieLauncher - Class in dunemask.objects.movieplayer
+
+MovieLauncher() - Constructor for class dunemask.objects.movieplayer.MovieLauncher
+
+MoviePlayer - Class in dunemask.objects.movieplayer
+
+MoviePlayer(Media) - Constructor for class dunemask.objects.movieplayer.MoviePlayer
+
+MusicPlayer - Class in dunemask.objects
+
+Create a new JInternalFrame Music Player using
MediaUtil
+
+MusicPlayer(File, String) - Constructor for class dunemask.objects.MusicPlayer
+
+Creates a music Player
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-11.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-11.html
new file mode 100644
index 0000000..e20d03f
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-11.html
@@ -0,0 +1,139 @@
+
+
+
+
+
+N-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
N
+
+newXMLFile(File, String) - Static method in class dunemask.util.xml.XMLRW
+
+Creates a File in the specified location, (handles parent folders)
+
+nextFreeLine(File) - Static method in class dunemask.util.FileUtil
+
+Gets the next Blank Line In the document
+
+NOBODY - Static variable in class dunemask.util.xml.XMLRW
+
+No Body for newXMLFile
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-12.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-12.html
new file mode 100644
index 0000000..bda02ab
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-12.html
@@ -0,0 +1,149 @@
+
+
+
+
+
+O-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
O
+
+ObjectUtil - Class in dunemask.util
+
+Does Some Object Editing
+
+ObjectUtil() - Constructor for class dunemask.util.ObjectUtil
+
+openCmd(String) - Static method in class dunemask.dm.CMD
+
+openCmd(ArrayList<String>) - Static method in class dunemask.dm.CMD
+
+openCmd(String[]) - Static method in class dunemask.dm.CMD
+
+openElevatedCmd(String) - Static method in class dunemask.dm.CMD
+
+openElevatedCmd(ArrayList<String>) - Static method in class dunemask.dm.CMD
+
+openElevatedCmd(String[]) - Static method in class dunemask.dm.CMD
+
+operators - Static variable in class dunemask.objects.Expression
+
+outContent - Static variable in class dunemask.dunemasking.Capture
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-13.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-13.html
new file mode 100644
index 0000000..8052155
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-13.html
@@ -0,0 +1,177 @@
+
+
+
+
+
+P-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
P
+
+p - Static variable in class dunemask.util.xml.XMLMap.ParentBuilder
+
+paintIcon(Component, Graphics, int, int) - Method in class dunemask.objects.StretchIcon
+
+Paints the icon.
+
+ParentBuilder() - Constructor for class dunemask.util.xml.XMLMap.ParentBuilder
+
+pause - Variable in class dunemask.objects.movieplayer.MoviePlayer
+
+Pause() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+For External Force Closing
+
+pause() - Static method in class dunemask.util.AudioUtil
+
+Stores current location and closes clip
+
+pause() - Static method in class dunemask.util.MediaUtil
+
+Pauses Media
+
+pauseLocation - Static variable in class dunemask.util.AudioUtil
+
+play - Variable in class dunemask.objects.movieplayer.MoviePlayer
+
+play(File) - Static method in class dunemask.util.MediaUtil
+
+Play a song Once
+
+playOnce(File) - Static method in class dunemask.util.AudioUtil
+
+Plays song or short Sound clip once
+
+playPause() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+playRepeat(File) - Static method in class dunemask.util.MediaUtil
+
+Play A Song On Repeat
+
+prePlayerLoop(File) - Static method in class dunemask.objects.MusicPlayer
+
+Puts the song specified on loop Without any jpanel dialog
+
+printChangeLog() - Static method in class dunemask.dunemasking.Changelog
+
+Prints The ChangeLog
+
+ProgramSetUp(double) - Static method in class dunemask.dunemasking.Version
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-14.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-14.html
new file mode 100644
index 0000000..869d61f
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-14.html
@@ -0,0 +1,193 @@
+
+
+
+
+
+R-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
R
+
+randomCharacterGenerator(String[]) - Static method in class dunemask.util.StringUtil
+
+Gets a random character that isn't in a list already New Character from:
+ 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ?/.,
+
+RandomEncryptionKeyCode(int) - Static method in class dunemask.other.StringBasedEncryption
+
+Randomly creates keys and expressions
+ (To get keys call expression.getVari() )
+
+read(File, int) - Static method in class dunemask.util.RW
+
+Reads a line of text from file
+
+read(File, int, int) - Static method in class dunemask.util.RW
+
+Reads a lines of text from file
+
+readAll(File) - Static method in class dunemask.util.RW
+
+Reads All Lines In The File
+
+readObject(File) - Static method in class dunemask.util.ObjectUtil
+
+Reads object From specified file, (Needs to be casted to desired variable)
+
+removeDecimal(double) - Static method in class dunemask.util.MathUtil
+
+Removes the decimal
+
+removeExtension(String) - Static method in class dunemask.util.FileUtil
+
+removeRepeat() - Static method in class dunemask.util.MediaUtil
+
+If Player was On Repeat this will remove it
+
+repPath - Static variable in class dunemask.dunemasking.GitHub
+
+reset() - Static method in class dunemask.util.xml.XMLMap.ParentBuilder
+
+resetSpeed() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+MoviePlayer Action
+
+Restart() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+MoviePlayer Action
+
+resume() - Static method in class dunemask.util.MediaUtil
+
+Resumes song if not null
+
+resumeSong(File) - Static method in class dunemask.util.AudioUtil
+
+Puts the song where the held location is
+
+run() - Method in class dunemask.dunemasking.StreamGobbler
+
+Call start function
+
+RW - Class in dunemask.util
+
+Reads And Writes Files
+
+RW() - Constructor for class dunemask.util.RW
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-15.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-15.html
new file mode 100644
index 0000000..8ddb256
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-15.html
@@ -0,0 +1,372 @@
+
+
+
+
+
+S-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
S
+
+ScaledImageLabel - Class in dunemask.objects
+
+Creates a JLabel with the Scaled instance of the params defined
+
+ScaledImageLabel(String, int, int) - Constructor for class dunemask.objects.ScaledImageLabel
+
+ScaledImageLabel(Image, int, int) - Constructor for class dunemask.objects.ScaledImageLabel
+
+ScaledImageLabel(String, double, double) - Constructor for class dunemask.objects.ScaledImageLabel
+
+ScaledImageLabel(Image, double, double) - Constructor for class dunemask.objects.ScaledImageLabel
+
+seek(Duration) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+Seek
+
+setAnswer(int) - Method in class dunemask.objects.Expression
+
+setBackButton(Button) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setBorderPane(BorderPane) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setChangeMediaButton(Button) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setForwardButton(Button) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setHa(ArrayListState) - Method in class dunemask.util.xml.XMLMap
+
+setImageFile(File) - Method in class dunemask.objects.ScaledImageLabel
+
+setImageFilePath(String) - Method in class dunemask.objects.ScaledImageLabel
+
+setLastState(String) - Method in class dunemask.util.xml.XMLMap
+
+setMap(HashMap<String, ArrayList<String>>) - Method in class dunemask.objects.ArrayListState
+
+setMedia(Media) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setMediaFinished(CountDownLatch) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setMediaPlayer(MediaPlayer) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setMv(MediaView) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setOnEndDefault(Runnable) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+SetOnLoop() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+MoviePlayer Action
+
+setOnRepeat() - Static method in class dunemask.util.MediaUtil
+
+Set Song on Repeat
+
+setParent(ArrayList<String>) - Static method in class dunemask.util.xml.XMLMap.ParentBuilder
+
+setPlayButton(Button) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setPlayerReady(CountDownLatch) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setPlaying(File) - Method in class dunemask.objects.MusicPlayer
+
+setRepeatButton(Button) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setScaledImageIcon(Icon) - Method in class dunemask.objects.ScaledImageLabel
+
+setSeekSlider(Slider) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setSongFolder(String) - Method in class dunemask.objects.MusicPlayer
+
+setSplitPane(SplitPane) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setStackPane(StackPane) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setStopButton(Button) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setTrackList(File) - Method in class dunemask.objects.MusicPlayer
+
+Setup - Class in dunemask.dunemasking
+
+SetsUp Program call the Setup.init function
+
+Setup() - Constructor for class dunemask.dunemasking.Setup
+
+setUpStreams() - Static method in class dunemask.dunemasking.Capture
+
+Turn On Capture
+
+setVari(int[]) - Method in class dunemask.objects.Expression
+
+setVolumeSlider(Slider) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+setXml(File) - Method in class dunemask.util.xml.XMLMap
+
+SkipAhead() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+MoviePlayer Action
+
+SkipBehind() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+MoviePlayer Action
+
+SkipToEnd() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+MoviePlayer Action
+
+Slow() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+MoviePlayer Action
+
+solve() - Method in class dunemask.objects.Expression
+
+song - Static variable in class dunemask.util.AudioUtil
+
+songLoop(File) - Static method in class dunemask.util.AudioUtil
+
+Plays song on loop
+
+Src - Static variable in class dunemask.dunemasking.Setup
+
+Returns the location of where the resource folder is.
+
+Src - Class in dunemask.dunemasking
+
+
+
+Src() - Constructor for class dunemask.dunemasking.Src
+
+Deprecated.
+
+start(Stage) - Method in class dunemask.objects.movieplayer.MovieLauncher
+
+startConsole() - Static method in class dunemask.dunemasking.Capture
+
+Start Console
+
+startPlayer(File, boolean) - Static method in class dunemask.objects.movieplayer.MovieLauncher
+
+Start Player
+
+Station() - Static method in class dunemask.dunemasking.GitHub
+
+Open GithubStation
+
+Stop() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+MoviePlayer Action
+
+stop() - Static method in class dunemask.util.MediaUtil
+
+Stops the media and puts the cursors to 0
+ And Removes Loop Modifier
+
+StreamGobbler - Class in dunemask.dunemasking
+
+StreamGobbler(InputStream) - Constructor for class dunemask.dunemasking.StreamGobbler
+
+Call start function
+
+StretchIcon - Class in dunemask.objects
+
+An Icon
that scales its image to fill the component area,
+ excluding any border or insets, optionally maintaining the image's aspect
+ ratio by padding and centering the scaled image horizontally or vertically.
+
+StretchIcon(byte[]) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from an array of bytes.
+
+StretchIcon(byte[], boolean) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from an array of bytes with the specified behavior.
+
+StretchIcon(byte[], String) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from an array of bytes.
+
+StretchIcon(byte[], String, boolean) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from an array of bytes with the specified behavior.
+
+StretchIcon(Image) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from the image.
+
+StretchIcon(Image, boolean) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from the image with the specified behavior.
+
+StretchIcon(Image, String) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from the image.
+
+StretchIcon(Image, String, boolean) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from the image with the specified behavior.
+
+StretchIcon(String) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from the specified file.
+
+StretchIcon(String, boolean) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from the specified file with the specified behavior.
+
+StretchIcon(String, String) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from the specified file.
+
+StretchIcon(String, String, boolean) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from the specified file with the specified behavior.
+
+StretchIcon(URL) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from the specified URL.
+
+StretchIcon(URL, boolean) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from the specified URL with the specified behavior.
+
+StretchIcon(URL, String) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from the specified URL.
+
+StretchIcon(URL, String, boolean) - Constructor for class dunemask.objects.StretchIcon
+
+Creates a StretchIcon
from the specified URL with the specified behavior.
+
+StringBasedEncryption - Class in dunemask.other
+
+StringBasedEncryption() - Constructor for class dunemask.other.StringBasedEncryption
+
+StringUtil - Class in dunemask.util
+
+
+
+StringUtil() - Constructor for class dunemask.util.StringUtil
+
+sysDefaultErr - Static variable in class dunemask.dunemasking.Capture
+
+sysDefaultOut - Static variable in class dunemask.dunemasking.Capture
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-16.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-16.html
new file mode 100644
index 0000000..00b4b08
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-16.html
@@ -0,0 +1,131 @@
+
+
+
+
+
+T-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
T
+
+tab - Static variable in class dunemask.util.StringUtil
+
+Tab WhiteSpace
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-17.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-17.html
new file mode 100644
index 0000000..6b9e01b
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-17.html
@@ -0,0 +1,131 @@
+
+
+
+
+
+U-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
U
+
+updateAllVersions() - Static method in class dunemask.dunemasking.Changelog
+
+Updates All Dunemasking Versions
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-18.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-18.html
new file mode 100644
index 0000000..53c57df
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-18.html
@@ -0,0 +1,133 @@
+
+
+
+
+
+V-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
V
+
+Version - Class in dunemask.dunemasking
+
+Handles All Dunemasking Version kinds of things
+
+Version() - Constructor for class dunemask.dunemasking.Version
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-19.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-19.html
new file mode 100644
index 0000000..bfbc14b
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-19.html
@@ -0,0 +1,147 @@
+
+
+
+
+
+W-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
W
+
+write(File, String, int) - Static method in class dunemask.util.RW
+
+Write Line To Specified file
+
+write(File, String[], int) - Static method in class dunemask.util.RW
+
+Write String array To Specified file
+
+writeAll(File, String[]) - Static method in class dunemask.util.RW
+
+Write String array To Specified file
+
+writeFile(File, File) - Static method in class dunemask.util.FileUtil
+
+Write File From "File"
+
+writeObject(File, Object) - Static method in class dunemask.util.ObjectUtil
+
+Writes an object to specified file (make sure it has extension)
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-2.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-2.html
new file mode 100644
index 0000000..ce37d2c
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-2.html
@@ -0,0 +1,204 @@
+
+
+
+
+
+C-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
C
+
+Capture - Class in dunemask.dunemasking
+
+TO Parse an output as a string value do outContent.parse();
+ Perform setup to capture and cleanup to close
+
+Capture() - Constructor for class dunemask.dunemasking.Capture
+
+changeExtension(String, String) - Static method in class dunemask.util.FileUtil
+
+Requires a period in the FileName, and no period in the extension name
+
+Changelog - Class in dunemask.dunemasking
+
+Changelog() - Constructor for class dunemask.dunemasking.Changelog
+
+changeMedia(Media) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+changeMediaWithChooser() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+MoviePlayer Action
+
+cleanFile(File) - Static method in class dunemask.util.RW
+
+Deprecated.
+
+cleanUpStreams() - Static method in class dunemask.dunemasking.Capture
+
+Turn Off Capture
+
+clip - Static variable in class dunemask.util.AudioUtil
+
+Close - Static variable in class dunemask.dunemasking.Src
+
+Deprecated.
+
+closeClip() - Static method in class dunemask.util.AudioUtil
+
+Stops current playing song (If playing)
+
+closeConsole() - Static method in class dunemask.dunemasking.Capture
+
+Closes the institued Console
+
+closeElement(String) - Static method in class dunemask.util.xml.XMLRW
+
+CMD - Class in dunemask.dm
+
+CMD() - Constructor for class dunemask.dm.CMD
+
+compatableVersion(double) - Static method in class dunemask.dunemasking.Version
+
+Tests to see if it's a compatable Version
+
+cons - Static variable in class dunemask.dunemasking.Capture
+
+consOpen - Static variable in class dunemask.dunemasking.Capture
+
+containsIgnoreCase(String, String) - Static method in class dunemask.util.StringUtil
+
+Compares to see if string one contains string two
+
+copyFileViaCmd(File, File) - Static method in class dunemask.dm.CMD
+
+copyFolderAndSubContetntsViaCmd(String, String) - Static method in class dunemask.dm.CMD
+
+copyFolderViaCmd(String, String) - Static method in class dunemask.dm.CMD
+
+createDirCmd(String) - Static method in class dunemask.dm.CMD
+
+createFileCmdCommand(String) - Static method in class dunemask.dm.CMD
+
+createObjectNotInLIst(Object[], Object) - Static method in class dunemask.util.ObjectUtil
+
+Deprecated.
+
+current - Static variable in class dunemask.objects.movieplayer.MovieLauncher
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-20.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-20.html
new file mode 100644
index 0000000..33937c5
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-20.html
@@ -0,0 +1,145 @@
+
+
+
+
+
+X-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
X
+
+xml - Static variable in class dunemask.util.xml.XMLMap.ParentBuilder
+
+XMLMap - Class in dunemask.util.xml
+
+XMLMap(File, String, String) - Constructor for class dunemask.util.xml.XMLMap
+
+Create new XML file
+
+XMLMap(File, String) - Constructor for class dunemask.util.xml.XMLMap
+
+Create new XML file
+
+XMLMap.ParentBuilder - Class in dunemask.util.xml
+
+XMLRW - Class in dunemask.util.xml
+
+XMLRW() - Constructor for class dunemask.util.xml.XMLRW
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-3.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-3.html
new file mode 100644
index 0000000..fdb3f6d
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-3.html
@@ -0,0 +1,198 @@
+
+
+
+
+
+D-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
D
+
+decrypt(Expression, String, int[]) - Static method in class dunemask.other.StringBasedEncryption
+
+Decrypt a String based on mathematical re-arranging
+
+defaultFolder(String, double) - Static method in class dunemask.dunemasking.Src
+
+Deprecated.
+Returns the location of where the resource folder is.
+
+defKey - Static variable in class dunemask.other.StringBasedEncryption
+
+defKeyCode - Static variable in class dunemask.other.StringBasedEncryption
+
+deleteAllSubFolders(File) - Static method in class dunemask.util.FileUtil
+
+Recursively delete Sub Files and Folders
+
+DMCredits() - Static method in class dunemask.dunemasking.Setup
+
+Prints out all the Dunemasking Things
+
+dunemask - package dunemask
+
+Dunemasking project
+
+dunemask.dm - package dunemask.dm
+
+dunemask.dunemasking - package dunemask.dunemasking
+
+Tools for either working on, or setting up a Dunemasking Project
+
+dunemask.dunemasking.objects - package dunemask.dunemasking.objects
+
+Tools for either working on, or setting up a Dunemasking Project
+
+dunemask.objects - package dunemask.objects
+
+Useful Objects that programs can use
+
+dunemask.objects.movieplayer - package dunemask.objects.movieplayer
+
+dunemask.other - package dunemask.other
+
+Other Things that you might want from Dunemasking
+
+dunemask.resources - package dunemask.resources
+
+Resources for Dunemasking
+
+dunemask.resources.github - package dunemask.resources.github
+
+dunemask.resources.media - package dunemask.resources.media
+
+dunemask.util - package dunemask.util
+
+Utilities that you might use when setting up an External Project
+
+dunemask.util.xml - package dunemask.util.xml
+
+Dunemasking - Class in dunemask
+
+Dunemasking() - Constructor for class dunemask.Dunemasking
+
+Dunemasking_Program_Windows - Static variable in class dunemask.Dunemasking
+
+Program Files Path in windows with / at end
+
+Dunemasking_Program_Windows_Apps - Static variable in class dunemask.Dunemasking
+
+Dunemasking Apps Path in windows with / at end
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-4.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-4.html
new file mode 100644
index 0000000..facba79
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-4.html
@@ -0,0 +1,161 @@
+
+
+
+
+
+E-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
E
+
+element(String) - Static method in class dunemask.util.xml.XMLRW
+
+encrypt(Expression, String, int[]) - Static method in class dunemask.other.StringBasedEncryption
+
+Encrypt a String based on mathematical re-arranging
+
+errContent - Static variable in class dunemask.dunemasking.Capture
+
+Expression - Class in dunemask.objects
+
+Create an expression and call the Solve Function to solve it
+
+ * @author Elijah
+
+Expression(String, String[], int[]) - Constructor for class dunemask.objects.Expression
+
+Create an expression and call the Solve Function to solve it
+
+extractAll(String, String, String) - Static method in class dunemask.util.JarUtil
+
+Extracts jar into new folder named: jarName_lib
+
+extractAll(File, String) - Static method in class dunemask.util.JarUtil
+
+extractAllOpenDialog(File, String) - Static method in class dunemask.util.JarUtil
+
+Extracts jar into new folder named: jarName_lib Displays Small Progress Bar
+ While Extracting
+
+extractAllOpenDialog(String, String, String) - Static method in class dunemask.util.JarUtil
+
+Extracts jar into new folder named: jarName_lib Displays Small Progress Bar
+ While Extracting
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-5.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-5.html
new file mode 100644
index 0000000..9d2899d
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-5.html
@@ -0,0 +1,181 @@
+
+
+
+
+
+F-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
F
+
+Fast() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+MoviePlayer Action
+
+fileExists(File, File) - Static method in class dunemask.util.FileUtil
+
+Tests File exists within a dir
+
+filePathFix(String) - Static method in class dunemask.util.FileUtil
+
+Replace all Back Slashes with forward ones
+
+filePathFixReverse(String) - Static method in class dunemask.util.FileUtil
+
+Replace all Forward Slashes with back ones
+
+FileUtil - Class in dunemask.util
+
+Dunemasking FileUtil for easy editing and changing of filesv
+
+FileUtil() - Constructor for class dunemask.util.FileUtil
+
+filteredItem(String, String[], String[]) - Static method in class dunemask.util.StringUtil
+
+Returns true if it met the Criterea (Case Sensitive)
+
+filteredItemIgnoreCase(String, String[], String[]) - Static method in class dunemask.util.StringUtil
+
+Returns true if it met the Criterea (Not Case Sensitive)
+
+findEntry(File, String) - Static method in class dunemask.util.JarUtil
+
+findInDocument(File, String) - Static method in class dunemask.util.FileUtil
+
+Find a line of text in file, Case Not sensitive
+
+findInDocumentBounds(File, String, int, int) - Static method in class dunemask.util.FileUtil
+
+Find a line of text in file, Case Not sensitive
+
+firstLine - Static variable in class dunemask.util.RW
+
+First Line In RW Document starts here
+
+fixSpaces(String) - Static method in class dunemask.util.FileUtil
+
+Replaces all ' ' with '%20'
+
+fixToSpaces(String) - Static method in class dunemask.util.FileUtil
+
+Replaces all '%20' with ' '
+
+frame - Static variable in class dunemask.objects.movieplayer.MovieLauncher
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-6.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-6.html
new file mode 100644
index 0000000..da93013
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-6.html
@@ -0,0 +1,309 @@
+
+
+
+
+
+G-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
G
+
+getAllSubFiles(File) - Static method in class dunemask.util.FileUtil
+
+Get a list of files and folders from a package
+
+getAnswer() - Method in class dunemask.objects.Expression
+
+getBackButton() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getBorderPane() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getChangeMediaButton() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getConsoleIn(String) - Static method in class dunemask.dunemasking.Capture
+
+getElementFromDoc(ArrayList<String>) - Method in class dunemask.util.xml.XMLMap
+
+Get Value from Element
+
+getElements(File, String[]) - Static method in class dunemask.util.xml.XMLRW
+
+Get All Next Level Elements
+
+getElementsAndKeys(ArrayList<String>) - Method in class dunemask.util.xml.XMLMap
+
+Get Values from all sub elements in a container
+
+getElementsFromDoc(ArrayList<String>) - Method in class dunemask.util.xml.XMLMap
+
+Get Values from all sub elements in a container
+
+getElementsValues(File, String[]) - Static method in class dunemask.util.xml.XMLRW
+
+Returns elements from the XML Doc
+
+getElementsValues(File, String[], ArrayList<String>) - Static method in class dunemask.util.xml.XMLRW
+
+Returns elements from the XML Doc
+
+getElementValue(File, String[]) - Static method in class dunemask.util.xml.XMLRW
+
+Adds a element in the XML Doc
+
+getErr() - Static method in class dunemask.dunemasking.Capture
+
+getExpression() - Method in class dunemask.objects.Expression
+
+getForwardButton() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getHa() - Method in class dunemask.util.xml.XMLMap
+
+getIconHeight() - Method in class dunemask.objects.StretchIcon
+
+Overridden to return 0.
+
+getIconWidth() - Method in class dunemask.objects.StretchIcon
+
+Overridden to return 0.
+
+getImageFile() - Method in class dunemask.objects.ScaledImageLabel
+
+getImageFilePath() - Method in class dunemask.objects.ScaledImageLabel
+
+getInput(String) - Static method in class dunemask.dunemasking.Capture
+
+Get Input From User
+
+getIntExpression() - Method in class dunemask.objects.Expression
+
+getLastState() - Method in class dunemask.util.xml.XMLMap
+
+getLibraryVersion() - Static method in class dunemask.dunemasking.Version
+
+Gets the Library version of Dunemasking
+
+getMap() - Method in class dunemask.objects.ArrayListState
+
+getMedia() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getMediaFinished() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getMediaPlayer() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getMediaView() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getMv() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getOnEndDefault() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getOut() - Static method in class dunemask.dunemasking.Capture
+
+getParent(ArrayList<String>) - Method in class dunemask.util.xml.XMLMap
+
+getParent() - Static method in class dunemask.util.xml.XMLMap.ParentBuilder
+
+getParentByState(String) - Method in class dunemask.util.xml.XMLMap
+
+Get an attribute from xml map based on the state, (not from doc but map)
+
+getPlayButton() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getPlayerReady() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getPlaying() - Method in class dunemask.objects.MusicPlayer
+
+getProgramPath() - Static method in class dunemask.util.JarUtil
+
+getRepeatButton() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getResource(String) - Static method in class dunemask.util.FileUtil
+
+Get File From relative Location "starts at src folder" Inside src folder
+ "resources/README!.txt"; Use that
+
+getResourceURL(String) - Static method in class dunemask.util.FileUtil
+
+Get File From relative Location "starts at src folder" Inside src folder
+ "resources/README!.txt"; Use that
+
+getScaledImageIcon() - Method in class dunemask.objects.ScaledImageLabel
+
+getSeekSlider() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getSerialversionuid() - Static method in class dunemask.objects.MusicPlayer
+
+getSongFolder() - Method in class dunemask.objects.MusicPlayer
+
+getSplitPane() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getStackPane() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getState(String) - Method in class dunemask.objects.ArrayListState
+
+getStateAsArray(String) - Method in class dunemask.objects.ArrayListState
+
+getStopButton() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getSubComponents(ArrayList<String>) - Method in class dunemask.util.xml.XMLMap
+
+Get Components of the XML Map under the parent
+
+getTrackList() - Method in class dunemask.objects.MusicPlayer
+
+getVari() - Method in class dunemask.objects.Expression
+
+getVarNames() - Method in class dunemask.objects.Expression
+
+getVersion() - Static method in class dunemask.dunemasking.Version
+
+Gets the version of Dunemasking
+
+getVolumeSlider() - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+getWebFile(String) - Static method in class dunemask.util.FileUtil
+
+Get File From Specified URL
+
+getWebFile(String, File) - Static method in class dunemask.util.FileUtil
+
+Get File From Specified URL and download to Wanted 'File'
+
+getXml() - Method in class dunemask.util.xml.XMLMap
+
+gitFile(String, String) - Static method in class dunemask.dunemasking.GitHub
+
+Get file From Dunemask Repository
+
+gitFile(String, String, File) - Static method in class dunemask.dunemasking.GitHub
+
+Get file From Dunemask Repository
+
+gitFileFromUser(String, String, String, File) - Static method in class dunemask.dunemasking.GitHub
+
+Get file From Dunemask Repository
+
+gitFileFromUser(String, String, String) - Static method in class dunemask.dunemasking.GitHub
+
+Get file From Dunemask Repository
+
+GitHub - Class in dunemask.dunemasking
+
+GitHub() - Constructor for class dunemask.dunemasking.GitHub
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-7.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-7.html
new file mode 100644
index 0000000..84d4f2c
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-7.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+I-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
I
+
+IDE - Static variable in class dunemask.dunemasking.Src
+
+Deprecated.
+
+init(int, String, String) - Static method in class dunemask.dunemasking.Setup
+
+Sets up program based on how you want
+
+init() - Static method in class dunemask.util.JarUtil
+
+Creates small frame (Should be used for JProgressBar)
+
+init(File, ArrayList<String>) - Static method in class dunemask.util.xml.XMLMap.ParentBuilder
+
+init(File) - Static method in class dunemask.util.xml.XMLMap.ParentBuilder
+
+initialize(URL, ResourceBundle) - Method in class dunemask.objects.movieplayer.MoviePlayer
+
+insertLine(File, String, int) - Static method in class dunemask.util.RW
+
+Insert Line To Specified file
+
+insertLines(File, String[], int) - Static method in class dunemask.util.RW
+
+Insert Lines in Specified file
+
+isElement(File, String[]) - Static method in class dunemask.util.xml.XMLRW
+
+Tests if directed path is element
+
+isEven(int) - Static method in class dunemask.util.MathUtil
+
+Returns if number is even
+
+isJar(String) - Static method in class dunemask.util.JarUtil
+
+Is Jar Returns wether it's a jar or not given a jar name
+
+isOdd(int) - Static method in class dunemask.util.MathUtil
+
+Returns if number is odd
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-8.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-8.html
new file mode 100644
index 0000000..ed9e1d8
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-8.html
@@ -0,0 +1,149 @@
+
+
+
+
+
+J-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
J
+
+Jar - Static variable in class dunemask.dunemasking.Src
+
+Deprecated.
+
+jarName(String) - Static method in class dunemask.dunemasking.Src
+
+Deprecated.
+Returns the Name of Jar from the Default Folder Path
+
+JarSetup - Static variable in class dunemask.dunemasking.Setup
+
+
+
+JarUtil - Class in dunemask.util
+
+Jar Utilities
+
+JarUtil() - Constructor for class dunemask.util.JarUtil
+
+jip - Static variable in class dunemask.dunemasking.Capture
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-9.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-9.html
new file mode 100644
index 0000000..140e30e
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index-files/index-9.html
@@ -0,0 +1,161 @@
+
+
+
+
+
+L-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A C D E F G I J L M N O P R S T U V W X
+
+
+
L
+
+lastAddedFilePath - Static variable in class dunemask.dunemasking.GitHub
+
+lastInstanceOfText(File, String) - Static method in class dunemask.util.FileUtil
+
+Get The last line where a specific text was mentioned
+
+lastLine(File) - Static method in class dunemask.util.FileUtil
+
+Gets the last Line in the document
+
+lastParent() - Method in class dunemask.util.xml.XMLMap
+
+Returns the arraylist by the last state that was indexed
+
+layeredDecryption(String, int, Expression[], int[][]) - Static method in class dunemask.other.StringBasedEncryption
+
+Decrypt a string that's been put through layers of DM encryption
+
+layeredEncryption(String, int, Expression[], int[][]) - Static method in class dunemask.other.StringBasedEncryption
+
+Encrypt a String through layers of DM encryption
+
+linesInFile(File) - Static method in class dunemask.util.FileUtil
+
+Reads the number of lines that are written in the file
+
+listJarEntries(File) - Static method in class dunemask.util.JarUtil
+
+Get the names of all entries in the jar
+
+loadFileInJar(File, String) - Static method in class dunemask.util.JarUtil
+
+Load File In Jar
+
+
+
A C D E F G I J L M N O P R S T U V W X
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index.html
new file mode 100644
index 0000000..7144d35
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/index.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+Generated Documentation (Untitled)
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+Frame Alert
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to Non-frame version .
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/overview-frame.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/overview-frame.html
new file mode 100644
index 0000000..5a058f1
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/overview-frame.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+Overview List
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/overview-summary.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/overview-summary.html
new file mode 100644
index 0000000..f80f305
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/overview-summary.html
@@ -0,0 +1,196 @@
+
+
+
+
+
+Overview
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/overview-tree.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/overview-tree.html
new file mode 100644
index 0000000..17204b9
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/overview-tree.html
@@ -0,0 +1,207 @@
+
+
+
+
+
+Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
Class Hierarchy
+
+java.lang.Object
+
+javafx.application.Application
+
+
+dunemask.objects.ArrayListState
+dunemask.util.AudioUtil
+dunemask.dunemasking.Capture
+dunemask.dunemasking.Changelog
+dunemask.dm.CMD
+java.awt.Component (implements java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable)
+
+java.awt.Container
+
+javax.swing.JComponent (implements java.io.Serializable)
+
+javax.swing.JInternalFrame (implements javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants)
+
+
+javax.swing.JLabel (implements javax.accessibility.Accessible, javax.swing.SwingConstants)
+
+
+
+
+
+
+
+
+dunemask.Dunemasking
+dunemask.objects.Expression (implements java.io.Serializable)
+dunemask.util.FileUtil
+dunemask.dunemasking.GitHub
+javax.swing.ImageIcon (implements javax.accessibility.Accessible, javax.swing.Icon, java.io.Serializable)
+
+
+dunemask.util.JarUtil
+dunemask.util.MathUtil
+dunemask.util.MediaUtil
+dunemask.objects.movieplayer.MoviePlayer (implements javafx.fxml.Initializable)
+dunemask.util.ObjectUtil
+dunemask.util.RW
+dunemask.dunemasking.Setup
+dunemask.dunemasking.Src
+dunemask.other.StringBasedEncryption
+dunemask.util.StringUtil
+java.lang.Thread (implements java.lang.Runnable)
+
+
+dunemask.dunemasking.Version
+dunemask.util.xml.XMLMap
+dunemask.util.xml.XMLMap.ParentBuilder
+dunemask.util.xml.XMLRW
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/package-list b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/package-list
new file mode 100644
index 0000000..57c6e71
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/package-list
@@ -0,0 +1,12 @@
+dunemask
+dunemask.dm
+dunemask.dunemasking
+dunemask.dunemasking.objects
+dunemask.objects
+dunemask.objects.movieplayer
+dunemask.other
+dunemask.resources
+dunemask.resources.github
+dunemask.resources.media
+dunemask.util
+dunemask.util.xml
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/script.js b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/script.js
new file mode 100644
index 0000000..b346356
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/script.js
@@ -0,0 +1,30 @@
+function show(type)
+{
+ count = 0;
+ for (var key in methods) {
+ var row = document.getElementById(key);
+ if ((methods[key] & type) != 0) {
+ row.style.display = '';
+ row.className = (count++ % 2) ? rowColor : altColor;
+ }
+ else
+ row.style.display = 'none';
+ }
+ updateTabs(type);
+}
+
+function updateTabs(type)
+{
+ for (var value in tabs) {
+ var sNode = document.getElementById(tabs[value][0]);
+ var spanNode = sNode.firstChild;
+ if (value == type) {
+ sNode.className = activeTableTab;
+ spanNode.innerHTML = tabs[value][1];
+ }
+ else {
+ sNode.className = tableTab;
+ spanNode.innerHTML = "" + tabs[value][1] + " ";
+ }
+ }
+}
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/serialized-form.html b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/serialized-form.html
new file mode 100644
index 0000000..7dda620
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/serialized-form.html
@@ -0,0 +1,260 @@
+
+
+
+
+
+Serialized Form
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/stylesheet.css b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/stylesheet.css
new file mode 100644
index 0000000..98055b2
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/resources/doc/stylesheet.css
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+ background-color:#ffffff;
+ color:#353833;
+ font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+ font-size:14px;
+ margin:0;
+}
+a:link, a:visited {
+ text-decoration:none;
+ color:#4A6782;
+}
+a:hover, a:focus {
+ text-decoration:none;
+ color:#bb7a2a;
+}
+a:active {
+ text-decoration:none;
+ color:#4A6782;
+}
+a[name] {
+ color:#353833;
+}
+a[name]:hover {
+ text-decoration:none;
+ color:#353833;
+}
+pre {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+}
+h1 {
+ font-size:20px;
+}
+h2 {
+ font-size:18px;
+}
+h3 {
+ font-size:16px;
+ font-style:italic;
+}
+h4 {
+ font-size:13px;
+}
+h5 {
+ font-size:12px;
+}
+h6 {
+ font-size:11px;
+}
+ul {
+ list-style-type:disc;
+}
+code, tt {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ padding-top:4px;
+ margin-top:8px;
+ line-height:1.4em;
+}
+dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ padding-top:4px;
+}
+table tr td dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ vertical-align:top;
+ padding-top:4px;
+}
+sup {
+ font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+ clear:both;
+ height:0px;
+ overflow:hidden;
+}
+.aboutLanguage {
+ float:right;
+ padding:0px 21px;
+ font-size:11px;
+ z-index:200;
+ margin-top:-9px;
+}
+.legalCopy {
+ margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+ color:#FFFFFF;
+ text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+ color:#bb7a2a;
+}
+.tab {
+ background-color:#0066FF;
+ color:#ffffff;
+ padding:8px;
+ width:5em;
+ font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ padding:.8em .5em .4em .8em;
+ height:auto;/*height:1.8em;*/
+ font-size:11px;
+ margin:0;
+}
+.topNav {
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+ font-size:12px;
+}
+.bottomNav {
+ margin-top:10px;
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+ font-size:12px;
+}
+.subNav {
+ background-color:#dee3e9;
+ float:left;
+ width:100%;
+ overflow:hidden;
+ font-size:12px;
+}
+.subNav div {
+ clear:left;
+ float:left;
+ padding:0 0 5px 6px;
+ text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+ float:left;
+ margin:0 25px 0 0;
+ padding:0;
+}
+ul.navList li{
+ list-style:none;
+ float:left;
+ padding: 5px 6px;
+ text-transform:uppercase;
+}
+ul.subNavList li{
+ list-style:none;
+ float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+ color:#FFFFFF;
+ text-decoration:none;
+ text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+ text-decoration:none;
+ color:#bb7a2a;
+ text-transform:uppercase;
+}
+.navBarCell1Rev {
+ background-color:#F8981D;
+ color:#253441;
+ margin: auto 5px;
+}
+.skipNav {
+ position:absolute;
+ top:auto;
+ left:-9999px;
+ overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+ clear:both;
+ margin:0 20px;
+ padding:5px 0 0 0;
+}
+.indexHeader {
+ margin:10px;
+ position:relative;
+}
+.indexHeader span{
+ margin-right:15px;
+}
+.indexHeader h1 {
+ font-size:13px;
+}
+.title {
+ color:#2c4557;
+ margin:10px 0;
+}
+.subTitle {
+ margin:5px 0 0 0;
+}
+.header ul {
+ margin:0 0 15px 0;
+ padding:0;
+}
+.footer ul {
+ margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+ list-style:none;
+ font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+ background-color:#dee3e9;
+ border:1px solid #d0d9e0;
+ margin:0 0 6px -8px;
+ padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+ background-color:#dee3e9;
+ border:1px solid #d0d9e0;
+ margin:0 0 6px -8px;
+ padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+ padding:0;
+ margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+ padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+ clear:both;
+ padding:10px 20px;
+ position:relative;
+}
+.indexContainer {
+ margin:10px;
+ position:relative;
+ font-size:12px;
+}
+.indexContainer h2 {
+ font-size:13px;
+ padding:0 0 3px 0;
+}
+.indexContainer ul {
+ margin:0;
+ padding:0;
+}
+.indexContainer ul li {
+ list-style:none;
+ padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+ font-size:12px;
+ font-weight:bold;
+ margin:10px 0 0 0;
+ color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+ margin:5px 0 10px 0px;
+ font-size:14px;
+ font-family:'DejaVu Sans Mono',monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+ margin-left:1px;
+ font-size:1.1em;
+ display:inline;
+ font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+ margin:0 0 0 1px;
+ font-size:1.1em;
+ display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+ display:inline;
+ font-size:0.9em;
+}
+ul.inheritance {
+ margin:0;
+ padding:0;
+}
+ul.inheritance li {
+ display:inline;
+ list-style:none;
+}
+ul.inheritance li ul.inheritance {
+ margin-left:15px;
+ padding-left:15px;
+ padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+ margin:10px 0 10px 0;
+ padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+ list-style:none;
+ margin-bottom:15px;
+ line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+ padding:0px 20px 5px 10px;
+ border:1px solid #ededed;
+ background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+ padding:0 0 5px 8px;
+ background-color:#ffffff;
+ border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+ margin-left:0;
+ padding-left:0;
+ padding-bottom:15px;
+ border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+ list-style:none;
+ border-bottom:none;
+ padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+ margin-top:0;
+ margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+ width:100%;
+ border-left:1px solid #EEE;
+ border-right:1px solid #EEE;
+ border-bottom:1px solid #EEE;
+}
+.overviewSummary, .memberSummary {
+ padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+ position:relative;
+ text-align:left;
+ background-repeat:no-repeat;
+ color:#253441;
+ font-weight:bold;
+ clear:none;
+ overflow:hidden;
+ padding:0px;
+ padding-top:10px;
+ padding-left:1px;
+ margin:0px;
+ white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+ color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ padding-bottom:7px;
+ display:inline-block;
+ float:left;
+ background-color:#F8981D;
+ border: none;
+ height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ margin-right:3px;
+ display:inline-block;
+ float:left;
+ background-color:#F8981D;
+ height:16px;
+}
+.memberSummary caption span.tableTab span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ margin-right:3px;
+ display:inline-block;
+ float:left;
+ background-color:#4D7A97;
+ height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+ padding-top:0px;
+ padding-left:0px;
+ padding-right:0px;
+ background-image:none;
+ float:none;
+ display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+ display:none;
+ width:5px;
+ position:relative;
+ float:left;
+ background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+ display:none;
+ width:5px;
+ margin-right:3px;
+ position:relative;
+ float:left;
+ background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+ display:none;
+ width:5px;
+ margin-right:3px;
+ position:relative;
+ background-color:#4D7A97;
+ float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+ text-align:left;
+ padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+ vertical-align:top;
+ padding-right:0px;
+ padding-top:8px;
+ padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+ background:#dee3e9;
+ text-align:left;
+ padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+ white-space:nowrap;
+ font-size:13px;
+}
+td.colLast, th.colLast {
+ font-size:13px;
+}
+td.colOne, th.colOne {
+ font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+ width:25%;
+ vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+ font-weight:bold;
+}
+.tableSubHeadingColor {
+ background-color:#EEEEFF;
+}
+.altColor {
+ background-color:#FFFFFF;
+}
+.rowColor {
+ background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+ margin-top:0;
+}
+.deprecatedContent {
+ margin:0;
+ padding:10px 0;
+}
+.docSummary {
+ padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+ font-style:normal;
+}
+
+div.block {
+ font-size:14px;
+ font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+ padding-top:0px;
+}
+
+
+td.colLast a {
+ padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+ color:green;
+ padding:0 30px 0 0;
+}
+h1.hidden {
+ visibility:hidden;
+ overflow:hidden;
+ font-size:10px;
+}
+.block {
+ display:block;
+ margin:3px 10px 2px 0px;
+ color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+ font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+ font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+ font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+ padding-bottom:0px;
+}
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/.gitignore b/source/VoxelCraft/src/dunemasking/dunemask/util/.gitignore
new file mode 100644
index 0000000..80b6e87
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/.gitignore
@@ -0,0 +1,13 @@
+/FileUtil.class
+/MathUtil.class
+/MediaUtil$1.class
+/MediaUtil$2.class
+/MediaUtil$3.class
+/MediaUtil$4.class
+/MediaUtil$5.class
+/MediaUtil.class
+/RW.class
+/ResourceUtil.class
+/StringUtil.class
+/ArchiveUtil.class
+/IOUtil.class
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/ArchiveUtil.java b/source/VoxelCraft/src/dunemasking/dunemask/util/ArchiveUtil.java
new file mode 100644
index 0000000..0795039
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/ArchiveUtil.java
@@ -0,0 +1,54 @@
+package dunemask.util;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URL;
+
+public class ArchiveUtil {
+
+
+
+
+
+
+
+
+ /** Get File From Jar
+ * @param jar Jar File
+ * @param absoluteInternalPath Absolute Internal Path to file sought
+ * @param out File to Be written out
+ * @return The file out now written with the is, or null if failure
+ *
+ * */
+ public static File getFileFromJar(File jar,String absoluteInternalPath,File out) {
+ try {
+ if(!absoluteInternalPath.startsWith("/")) {
+ absoluteInternalPath = "/"+absoluteInternalPath;
+ }
+ String baseurl = jar.toURI().toURL().toString();
+ URL murl = new URL("jar:"+baseurl+"!"+absoluteInternalPath);
+ InputStream is = murl.openStream();
+ byte[] buffer = new byte[is.available()];
+ is.read(buffer);
+ OutputStream outStream = new FileOutputStream(out);
+ outStream.write(buffer);
+ outStream.close();
+ is.close();
+ return out;
+ }catch(Exception e) {
+ System.err.println("Ya don goofed! Check yer paths");
+ e.printStackTrace();
+ return null;
+ }
+
+ }
+
+
+
+
+
+
+
+}
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/FileUtil.java b/source/VoxelCraft/src/dunemasking/dunemask/util/FileUtil.java
new file mode 100644
index 0000000..54b545a
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/FileUtil.java
@@ -0,0 +1,249 @@
+package dunemask.util;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.security.SecureRandom;
+import java.util.ArrayList;
+import java.util.Arrays;
+/**Dunemasking FileUtil for easy editing and changing of filesv
+ * Test In List: {@link dunemask.util.FileUtil#alreadyInFile(File, String)}
+ * Remove Extension From File: {@link dunemask.util.FileUtil#removeExtension(String)}
+ * Change File Extension: {@link dunemask.util.FileUtil#changeExtension(String, String)}
+ * Get Number of Lines In File: {@link dunemask.util.FileUtil#linesInFile(File)}
+ * Change FilePath Folder Handling: {@link dunemask.util.FileUtil#filePathFix(String)}
+ * Find Certain Text In Document: {@link dunemask.util.FileUtil#findInDocument(File, String)}
+ * Get SubFiles: {@link dunemask.util.FileUtil#getAllSubFiles(File)}
+ * Return Next Free Line In File: {@link dunemask.util.FileUtil#nextFreeLine(File)}
+ * Get File From URL: {@link dunemask.util.FileUtil#getWebFile(String)}
+ * Write File from File: {@link dunemask.util.FileUtil#writeFile(File, File)}
+ *
+ * @author Elijah
+ * */
+public class FileUtil{
+ /** Write the url to the File Not to be mistaken with {@link ResourceUtil#writeUrl(URL, File)}
+ * Primarily Used for Retrieving Files From the Web
+ * @param path URL path
+ * @return
+ * */
+ public static File retrieveFile(String path) {
+ File tmp = null;
+ try {
+ tmp = File.createTempFile("Temp"+new SecureRandom(), ".dtmp");
+ FileUtil.retrieveFile(path, tmp);
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return tmp;
+ }
+
+
+ /** Write the url to the File Not to be mistaken with {@link ResourceUtil#writeUrl(URL, File)}
+ * Primarily Used for Retrieving Files From the Web
+ * @param path URL path
+ * @param file file where the url will be written
+ * */
+ public static void retrieveFile(String path,File file) {
+ path = path.replace(" ", "%20");
+ URLConnection connection;
+ try {
+ URL url = new URL(path);
+ connection = url.openConnection();
+ InputStream in = connection.getInputStream();
+ FileOutputStream fos = new FileOutputStream(file);
+ byte[] buf = new byte[512];
+ while (true) {
+ int len = in.read(buf);
+ if (len == -1) {
+ break;
+ }
+ fos.write(buf, 0, len);
+ }
+ in.close();
+ fos.flush();
+ fos.close();
+ } catch (IOException e) {
+
+ e.printStackTrace();
+ }
+ }
+
+
+ /**@deprecated use {@link FileUtil#retrieveFile(String)}
+ * Get File From Specified URL (Web File)
+ * @param address address
+ * @return Return file from url
+ * */
+ public static File getWebFile(String address) {
+ File webFile=null;
+
+ try {
+ webFile = getWebFile(address,File.createTempFile("tmp", null));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ return webFile;
+
+ }
+
+ /**@deprecated Use: {@link FileUtil#retrieveFile(String, File)}
+ *
+ * Get File From Specified URL and download to Wanted 'File' (Web File)
+ * @param address address
+ * @return Return file from url
+ * */
+ public static File getWebFile(String address,File file) {
+ URL url = null;
+ try {
+ url = new URL(FileUtil.filePathFix(address).replace(" ", "%20"));
+ } catch (MalformedURLException e1) {
+ e1.printStackTrace();
+ }
+
+ File webFile=null;
+ //String name = new File(url.getFile()).getName();
+ // String tDir = System.getProperty("java.io.tmpdir");
+ try {
+ InputStream in = url.openStream();
+ webFile = file;
+
+ OutputStream out = new FileOutputStream(webFile);
+ int read;
+ byte[] bytes = new byte[1024^4];
+
+ while ((read = in.read(bytes)) != -1) {
+ out.write(bytes, 0, read);
+ }
+
+ out.flush();
+ out.close();
+ in.close();
+ //webFile.deleteOnExit();
+
+
+ }catch(IOException e) {
+ e.printStackTrace();
+ }
+ return webFile;
+
+ }
+
+
+ /**Write File From "File"
+ * @param fileIn Input File
+ * @param fileOut Place where file will be written
+ * **/
+ public static void writeFile(File fileIn,File fileOut) {
+ try {
+ fileOut.getParentFile().mkdirs();
+ fileOut.createNewFile();
+ InputStream in = new FileInputStream(fileIn);
+ OutputStream out = new FileOutputStream(fileOut);
+ int read;
+ byte[] bytes = new byte[1024*1024];
+
+ while ((read = in.read(bytes)) != -1) {
+ out.write(bytes, 0, read);
+ }
+ out.close();
+ in.close();
+ }catch(IOException e) {
+ e.printStackTrace();
+ }
+
+
+
+ }
+
+
+
+
+
+
+
+
+ /**
+ * Reads the number of lines that are written in the file
+ *
+ * @param file
+ * File whose lines shall be counted
+ * @return Returns the number of lines in the file or -1 if it blew up
+ */
+ public static int linesInFile(File file) {
+ return RW.countLines(IOUtil.FTU(file));
+
+ }
+
+ /**Get a list of files and folders from a package
+ * @param dir Starts at src level and works relative from that
+ * @return Returnrs array of files
+ *
+ * **/
+ public static File[] getAllSubFiles(File dir) {
+ thefiles = new ArrayList<>();
+ File[] subPackage = dir.listFiles();
+ ArrayList arfiles = new ArrayList<>(Arrays.asList(subPackage));
+ setf(dir,arfiles);
+ File[] files = getFiles();
+ return files;
+
+ }
+
+
+
+ private static ArrayList thefiles = new ArrayList<>();
+ private static File[] getFiles() {
+ //thefiles = new ArrayList<>();
+ File[] files = thefiles.toArray(new File[thefiles.size()]);
+ return files;
+
+ }
+
+ private static void setf(File directory, ArrayList files) {
+
+
+ // get all the files from a directory
+ File[] fList = directory.listFiles();
+ for (File file : fList) {
+ if (file.isFile()) {
+ files.add(file);
+ thefiles.add(file);
+ } else if (file.isDirectory()) {
+ thefiles.add(file);
+ setf(file, files);
+ }
+ }
+
+ }
+
+ /**
+ * Replace all back/forward slashes with the system file sepearator
+ *
+ * @param filePath
+ * Path To File
+ * @return String WIth forward slahes as opposed to backslahes
+ * @deprecated since 10.1
+ * @since 3.0
+ **/
+ public static String filePathFix(String filePath) {
+ return filePath.replace("/", "\\").replace("\\", File.separator);
+
+ }
+
+
+
+
+
+
+
+
+}
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/IOUtil.java b/source/VoxelCraft/src/dunemasking/dunemask/util/IOUtil.java
new file mode 100644
index 0000000..4aebc24
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/IOUtil.java
@@ -0,0 +1,131 @@
+/**
+ *
+ */
+package dunemask.util;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+/**
+ * @author Dunemask
+ *
+ */
+public class IOUtil {
+
+ /** Convert File to URL
+ * @param file
+ * @return url
+ *
+ * */
+ public static URL FTU(File file) {
+ try {
+ return file.toURI().toURL();
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ /** Write A Byte Array to a file
+ * @param bytes
+ * @param out
+ *
+ * */
+ public static void writeBytes(byte[] bytes,File out) {
+ try{
+ FileOutputStream fos = new FileOutputStream(out);
+ fos.write(bytes);
+ fos.close();
+ }catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /** Read Bytes from a path
+ * @param url URL
+ * @return byte array
+ *
+ * */
+ public static byte[] getBytes(URL url) {
+ InputStream is = null;
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ try {
+ is = url.openStream ();
+ byte[] byteChunk = new byte[4096]; // Or whatever size you want to read in at a time.
+ int n;
+
+ while ( (n = is.read(byteChunk)) > 0 ) {
+ baos.write(byteChunk, 0, n);
+ }
+ }
+ catch (IOException e) {
+ System.err.printf ("Failed while reading bytes from %s: %s", url.toExternalForm(), e.getMessage());
+ e.printStackTrace ();
+ // Perform any other exception handling that's appropriate.
+ }
+ finally {
+ if (is != null) { try {
+ is.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } }
+ }
+ return baos.toByteArray();
+ }
+
+
+ /** @param url URL Usually a resource if blowing up try checking yer resourcepath first
+ * @return return "File" Form of the url by writing it out
+ * */
+ public static File writeUrl(URL url) {
+ File f = null;
+ try {
+ f = File.createTempFile("tempfile", ".tmp");
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ try {
+ return writeFile(url,f);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+ /** @param url URL Usually a resource if blowing up try checking yer resourcepath first
+ * @param f File where the url will be written
+ * @return return "File" Form of the url by writing it out
+ * */
+ public static File writeUrl(URL url,File f) {
+ try {
+ return writeFile(url,f);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+ private static int bytesize = 1024^3;
+
+ private static File writeFile(URL url,File file) throws Exception {
+ InputStream is = url.openStream();
+ OutputStream out = new FileOutputStream(file);
+ int read;
+ byte[] bytes = new byte[bytesize];
+
+ while ((read = is.read(bytes)) != -1) {
+ out.write(bytes, 0, read);
+ }
+ //file.deleteOnExit();
+ out.close();
+
+
+ return file;
+ }
+
+
+}
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/MathUtil.java b/source/VoxelCraft/src/dunemasking/dunemask/util/MathUtil.java
new file mode 100644
index 0000000..f4d2e3b
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/MathUtil.java
@@ -0,0 +1,50 @@
+/**
+ *
+ */
+package dunemask.util;
+
+/**Dunemasking MathUtil is a tool for the IDE development
+ * Remove Decimal: {@link dunemask.util.MathUtil#removeDecimal(double)}
+ * @author Elijah
+ *
+ */
+public class MathUtil {
+ /***Version*/
+ final static double version = 4.5;
+
+ /**Rips the decimal
+ * @param doub The double you want the decimal removed from
+ * @return Returns double with only decimal value
+ * **/
+ public static double getDecimal(double doub) {
+
+ return (doub - (int)doub);
+
+ }
+ /**Returns if number is even
+ * @param number Number
+ * @return return true if Number is even, false otherwise
+ * */
+ public static boolean isEven(int number) {
+ boolean isEven = false;
+ if((number%2)==0) {
+ isEven = true;
+ }
+ return isEven;
+ }
+
+ /**Returns if number is odd
+ * @param number Number
+ * @return return true if Number is odd, false otherwise
+ * */
+ public static boolean isOdd(int number) {
+ if(!isEven(number)) {
+ return true;
+ }else {
+ return false;
+ }
+
+ }
+
+
+}
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/RW.java b/source/VoxelCraft/src/dunemasking/dunemask/util/RW.java
new file mode 100644
index 0000000..8d98259
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/RW.java
@@ -0,0 +1,256 @@
+package dunemask.util;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+
+/** RW Is a simple Read and Write Program
+ * @author dunemask
+ * @since 3.0
+ * @version 10.1
+ *
+ * */
+public class RW {
+
+ /**Read a line from a file
+ * @param url
+ * @param line
+ * @return text on line
+ *
+ * */
+ public static String read(URL url,int line) {
+ return read(url,line,line).get(0);
+ }
+
+ /** Read a file
+ * @param url
+ * @param start
+ * @param end
+ * @return list of lines
+ *
+ * */
+ public static ArrayList read(URL url,int start,int end){
+ if(end lines = new ArrayList();
+ try {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
+ String cline=null;
+ while (((cline=reader.readLine()) != null)&&linecount!=end) {
+ ++linecount;
+ if(linecount>=start) {
+ lines.add(cline);
+ }
+ }
+ reader.close();
+ }catch(Exception e) {
+ e.printStackTrace();
+ }
+ return lines;
+
+
+
+ }
+
+
+
+ /** Read Lines in a file until and including a specific line
+ * @param url URL
+ * @param line Line until stop
+ * @return ArrayList of the lines
+ *
+ *
+ */
+ public static ArrayList readUntil(URL url,int line) {
+ int linecount = 0;
+ ArrayList lines = new ArrayList();
+ try {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
+ String cline=null;
+ while (((cline=reader.readLine()) != null)&&linecount!=line) {
+ lines.add(cline);
+ ++linecount;
+ }
+ reader.close();
+ }catch(Exception e) {
+ e.printStackTrace();
+ }
+ return lines;
+ }
+
+
+ /** Read All Lines In A File
+ * @param URL
+ * @return All Lines From File
+ * */
+ public static ArrayList readAll(URL url) {
+
+ ArrayList lines = new ArrayList();
+ try {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
+ String cline=null;
+ while ((cline=reader.readLine()) != null) {
+ lines.add(cline);
+ }
+ reader.close();
+ }catch(Exception e) {
+ e.printStackTrace();
+ }
+ return lines;
+
+ }
+
+
+
+
+
+
+
+ /** Write list of text to file
+ * @param file
+ * @param list Text to be written
+ * @param line Start Line
+ *
+ *
+ *
+ * */
+ public static void write(File file,ArrayList list,int line) {
+ String[] text = list.toArray(new String[list.size()]);
+ try {
+ int i,c,linesInFile;
+ ArrayList lines =null;
+ if(file.exists()) {
+ lines = readAll(file.toURI().toURL()); //= read(file, 1, Math.max(linesInFile,(text.length-1)+line));
+ }else {
+ lines = new ArrayList(line+list.size()-1);
+ }
+ linesInFile = lines.size()-1;
+ if(linesInFile txt = new ArrayList(Arrays.asList(new String[] {text}));
+ write(file,txt,line);
+
+ }
+ /** Writes list of text to a file
+ * @param file
+ * @param text
+ * */
+ public static void writeAll(File out,ArrayList text) {
+ write(out,text,1);
+
+
+
+ }
+
+
+ /** Returns the number of lines in the file
+ * @param url URL
+ * @return lines in file or -1 if an error occurred
+ *
+ * */
+ public static int countLines(URL url) {
+ int count = 0;
+ try {
+ InputStream is = new BufferedInputStream(url.openStream());
+ try {
+ byte[] c = new byte[1024];
+ int readChars = 0;
+ boolean endsWithoutNewLine = false;
+ while ((readChars = is.read(c)) != -1) {
+ for (int i = 0; i < readChars; ++i) {
+ if (c[i] == '\n')
+ ++count;
+ }
+ endsWithoutNewLine = (c[readChars - 1] != '\n');
+ }
+ if(endsWithoutNewLine) {
+ ++count;
+ }
+ return count;
+ } finally {
+ is.close();
+ }
+
+ }catch(Exception e) {
+ e.printStackTrace();
+ count = -1;
+ }
+ return count;
+ }
+
+
+
+}
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/ResourceUtil.java b/source/VoxelCraft/src/dunemasking/dunemask/util/ResourceUtil.java
new file mode 100644
index 0000000..993cd90
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/ResourceUtil.java
@@ -0,0 +1,77 @@
+/**
+ *
+ */
+package dunemask.util;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URL;
+
+/**
+ * @author dunemask
+ *@deprecated
+ */
+public class ResourceUtil {
+
+
+ /** @param url URL Usually a resource if blowing up try checking yer resourcepath first
+ * @return return "File" Form of the url by writing it out
+ * */
+ public static File writeUrl(URL url) {
+ File f = null;
+ try {
+ f = File.createTempFile("tempfile", ".tmp");
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ try {
+ return writeFile(url,f);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+ /** @param url URL Usually a resource if blowing up try checking yer resourcepath first
+ * @param f File where the url will be written
+ * @return return "File" Form of the url by writing it out
+ * */
+ public static File writeUrl(URL url,File f) {
+ try {
+ return writeFile(url,f);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+ private static int bytesize = 1024^3;
+
+ private static File writeFile(URL url,File file) throws Exception {
+ InputStream is = url.openStream();
+ OutputStream out = new FileOutputStream(file);
+ int read;
+ byte[] bytes = new byte[bytesize];
+
+ while ((read = is.read(bytes)) != -1) {
+ out.write(bytes, 0, read);
+ }
+ //file.deleteOnExit();
+ out.close();
+
+
+ return file;
+ }
+
+
+ public static String sysPathFix(String path) {
+ path=path.replace("\\", "/");
+ String fs = File.separator;
+ path = path.replace("\\", fs);
+ return path;
+
+ }
+
+
+}
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/StringUtil.java b/source/VoxelCraft/src/dunemasking/dunemask/util/StringUtil.java
new file mode 100644
index 0000000..be5e9d8
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/StringUtil.java
@@ -0,0 +1,169 @@
+package dunemask.util;
+
+import java.util.Random;
+
+/**Tests if String Is Already In The List: {@link dunemask.util.StringUtil#alreadyInList(String[], String)}
+ * Tests if String Contains Char Sequence Ignoring Cases: {@link dunemask.util.StringUtil#containsIgnoreCase(String, String)}
+ * Tests if the Text passes Criteria Set: {@link dunemask.util.StringUtil#filteredItem(String, String[], String[])}
+ * Tests if the Text passes Criteria Set Ignoring Cases: {@link dunemask.util.StringUtil#filteredItemIgnoreCase(String, String[], String[])}
+ * Generate Character from {@link dunemask.util.StringUtil#alphabet}
+ * Random CharGenny Method: {@link dunemask.util.StringUtil#randomCharacterGenerator(String[])}
+ *
+ * */
+public class StringUtil {
+
+ final static double version = 4.5;
+
+ /** Tab WhiteSpace
+ *
+ * */
+ public static final String tab = " ";
+
+
+
+ /**
+ * The Alphabet To Be Searched for Random Char Gen.
+ */
+ public static final String alphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ?/., !#$%^&*()_-+=~`{[}]|?><:;\\";
+ /**Compares to see if string one contains string two
+ * @param one, String One
+ * @param two, String two
+ * @return If String one contains string two ignoring case sensitive
+ * **/
+ public static boolean containsIgnoreCase(String one,String two){
+ one = one.toLowerCase();
+ two = two.toLowerCase();
+ if(one.contains(two)){
+ return true;
+ }else{
+ return false;
+ }
+ }
+ /** @param string String
+ * @param toReplace String wanted replaced
+ * @param replacement What will be replaced
+ * @param return Replaced String or the string if not changed
+ *
+ * */
+ public static String replaceLast(String string, String toReplace, String replacement) {
+ int pos = string.lastIndexOf(toReplace);
+ if (pos > -1) {
+ return string.substring(0, pos)
+ + replacement
+ + string.substring(pos + toReplace.length(), string.length());
+ } else {
+ return string;
+ }
+ }
+ /**Returns true if it met the Criterea (Case Sensitive)
+ * @param text Text being run through excpetions
+ * @param exceptions List of things that the text cannot contain
+ * @param requirements List of things that the text Must Contain
+ * @return Returns true if it made it through the filter false otherwise
+ * */
+ public static boolean filteredItem(String text,String[] exceptions, String[] requirements) {
+
+
+ boolean filtered = true;
+ for(String x:exceptions) {
+
+ if(text.contains(x)) {
+ filtered = false;
+ }else {
+ //System.out.println(text);
+ }
+
+ }
+
+ for(String r: requirements){
+
+ if(!text.contains(r)){
+ filtered=false;
+ }
+ }
+
+
+ return filtered;
+ }
+ /**Returns true if it met the Criterea (Not Case Sensitive)
+ * @param text Text being run through excpetions
+ * @param exceptions List of things that the text cannot contain
+ * @param requirements List of things that the text Must Contain
+ * @return Returns true if it made it through the filter false otherwise
+ * */
+ public static boolean filteredItemIgnoreCase(String text,String[] exceptions, String[] requirements) {
+ boolean filtered = true;
+ for(String x:exceptions) {
+
+ if(StringUtil.containsIgnoreCase(text, x)) {
+ filtered = false;
+ }
+ }
+
+ for(String r: requirements){
+
+ if(!StringUtil.containsIgnoreCase(text, r)){
+ filtered=false;
+ }
+ }
+
+
+ return filtered;
+
+
+
+ }
+
+ /**
+ * Gets a random character that isn't in a list already New Character from:
+ * 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ?/.,
+ *
+ * @param chosen
+ * The String array that can't have the specific character
+ * @return Returns random character that is not in the list
+ */
+ public static char randomCharacterGenerator(String[] chosen) {
+
+ Random rnd = new Random();
+ char c;
+ String chara;
+
+ c = alphabet.charAt(rnd.nextInt(alphabet.length()));
+ chara = String.valueOf(c);
+ if (!StringUtil.alreadyInList(chosen, chara)) {
+ return c;
+ } else {
+ return "@".charAt(0);
+ }
+
+ }
+
+ /**
+ * Scans the file to see if the text is already in the list (Case Sensitive)
+ *
+ * @param sArray
+ * String array to be searched
+ * @param text
+ * to look for
+ * @return Whether it's in the list or not.
+ */
+ public static boolean alreadyInList(String[] sArray, String text) {
+ if (sArray != null) {
+ boolean isInList = false;
+ for (int i = 1; i < sArray.length; i++) {
+ if(sArray[i]!=null) {
+ if (sArray[i].equals(text) && sArray[i] != null) {
+ isInList = true;
+ i=sArray.length;
+ }//End Test text
+ }//End if not Null
+
+ }
+ return isInList;
+ } else {
+ return false;
+ }
+ }
+
+
+}
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/internal/.gitignore b/source/VoxelCraft/src/dunemasking/dunemask/util/internal/.gitignore
new file mode 100644
index 0000000..4914368
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/internal/.gitignore
@@ -0,0 +1,5 @@
+/InternalFileUtil.class
+/JarUtil.class
+/RW.class
+/DMRW.class
+/JarInternalUtil.class
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/internal/DMRW.java b/source/VoxelCraft/src/dunemasking/dunemask/util/internal/DMRW.java
new file mode 100644
index 0000000..e98b298
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/internal/DMRW.java
@@ -0,0 +1,336 @@
+ package dunemask.util.internal;
+
+import java.io.BufferedOutputStream;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.NoSuchElementException;
+import java.util.Scanner;
+
+import dunemask.util.FileUtil;
+
+/**
+ * Reads And Writes Files
+ * Write One Line of Text: {@link dunemask.util.RW#write(File, String, int)}
+ * Write Multiple Lines of Text: {@link dunemask.util.RW#write(File, String[], int)}
+ * Read One Line of Text From File: {@link dunemask.util.RW#read(File, int)}
+ * Read Lines from File: {@link dunemask.util.RW#read(File, int, int)}
+ * Reads all lines from File: {@link dunemask.util.RW#readAll(File)}
+ * @author Elijah Dunemask
+ **/
+public class DMRW {
+ /***Version*/
+ final static double version = 4.5;
+ /**First Line In RW Document starts here*/
+ public final static int firstLine=0;
+
+ /**
+ * Insert Line To Specified file
+ *
+ * @param file
+ * File Where line is inserted
+ * @param text
+ * Text to be Inserted
+ * @param line
+ * Line where text will be inserted
+ *
+ */
+ public static void insertLine(File file,String text,int line,int buffersize) {
+ String[] lines = DMRW.readAll(file);
+ ArrayList newLines = new ArrayList();
+ if(line>lines.length) {
+ throw new RuntimeException("Line Bounds "+ line + " Exceed the File's Length of "+lines.length);
+ }
+ int store = 0;
+ // StartLine-1 Is one less than the holder
+ for(int i=0;i newLines = new ArrayList();
+ if(startLine>lines.length) {
+ throw new RuntimeException("Line Bounds "+ startLine + " Exceed the File's Length of "+lines.length);
+ }
+ int store = 0;
+ // StartLine-1 Is one less than the holder
+ for(int i=0;i insertLines = new ArrayList(Arrays.asList(text));
+ newLines.addAll(insertLines);
+ for(int i=store;iTest In List: {@link dunemask.util.FileUtil#alreadyInFile(File, String)}
+ * Remove Extension From File: {@link dunemask.util.FileUtil#removeExtension(String)}
+ * Change File Extension: {@link dunemask.util.FileUtil#changeExtension(String, String)}
+ * Get Number of Lines In File: {@link dunemask.util.FileUtil#linesInFile(File)}
+ * Change FilePath Folder Handling: {@link dunemask.util.FileUtil#filePathFix(String)}
+ * Find Certain Text In Document: {@link dunemask.util.FileUtil#findInDocument(File, String)}
+ * Get SubFiles: {@link dunemask.util.FileUtil#getAllSubFiles(File)}
+ * Get Resource: {@link dunemask.util.FileUtil#getResource(String)}
+ * Last Line: {@link dunemask.util.FileUtil#lastLine(File)}
+ * Return Next Free Line In File: {@link dunemask.util.FileUtil#nextFreeLine(File)}
+ * Get File From URL: {@link dunemask.util.FileUtil#getWebFile(String)}
+ * Write File from File: {@link dunemask.util.FileUtil#writeFile(File, File)}
+ * Last Index of Text: {@link dunemask.util.FileUtil#lastInstanceOfText(File, String)}}
+ * Remove Spaces: {@link dunemask.util.FileUtil#fixSpaces(String)}}
+ *
+ * @author Elijah
+ * */
+public class InternalFileUtil{
+ /***Version*/
+ final static double version = 4.7;
+
+
+
+
+
+ /**Get File From Specified URL
+ * (Web File)
+ * @param address address
+ * @return Return file from url
+ * */
+ public static File getWebFile(String address) {
+ URL url = null;
+ try {
+ url = new URL(InternalFileUtil.fixSpaces(InternalFileUtil.filePathFix(address)));
+ } catch (MalformedURLException e1) {
+ e1.printStackTrace();
+ }
+
+ File webFile=null;
+ String name = new File(url.getFile()).getName();
+ String tDir = System.getProperty("java.io.tmpdir");
+ try {
+ InputStream in = url.openStream();
+ webFile = new File(tDir+"/"+name.replace("%20", " "));
+
+ OutputStream out = new FileOutputStream(webFile);
+ int read;
+ byte[] bytes = new byte[1024^4];
+
+ while ((read = in.read(bytes)) != -1) {
+ out.write(bytes, 0, read);
+ }
+
+
+ out.close();
+ in.close();
+ //webFile.deleteOnExit();
+
+
+ }catch(IOException e) {
+ e.printStackTrace();
+ }
+ return webFile;
+
+ }
+
+ /**Get File From Specified URL and download to Wanted 'File'
+ * (Web File)
+ * @param address address
+ * @return Return file from url
+ * */
+ public static File getWebFile(String address,File file) {
+ URL url = null;
+ try {
+ url = new URL(InternalFileUtil.fixSpaces(InternalFileUtil.filePathFix(address)));
+ } catch (MalformedURLException e1) {
+ e1.printStackTrace();
+ }
+
+ File webFile=null;
+ //String name = new File(url.getFile()).getName();
+ // String tDir = System.getProperty("java.io.tmpdir");
+ try {
+ InputStream in = url.openStream();
+ webFile = file;
+
+ OutputStream out = new FileOutputStream(webFile);
+ int read;
+ byte[] bytes = new byte[1024^4];
+
+ while ((read = in.read(bytes)) != -1) {
+ out.write(bytes, 0, read);
+ }
+
+
+ out.close();
+ in.close();
+ //webFile.deleteOnExit();
+
+
+ }catch(IOException e) {
+ e.printStackTrace();
+ }
+ return webFile;
+
+ }
+
+
+ /**Write File From "File"
+ * @param fileIn Input File
+ * @param fileOut Place where file will be written
+ * **/
+ public static void writeFile(File fileIn,File fileOut) {
+ try {
+ fileOut.getParentFile().mkdirs();
+ fileOut.createNewFile();
+ InputStream in = new FileInputStream(fileIn);
+ OutputStream out = new FileOutputStream(fileOut);
+ int read;
+ byte[] bytes = new byte[1024*1024];
+
+ while ((read = in.read(bytes)) != -1) {
+ out.write(bytes, 0, read);
+ }
+ out.close();
+ in.close();
+ }catch(IOException e) {
+ e.printStackTrace();
+ }
+
+
+
+ }
+
+
+
+
+ /**
+ * @param fileName
+ * (String)
+ * @return Return filename without the extension (This also removes the period,)
+ * If No Period is found it will go boom
+ */
+ public static String removeExtension(String fileName) {
+ int dotPosition = fileName.lastIndexOf(".");
+ if (dotPosition == -1) {
+ //No Period found
+ return fileName;
+ } else {
+ //Period found
+ return fileName.substring(0, dotPosition);
+ }
+ }
+
+
+
+
+ /**
+ * Reads the number of lines that are written in the file
+ *
+ * @param file
+ * File whose lines shall be counted
+ * @return Returns the number of lines in the file
+ * @deprecated
+ */
+ public static int linesInFile(File file) {
+ Scanner fileReader = null;
+ try {
+ fileReader = new Scanner(file);
+ } catch (FileNotFoundException e) {
+ System.out.println("File:"+file+" WAS NOT FOUND!");
+ e.printStackTrace();
+ } // Close Catch Clause
+ /***************************************/
+
+ int i = 0;
+ // While I can still read the file
+ while (fileReader.hasNextLine()) {
+ i = i + 1;
+ fileReader.nextLine();
+ }
+ fileReader.close(); // Close Reader
+
+ return i;
+
+ }
+
+
+ /**Find a line of text in file, Case Not sensitive
+ * Returns First instance found
+ * @param file
+ * File to search
+ * @param text
+ * Text to be searched for
+ * @return The line where the text is located
+ */
+ public static int findInIgnoreCaseDocument(File file, String text) {
+ String[] lines = DMRW.readAll(file);
+
+ int location = -5;
+ // Start at first line (Not 0 lines in file :P)
+ // To Account For the counter it has to be 0 revoked previous argument
+ for (int i = 0; i Returns First instance found
+ * @param file
+ * File to search
+ * @param text
+ * Text to be searched for
+ * @param low Lower Bounds to be searched
+ *
+ * @param high Max Bounds to be searched
+ * @return The line where the text is located
+ */
+ public static int findInIgnoreCaseDocumentBounds(File file, String text,int low,int high) {
+ String[] lines = DMRW.readAll(file);
+
+ if(low>lines.length) {
+ throw new RuntimeException("Lower Bounds "+ low + " Exceed the File's Length of "+lines.length);
+ }
+ if(high>lines.length) {
+ throw new RuntimeException("Higher Bounds "+ high + " Exceed the File's Length of "+lines.length);
+ }
+
+ int location = -5;
+ // Start at first line (Not 0 lines in file :P)
+ // To Account For the counter it has to be 0 revoked previous argument
+ for (int i = low; i Returns First instance found
+ * @param file
+ * File to search
+ * @param text
+ * Text to be searched for
+ * @return The line where the text is located
+ */
+ public static int findInDocument(File file, String text) {
+ String[] lines = DMRW.readAll(file);
+
+ int location = -5;
+ // Start at first line (Not 0 lines in file :P)
+ // To Account For the counter it has to be 0 revoked previous argument
+ for (int i = 0; i Returns First instance found
+ * @param file
+ * File to search
+ * @param text
+ * Text to be searched for
+ * @param low Lower Bounds to be searched
+ *
+ * @param high Max Bounds to be searched
+ * @return The line where the text is located
+ */
+ public static int findInDocumentBounds(File file, String text,int low,int high) {
+ String[] lines = DMRW.readAll(file);
+
+ if(low>lines.length) {
+ throw new RuntimeException("Lower Bounds "+ low + " Exceed the File's Length of "+lines.length);
+ }
+ if(high>lines.length) {
+ throw new RuntimeException("Higher Bounds "+ high + " Exceed the File's Length of "+lines.length);
+ }
+
+ int location = -5;
+ // Start at first line (Not 0 lines in file :P)
+ // To Account For the counter it has to be 0 revoked previous argument
+ for (int i = low; i Returns First instance found
+ * @param file
+ * File to search
+ * @param text
+ * Text to be searched for
+ * @return The line where the text is located
+ */
+ public static int containsInDocument(File file, String text) {
+ String[] lines = DMRW.readAll(file);
+
+ int location = -5;
+ // Start at first line (Not 0 lines in file :P)
+ // To Account For the counter it has to be 0 revoked previous argument
+ for (int i = 0; i Returns First instance found
+ * @param file
+ * File to search
+ * @param text
+ * Text to be searched for
+ * @param low Lower Bounds to be searched
+ *
+ * @param high Max Bounds to be searched
+ * @return The line where the text is located
+ */
+ public static int containsInDocumentBounds(File file, String text,int low,int high) {
+ String[] lines = DMRW.readAll(file);
+
+ if(low>lines.length) {
+ throw new RuntimeException("Lower Bounds "+ low + " Exceed the File's Length of "+lines.length);
+ }
+ if(high>lines.length) {
+ throw new RuntimeException("Higher Bounds "+ high + " Exceed the File's Length of "+lines.length);
+ }
+
+ int location = -5;
+ // Start at first line (Not 0 lines in file :P)
+ // To Account For the counter it has to be 0 revoked previous argument
+ for (int i = low; i Returns First instance found
+ * @param file
+ * File to search
+ * @param text
+ * Text to be searched for
+ * @return The line where the text is located
+ */
+ public static int containsIgnoreCaseInDocument(File file, String text) {
+ String[] lines = DMRW.read(file, 1, InternalFileUtil.linesInFile(file));
+
+ int location = -5;
+ // Start at first line (Not 0 lines in file :P)
+ // To Account For the counter it has to be 0 revoked previous argument
+ for (int i = 0; i Returns First instance found
+ * @param file
+ * File to search
+ * @param text
+ * Text to be searched for
+ * @param low Lower Bounds to be searched
+ *
+ * @param high Max Bounds to be searched
+ * @return The line where the text is located
+ */
+ public static int containsIgnoreCaseInDocumentBounds(File file, String text,int low,int high) {
+ String[] lines = DMRW.read(file, 1, InternalFileUtil.linesInFile(file));
+
+ if(low>lines.length) {
+ throw new RuntimeException("Lower Bounds "+ low + " Exceed the File's Length of "+lines.length);
+ }
+ if(high>lines.length) {
+ throw new RuntimeException("Higher Bounds "+ high + " Exceed the File's Length of "+lines.length);
+ }
+
+ int location = -5;
+ // Start at first line (Not 0 lines in file :P)
+ // To Account For the counter it has to be 0 revoked previous argument
+ for (int i = low; i ();
+ File[] subPackage = dir.listFiles();
+ ArrayList arfiles = new ArrayList<>(Arrays.asList(subPackage));
+ setf(dir,arfiles);
+ File[] files = getFiles();
+ return files;
+
+ }
+
+
+
+ private static ArrayList thefiles = new ArrayList<>();
+ private static File[] getFiles() {
+ //thefiles = new ArrayList<>();
+ File[] files = thefiles.toArray(new File[thefiles.size()]);
+ return files;
+
+ }
+
+ private static void setf(File directory, ArrayList files) {
+
+
+ // get all the files from a directory
+ File[] fList = directory.listFiles();
+ for (File file : fList) {
+ if (file.isFile()) {
+ files.add(file);
+ thefiles.add(file);
+ } else if (file.isDirectory()) {
+ thefiles.add(file);
+ setf(file, files);
+ }
+ }
+
+ }
+
+ /**
+ * Replace all Back Slashes with forward ones
+ *
+ * @param filePath
+ * Path To File
+ * @return String WIth forward slahes as opposed to backslahes
+ **/
+ public static String filePathFix(String filePath) {
+ return filePath.replace("\\", "/");
+
+ }
+ /**
+ * Replace all Forward Slashes with back ones
+ *
+ * @param filePath
+ * Path To File
+ * @return String WIth back slahes as opposed to forwardslahes
+ **/
+ public static String filePathFixReverse(String filePath) {
+ return filePath.replace("/", "\\");
+
+ }
+
+
+
+
+
+
+
+}
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/internal/JarInternalUtil.java b/source/VoxelCraft/src/dunemasking/dunemask/util/internal/JarInternalUtil.java
new file mode 100644
index 0000000..37aad3f
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/internal/JarInternalUtil.java
@@ -0,0 +1,387 @@
+package dunemask.util.internal;
+
+import java.awt.Color;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JProgressBar;
+import javax.swing.WindowConstants;
+
+/**
+ * Jar Utilities
+ * Extract Jar: {@link dunemask.util.internal.JarInternalUtil#extractAll(String, String, String)}
+ * Extract Jar With Progress Bar: {@link dunemask.util.internal.JarInternalUtil#extractAllOpenDialog(String, String, String)}
+ * Get Jar Program Path: {@link dunemask.util.internal.JarInternalUtil#getProgramPath()}
+ * Is jar: {@link dunemask.util.internal.JarInternalUtil#isJar(String)}
+ * List jar Entries: {@link dunemask.util.internal.JarInternalUtil#listJarEntries(File)}
+ * Load File From Jar: {@link dunemask.util.internal.JarInternalUtil#loadFileInJar(File, String)}
+ * @author Elijah
+ * @deprecated Will be removed in next version
+ **/
+public class JarInternalUtil{
+
+ /***Version*/
+ final static double version = 4.7;
+ private static JFrame f = new JFrame();
+ private static JPanel p = new JPanel();
+
+
+ /**
+ * Extracts jar into new folder named: jarName_lib Displays Small Progress Bar
+ * While Extracting
+ *
+ * @param jarName
+ * Name of Jar
+ * @param destination
+ * destination
+ * @throws IOException
+ * If the file don't exist, it's not gonna work
+ */
+ public static void extractAllOpenDialog(File jar, String destination) throws IOException {
+ init();
+ destination = InternalFileUtil.fixSpaces(destination).replaceAll("%20", " ");
+ JarFile jarfile = new JarFile(jar);
+ Enumeration enu = jarfile.entries();
+ // File file = new File(dir+"\\"+jarName+"_lib\\");
+ //System.out.println(jar.getAbsolutePath());
+ while (enu.hasMoreElements()) {
+ String destdir = destination;
+ JarEntry je = enu.nextElement();
+ //if (!je.getName().contains("org") && !je.getName().contains("META-INF")) {
+
+ updateScreen(je.getName(), je);
+
+ File fl = new File(destdir, je.getName());
+ if (!fl.exists()) {
+ fl.getParentFile().mkdirs();
+ fl = new java.io.File(destdir, je.getName());
+ }
+ if (je.isDirectory()) {
+ continue;
+ }
+ InputStream in = jarfile.getInputStream(je);
+ BufferedInputStream is = new BufferedInputStream(in);
+ OutputStream out = new FileOutputStream(fl);
+ BufferedOutputStream fo = new BufferedOutputStream(out);
+
+ // Set progress Bar
+ JProgressBar pb = new JProgressBar();
+ pb.setSize(80, 20);
+ pb.setMinimum(0);
+ pb.setValue(0);
+ pb.setMaximum(is.available() / (2048 * 32));
+ pb.setLocation(10, 30);
+ pb.setForeground(Color.GREEN);
+ byte[] buffer = new byte[2048 * 32];
+
+ while (is.available() > 0) {
+ fo.write(buffer, 0, is.read(buffer));
+ // Read and write, and update the PB+ repaint
+ pb.setValue(pb.getValue() + 1);
+
+ p.add(pb);
+ repaintScreen();
+
+ }
+
+ fo.close();
+ is.close();
+
+ //}
+ }
+ JOptionPane.showMessageDialog(null, "Completed Extracting!");
+ f.dispose();
+ jarfile.close();
+ }
+
+
+
+
+ /**
+ * Extracts jar into new folder named: jarName_lib Displays Small Progress Bar
+ * While Extracting
+ *
+ * @param dir
+ * Directory to the jar
+ * @param jarName
+ * Name of Jar
+ * @param resourceFolderName
+ * Name of folder that will become the resource folder
+ * @throws IOException
+ * If the file don't exist, it's not gonna work
+ */
+ public static void extractAllOpenDialog(String dir, String jarName, String resourceFolderName) throws IOException {
+
+ extractAllOpenDialog(new java.io.File(InternalFileUtil.fixSpaces(dir).replaceAll("%20", " ") + jarName + ".jar"),dir+"\\"+jarName+"_lib\\");
+ }
+
+ private static void updateScreen(String name, JarEntry je) {
+ p.removeAll();
+ JLabel lbl = new JLabel("Exporting: " + name);
+ lbl.setSize(lbl.getPreferredSize());
+ int x = 10;
+ int y = 10;
+ lbl.setLocation(x, y);
+ p.add(lbl);
+ repaintScreen();
+
+ }
+
+ private static void repaintScreen() {
+ p.repaint();
+ p.revalidate();
+ f.repaint();
+ f.revalidate();
+ }
+
+ /**
+ * Finds out if jarName_lib already exists
+ *
+ * @param jarName
+ * Name of Jar
+ * @param jarDir
+ * Directory where jar is located
+ * @return whether the jarname_lib already exists
+ */
+ public static boolean alreadyExisits(String jarName, File jarDir) {
+ if (new File(jarDir.getAbsolutePath() + "\\" + jarName + "_lib\\").exists()) {
+ return true;
+ } else {
+
+ return false;
+ }
+ }
+
+ /**
+ * Creates small frame (Should be used for JProgressBar)
+ */
+ public static void init() {
+
+ f.setSize(300, 100);
+ f.setLocationRelativeTo(null);
+ p.setLayout(null);
+ f.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
+ f.setVisible(true);
+ f.add(p);
+
+ }
+
+ /**
+ * Extracts jar into new folder named: jarName_lib
+ *
+ * @param dir
+ * Directory to the jar
+ * @param jarName
+ * Name of Jar
+ * @param resourceFolderName
+ * name of resource folder
+ * @throws IOException
+ * If the jarFile don't exists it's gonna blow up
+ */
+ public static void extractAll(String dir, String jarName, String resourceFolderName) throws IOException {
+ dir = InternalFileUtil.fixSpaces(dir).replaceAll("%20", " ");
+ jarName = InternalFileUtil.fixSpaces(jarName).replaceAll("%20", " ");
+ resourceFolderName = InternalFileUtil.fixSpaces(resourceFolderName).replaceAll("%20", " ");
+ extractAll(new java.io.File(InternalFileUtil.fixSpaces(dir).replaceAll("%20", " ") + jarName + ".jar"),dir+"\\"+jarName+"_lib\\");
+ }
+
+
+ /**
+ *
+ * @param jar Jar File
+ * @param destination String path to export location
+ * @throws IOException
+ * If the jarFile don't exists it's gonna blow up
+ */
+ public static void extractAll(File jar,String destination) throws IOException {
+ destination = InternalFileUtil.fixSpaces(destination).replaceAll("%20", " ");
+ JarFile jarfile = new JarFile(jar);
+ Enumeration enu = jarfile.entries();
+ // File file = new File(dir+"\\"+jarName+"_lib\\");
+ while (enu.hasMoreElements()) {
+ String destdir = destination;
+ JarEntry je = enu.nextElement();
+ //if (!je.getName().contains("org") && !je.getName().contains("META-INF")) {
+
+ File fl = new File(destdir, je.getName());
+ if (!fl.exists()) {
+ fl.getParentFile().mkdirs();
+ fl = new java.io.File(destdir, je.getName());
+ }
+ if (je.isDirectory()) {
+ continue;
+ }
+ InputStream in = jarfile.getInputStream(je);
+ BufferedInputStream is = new BufferedInputStream(in);
+ OutputStream out = new FileOutputStream(fl);
+ BufferedOutputStream fo = new BufferedOutputStream(out);
+
+ byte[] buffer = new byte[2048 * 32];
+
+ while (is.available() > 0) {
+ fo.write(buffer, 0, is.read(buffer));
+ // Read and write, and update the PB+ repaint
+
+ }
+
+ fo.close();
+ is.close();
+
+ //}
+ }
+ jarfile.close();
+ }
+
+ /**
+ * @return Returns the jardir with \\ at end
+ */
+ public static String getProgramPath() {
+ File jarDir = new File(ClassLoader.getSystemClassLoader().getResource(".").getPath());
+ return jarDir + "\\";
+ }
+
+ /**
+ * Is Jar Returns wether it's a jar or not given a jar name
+ *
+ * @param jarName
+ * name of jar
+ * @return jar or not jar
+ **/
+ public static boolean isJar(String jarName) {
+ boolean isJar = false;
+ if (jarName.contains(".jar")) {
+ jarName = InternalFileUtil.removeExtension(jarName);
+ }
+
+ if (new File(InternalFileUtil.fixSpaces(JarInternalUtil.getProgramPath()).replaceAll("%20", " ") + jarName + ".jar").exists()) {
+
+ isJar = true;
+ }
+ return isJar;
+
+ }
+
+ public static String findEntry(File jarFile,String res) {
+ String url=null;
+ String[] je = listJarEntries(jarFile);
+ for(int i=0;i entries = new ArrayList<>();
+
+ Enumeration enu = jar.entries();
+ while (enu.hasMoreElements()) {
+ JarEntry je = enu.nextElement();
+ entries.add(je.getName());
+ }
+
+ return entries.toArray(new String[entries.size()]);
+
+ }
+
+ /**Load File In Jar
+ * If Returning same results, It's the fact that it's also in your ide, or jar, IT CANNOT BE!
+ * @param jar Top jar
+ * @param res Relative Path to File in jar
+ * @return Returns the file
+ * */
+ public static File loadFileInJar(File jar,String res) {
+
+ //Get File
+ URL[] urls = null;
+ try {
+ urls = new URL[]{jar.toURI().toURL()};
+ } catch (MalformedURLException e1) {
+ e1.printStackTrace();
+ }
+ URLClassLoader urlClassLoader = new URLClassLoader(urls);
+ URL resource = urlClassLoader.findResource(res);
+
+
+
+ //URL x = URLClassLoader.newInstance(urls).findResource(res.toString());
+
+ //Write tmpFile
+ File file=null;
+ if (resource.toString().startsWith("jar:")||resource.toString().startsWith("rsrc:")) {
+ try {
+
+ InputStream input = URLClassLoader.newInstance(urls).getResourceAsStream(res);
+ file = File.createTempFile("tempfile", ".tmp");
+ OutputStream out = new FileOutputStream(file);
+ int read;
+ byte[] bytes = new byte[1024*1024];
+
+ while ((read = input.read(bytes)) != -1) {
+ out.write(bytes, 0, read);
+ }
+ //file.deleteOnExit();
+ input.close();
+ out.close();
+ urlClassLoader.close();
+
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+ }else {
+ try {
+ urlClassLoader.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ throw new RuntimeException("Uh Boom?");
+ }
+
+
+
+ return file;
+ }
+
+
+
+
+
+
+
+}
+
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/xml/.gitignore b/source/VoxelCraft/src/dunemasking/dunemask/util/xml/.gitignore
new file mode 100644
index 0000000..0b414fa
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/xml/.gitignore
@@ -0,0 +1,6 @@
+/Attr.class
+/DMXMLException.class
+/DXMLMap.class
+/LiveRunemap.class
+/Runemap.class
+/RunemapURLExcpetion.class
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/xml/Attr.java b/source/VoxelCraft/src/dunemasking/dunemask/util/xml/Attr.java
new file mode 100644
index 0000000..1932dae
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/xml/Attr.java
@@ -0,0 +1,141 @@
+package dunemask.util.xml;
+
+import java.util.ArrayList;
+
+import dunemask.util.StringUtil;
+
+class Attr {
+
+ private String url;
+ private ArrayList children;
+ private boolean container;
+ private String value;
+ private String name;
+ private String parent;
+
+ public Attr(String url,String val) {
+ this.url=url;
+ this.value = val;
+ this.container=false;
+ this.name = this.deriveName();
+ this.parent = (this.deriveParent());
+ }
+
+
+ public Attr(String url) {
+ this.url = url;
+ this.children = new ArrayList();
+ if(url.endsWith("/")) {
+ this.container=true;
+ }else {
+ this.container=false;
+ }
+ this.name = this.deriveName();
+ this.parent = (this.deriveParent());
+
+ }
+
+
+ public void addChild(Attr child) {
+ this.children.add(child);
+ }
+
+
+
+ public String getUrl() {
+ return url;
+ }
+
+
+ public ArrayList getChildren() {
+ return children;
+ }
+ public Attr getChild(String url){
+ Attr at = null;
+ if(this.isContainer()) {
+ for(int i=0;i children) {
+ this.children.addAll(children);
+ }
+
+
+
+ public boolean isContainer() {
+ return container;
+ }
+
+
+ public String getValue() {
+ return value;
+ }
+
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ public String getName() {
+ return name;
+ }
+
+ private String deriveName() {
+ String ur = this.url;
+ if(ur.endsWith("/")) {
+ ur = StringUtil.replaceLast(ur, "/", "");
+ }
+
+
+
+ int lastind = ur.lastIndexOf("/");
+ return ur.substring(lastind+1);
+
+ }
+
+ private String deriveParent() {
+ String ur = this.url;
+ int nameInd = ur.lastIndexOf(this.deriveName());
+ if(nameInd==0) {//If It has no parent
+ return null;
+ }
+ /*nameInd--;
+ String newUr = ur.substring(0,nameInd);
+ int lastind = newUr.lastIndexOf("/");
+ newUr = newUr.substring(lastind+1);
+ return newUr;*/ //Remove All but name
+ return ur.substring(0,nameInd);
+
+ }
+ public String getParent() {
+ return parent;
+ }
+
+
+
+}
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/xml/DMXMLException.java b/source/VoxelCraft/src/dunemasking/dunemask/util/xml/DMXMLException.java
new file mode 100644
index 0000000..fa5f196
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/xml/DMXMLException.java
@@ -0,0 +1,60 @@
+/**
+ *
+ */
+package dunemask.util.xml;
+
+/**
+ * @author dunemask
+ *
+ */
+class DMXMLException extends RuntimeException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -1688656231022489391L;
+
+ /**
+ *
+ */
+ public DMXMLException() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @param arg0
+ */
+ public DMXMLException(String arg0) {
+ super(arg0);
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @param arg0
+ */
+ public DMXMLException(Throwable arg0) {
+ super(arg0);
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @param arg0
+ * @param arg1
+ */
+ public DMXMLException(String arg0, Throwable arg1) {
+ super(arg0, arg1);
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @param arg0
+ * @param arg1
+ * @param arg2
+ * @param arg3
+ */
+ public DMXMLException(String arg0, Throwable arg1, boolean arg2, boolean arg3) {
+ super(arg0, arg1, arg2, arg3);
+ // TODO Auto-generated constructor stub
+ }
+
+}
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/xml/DXMLMap.java b/source/VoxelCraft/src/dunemasking/dunemask/util/xml/DXMLMap.java
new file mode 100644
index 0000000..9d06fa2
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/xml/DXMLMap.java
@@ -0,0 +1,617 @@
+package dunemask.util.xml;
+
+import java.io.File;
+import java.util.ArrayList;
+
+import dunemask.util.IOUtil;
+import dunemask.util.RW;
+import dunemask.util.StringUtil;
+
+class DXMLMap {
+ private static ArrayList newLines = new ArrayList();
+
+
+ public void writeOut(File f) {
+ this.update();
+ f.delete();
+ //System.out.println(f.getAbsolutePath()+"HERE");
+ //System.out.println("^^");
+ RW.writeAll(f, newLines);
+ //System.out.println("^^");
+ }
+ public void writeOut() {
+ this.writeOut(this.file);
+ }
+
+ public Attr addElement(String url,Object val) {
+ //System.out.println("Wants to add:"+url);
+ if(url.endsWith("/")) {
+ url = url.substring(0,url.length()-1);
+ }
+ Attr child = new Attr(url,String.valueOf(val));
+ boolean found = false;
+ for(int i=0;i0&&!found) {
+ //System.out.println("Sorry You need to create the other things first :(");
+ }else if(this.tabsNeeded(child)==0){
+ this.attributes.add(child);
+ found = true;
+ }
+ if(found) {
+ //this.update();
+ return child;
+ }else {
+ return null;
+ }
+
+ }
+
+ public String getVal(String url) {
+ return getAttr(url).getValue();
+
+ }
+
+ boolean itemIsContainer(String url) {
+ return getAttr(url).isContainer();
+
+
+ }
+
+ public boolean itemExists(String url) {
+ //System.out.println(this.getAttr(url)+"@From "+url);
+ return this.getAttr(url)!=null;
+
+
+
+
+ }
+
+
+
+ Attr getAttr(String url) {
+ Attr child = new Attr(url);
+ Attr found = null;
+ for(int i=0;i0&&!found) {
+ throw new DMXMLException("Sorry You need to create the other things first :(");
+ }else if(this.tabsNeeded(child)==0){
+ this.attributes.add(child);
+ found = true;
+ }
+ if (found){
+ //this.update();
+ return child;
+ }else {
+ return null;
+ }
+ }
+
+
+
+
+ private boolean itterFind(Attr at,Attr toadd) {
+ boolean found = false;
+ //System.out.println(" URL FOR PAR "+at.getUrl());
+ if(at.isContainer()) {
+
+ if(at.getUrl().equals(toadd.getParent())) {
+ //System.out.println("Adding:"+toadd.getUrl()+"@TO:"+at.getUrl());
+ at.addChild(toadd);
+ return true;
+ }else {
+ for(int i=0;i();
+ for(int i=0;i lines = new ArrayList();
+ private ArrayList attributes = new ArrayList();
+ /**
+ * @return the lines
+ */
+ public ArrayList getLines() {
+ return lines;
+ }
+
+ /**
+ * @param lines the lines to set
+ */
+ public void setLines(ArrayList lines) {
+ this.lines = lines;
+ }
+
+ /**
+ * @return the attributes
+ */
+ ArrayList getAttributes() {
+ return attributes;
+ }
+
+ /**
+ * @param attributes the attributes to set
+ */
+ void setAttributes(ArrayList attributes) {
+ this.attributes = attributes;
+ }
+
+
+
+
+ File file;
+
+ private String parseElement(String str) {
+ str = str.replace(StringUtil.tab, "");
+ int opcharind = str.indexOf("");
+ if(opcharind!=-1) {
+ str = str.substring(opcharind+2);
+ }else {
+ str = str.replaceFirst("<","");
+ }
+ int clchar = str.indexOf(">");
+
+
+ if(clchar!=-1) {
+ str = str.substring(0,clchar);
+ }
+ return str;
+ }
+
+
+ private String cle(String str) {
+ return ""+str+">";
+ }
+ private String oe(String str) {
+ return "<"+str+">";
+
+ }
+
+
+ public static DXMLMap ParseMap(File file) {
+ DXMLMap m = new DXMLMap();
+ m.file = file;
+ m.lines = RW.readAll(IOUtil.FTU(file));
+ m.parse();
+ return m;
+
+ }
+
+ public DXMLMap() {
+
+ }
+
+ /** Create new Map
+ *
+ * */
+ public DXMLMap(File file) {
+ this.file = file;
+
+ /*for(int i=0;i")+1;
+ int end = fullLine.indexOf("<", 2);
+ return fullLine.substring(beg, end);
+
+
+ }
+
+ /**
+ * @param lines2
+ */
+ private void parse() {
+ for(int i=0;i getTop(){
+ ArrayList ats = new ArrayList();
+ for(int i=0;i());
+ this.fullMap = new HashMap();
+ }
+
+ Runemap() {
+ map = new DXMLMap();
+ this.xmlurl =(new ArrayList());
+ this.fullMap = new HashMap();
+ }
+
+ private ArrayList xmlurl;
+ private HashMap fullMap;
+ // private XMLMap map;
+ private File xml;
+ /** Return FullMap Keyset in ArrayList
+ * */
+ public ArrayList valMapKeySet(){
+ return new ArrayList(this.fullMap.keySet());
+ }
+ /** Return FullMap Values in ArrayList
+ * */
+ public ArrayList valMapValSet(){
+ return new ArrayList(this.fullMap.values());
+ }
+
+
+ /** Get Value from the Rune Indexer
+ * @deprecated Will be removed in future release
+ * @param url
+ * @return String
+ *
+ * */
+ public String pullValue(String url) {
+ return this.fullMap.get(url);
+
+ }
+
+ void update() {
+ this.map.update();
+ }
+
+
+
+
+ /** Write a Container and forces the Write (Creates parents)
+ * @param url Url
+ * @param value Value
+ * @return
+ *
+ * */
+ public void writeForcedContainer(String url) {;
+ String path = url;
+ ArrayList toMake = new ArrayList();
+ while(path!=null) {
+ path = new Attr(path).getParent();
+ if(path!=null) {
+ toMake.add(path);
+ }
+
+ }
+ //For all the ones we need to make if it hasn't been made make it
+
+ for(int i=toMake.size()-1;i>=0;i--) {
+ String tmprl=toMake.get(i);
+ if(this.isCont(tmprl)&&!this.itemExists(tmprl)) {
+ this.writeContainer(tmprl);
+ }
+ }
+
+
+ }
+
+ /** Write an Element and forces the Write (Creates parents)
+ * @param url Url
+ * @param value Value
+ * @return
+ *
+ * */
+ public void writeForcedElement(String url,Object value) {
+ String path = url;
+ ArrayList toMake = new ArrayList();
+ while(path!=null) {
+ path = new Attr(path).getParent();
+ if(path!=null) {
+ toMake.add(path);
+ }
+
+ }
+ //For all the ones we need to make if it hasn't been made make it
+
+ for(int i=toMake.size()-1;i>=0;i--) {
+ String tmprl=toMake.get(i);
+ if(this.isCont(tmprl)&&!this.itemExists(tmprl)) {
+ this.writeContainer(tmprl);
+ }
+ }
+ this.writeElement(url, value);
+
+
+
+ }
+ /** Returns true if found in the doc
+ * @param path Path
+ * @return true or false
+ * */
+ private boolean itemExists(String url) {
+ return map.itemExists(url);
+
+ }
+
+
+ ArrayList getParentPath(String url){
+ ArrayList parent = this.urlToList(url);
+ try {
+ parent.remove(parent.size()-1);
+ return parent;
+ }catch(Exception e) {
+ return null;
+ }
+ }
+
+ ArrayList getParentPath(ArrayList path){
+ try {
+ path.remove(path.size()-1);
+ return path;
+ }catch(Exception e) {
+ return null;
+ }
+ }
+ /** Get the parent Url
+ * @param url Url
+ * @return parent url
+ * */
+ public String getParentUrl(String url) {
+ return new Attr(url).getParent();
+ }
+
+ public void write() {
+ this.writeOut();
+ }
+
+ void writeOut() {
+ map.writeOut(this.getXml());
+ }
+
+ /** Write document to a file
+ * @param f
+ *
+ * */
+ public void writeOut(File f) {
+ map.writeOut(f);
+ }
+
+ /** Removes the Specified container
+ * @param url
+ * */
+ public void removeContainer(String url) {
+ this.removeElement(url);
+
+
+ }
+ /** Removes the Specified Element
+ * @param url
+ * */
+ public void removeElement(String url) {
+ map.removeAttr(url);
+
+ for(int i=0;i keys = new ArrayList(this.fullMap.keySet());
+ for(int i=0;i")||url.contains("<")) {
+ throw new RunemapURLExcpetion("URL:"+url+" Contains '<' or '>' Characters!"+" "+"Try: "+url.replace(">", "").replace("<", ""));
+ }
+
+ if(map.itemExists(url)) {
+ map.removeAttr(url);
+ }
+ map.addElement(url, value);
+ addurl(url);
+ this.addValue(url, String.valueOf(value));
+
+ //this.getXml().delete();
+ if(live) {
+ this.update();
+ this.writeOut();
+ }
+ }
+ /** Write a Container
+ * @param url Url
+ * @return
+ *
+ * */
+ public void writeContainer(String url) {
+ if(!url.endsWith("/")) {
+ url+="/";
+ }
+ if(url.contains(">")||url.contains("<")) {
+ throw new RunemapURLExcpetion("URL:"+url+" Contains '<' or '>' Characters!");
+ }
+
+ if(!map.itemExists(url)) {
+ map.addContainer(url);
+ }
+ map.update();
+ addurl(url);
+ //this.getXml().delete();
+ if(live) {
+ this.update();
+ this.writeOut();
+ }
+
+ }
+ private String lastAttributeAccessed;
+
+ /** Gets the last attritue accessed
+ * @return last attribute
+ *
+ * */
+ public String getLastAttributeAccessed() {
+ return this.lastAttributeAccessed;
+
+ }
+
+
+ /** Get the parent from the url
+ * @param url URL
+ * @return null if no parent else the parent;
+ * */
+ public String getParent(String url) {
+ ArrayList parent = this.urlToList(url);
+ try {
+ return parent.get(parent.size()-2);
+ }catch(ArrayIndexOutOfBoundsException e) {
+ return null;
+ }
+ }
+
+
+ /** Returns all the children urls of the parent container (Only Direct Level Below)
+ * @param url Parent Url (Container)
+ * @return ArrayList of sub elements or null
+ *
+ * */
+ public ArrayList getChildrenURLS(String url){
+ if(!this.isCont(url)) {
+ throw new DMXMLException("URL IS ELEMENT NOT CONTAINER");
+ }
+
+ ArrayList match = new ArrayList();
+ ArrayList urls = this.getAllURLS();
+ for(int i=0;i urlToList(String dxmlurl){
+ ArrayList tmp = new ArrayList();
+ String full = dxmlurl;
+ for(int i=0;i getAllURLS() {
+ return xmlurl;
+ }
+
+
+
+ /**
+ * @return the fullMap
+ */
+ public HashMap getFullMap() {
+ return fullMap;
+ }
+ /** If Is live it will write out automatically as soon as an element is added
+ *
+ * */
+ public boolean isLive() {
+ return live;
+ }
+ /** Set the value to {@link Runemap#isLive() live}
+ * @param live
+ *
+ * */
+ void setLive(boolean live) {
+ this.live = live;
+ }
+
+
+
+
+
+}
diff --git a/source/VoxelCraft/src/dunemasking/dunemask/util/xml/RunemapURLExcpetion.java b/source/VoxelCraft/src/dunemasking/dunemask/util/xml/RunemapURLExcpetion.java
new file mode 100644
index 0000000..26d8827
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/dunemask/util/xml/RunemapURLExcpetion.java
@@ -0,0 +1,34 @@
+package dunemask.util.xml;
+
+public class RunemapURLExcpetion extends DMXMLException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -2161060316917457128L;
+
+ public RunemapURLExcpetion() {
+ // TODO Auto-generated constructor stub
+ }
+
+ public RunemapURLExcpetion(String arg0) {
+ super("ONE OR MORE PATHS IS INVALID!"+"\r\n"+arg0);
+
+ }
+
+ public RunemapURLExcpetion(Throwable arg0) {
+ super(arg0);
+
+ }
+
+ public RunemapURLExcpetion(String arg0, Throwable arg1) {
+ super(arg0, arg1);
+
+ }
+
+ public RunemapURLExcpetion(String arg0, Throwable arg1, boolean arg2, boolean arg3) {
+ super(arg0, arg1, arg2, arg3);
+
+ }
+
+}
diff --git a/source/VoxelCraft/src/dunemasking/module-info.java b/source/VoxelCraft/src/dunemasking/module-info.java
new file mode 100644
index 0000000..c1e7ccc
--- /dev/null
+++ b/source/VoxelCraft/src/dunemasking/module-info.java
@@ -0,0 +1,16 @@
+/** Dunemasking is an opensource program that has some basic java tools
+ *
+ * @author dunemask
+ *
+ * */
+module dunemasking{
+ requires java.base;
+ requires transitive java.desktop;
+ requires transitive java.scripting;
+ exports dunemask.util;
+ exports dunemask.objects;
+ exports dunemask.util.xml;
+ exports dunemask.other;
+ exports dunemask.at;
+ exports dunemask.crypto;
+}
\ No newline at end of file
diff --git a/source/VoxelCraft/src/frames/BackPanel.java b/source/VoxelCraft/src/frames/BackPanel.java
new file mode 100644
index 0000000..6be9b6c
--- /dev/null
+++ b/source/VoxelCraft/src/frames/BackPanel.java
@@ -0,0 +1,67 @@
+/**
+ *
+ */
+package frames;
+
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.RenderingHints;
+import java.awt.image.BufferedImage;
+import java.net.URL;
+
+import javax.swing.ImageIcon;
+import javax.swing.JPanel;
+
+/**
+ * @author Dunemask
+ *
+ */
+public class BackPanel extends JPanel {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 5569709313790349207L;
+ private Image back;
+
+ /**
+ *
+ */
+ public BackPanel(URL url,int width,int height) {
+ Image back = new ImageIcon(url).getImage();
+ BufferedImage bimage = new BufferedImage(back.getWidth(null), back.getHeight(null), BufferedImage.TYPE_INT_ARGB);
+ // Draw the image on to the buffered image
+ Graphics2D bGr = bimage.createGraphics();
+ bGr.drawImage(back, 0, 0, null);
+ bGr.dispose();
+
+ BufferedImage resized = new BufferedImage(width, height, bimage.getType());
+ Graphics2D g = resized.createGraphics();
+ g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
+ RenderingHints.VALUE_INTERPOLATION_BILINEAR);
+ g.drawImage(bimage, 0, 0, width, height, 0, 0, bimage.getWidth(),
+ bimage.getHeight(), null);
+ g.dispose();
+ this.setBack(resized);
+
+ }
+ @Override
+ protected void paintComponent(Graphics g) {
+ super.paintComponent(g);
+ g.drawImage(getBack(), 0, 0, null);
+ }
+ /**
+ * @return the back
+ */
+ public Image getBack() {
+ return back;
+ }
+ /**
+ * @param back the back to set
+ */
+ public void setBack(Image back) {
+ this.back = back;
+ }
+
+}
diff --git a/source/VoxelCraft/src/frames/JSystemFileChooser.java b/source/VoxelCraft/src/frames/JSystemFileChooser.java
new file mode 100644
index 0000000..04e250c
--- /dev/null
+++ b/source/VoxelCraft/src/frames/JSystemFileChooser.java
@@ -0,0 +1,68 @@
+package frames;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Container;
+
+import javax.swing.JFileChooser;
+import javax.swing.LookAndFeel;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+
+import sun.swing.FilePane;
+
+public class JSystemFileChooser extends JFileChooser{
+ /**
+ *
+ */
+ private static final long serialVersionUID = -8726122452989100779L;
+
+
+
+ public void updateUI(){
+ LookAndFeel old = UIManager.getLookAndFeel();
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ }
+ catch (Throwable ex) {
+ old = null;
+ }
+
+ super.updateUI();
+
+ if(old != null){
+ FilePane filePane = findFilePane(this);
+ filePane.setViewType(FilePane.VIEWTYPE_DETAILS);
+ filePane.setViewType(FilePane.VIEWTYPE_LIST);
+
+ Color background = UIManager.getColor("Label.background");
+ setBackground(background);
+ setOpaque(true);
+
+ try {
+ UIManager.setLookAndFeel(old);
+ }
+ catch (UnsupportedLookAndFeelException ignored) {} // shouldn't get here
+ }
+ }
+
+
+
+ private static FilePane findFilePane(Container parent){
+ for(Component comp: parent.getComponents()){
+ if(FilePane.class.isInstance(comp)){
+ return (FilePane)comp;
+ }
+ if(comp instanceof Container){
+ Container cont = (Container)comp;
+ if(cont.getComponentCount() > 0){
+ FilePane found = findFilePane(cont);
+ if (found != null) {
+ return found;
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+ }
\ No newline at end of file
diff --git a/source/VoxelCraft/src/frames/MainBack.java b/source/VoxelCraft/src/frames/MainBack.java
new file mode 100644
index 0000000..2af68d3
--- /dev/null
+++ b/source/VoxelCraft/src/frames/MainBack.java
@@ -0,0 +1,212 @@
+/**
+ *
+ */
+package frames;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.RenderingHints;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ComponentAdapter;
+import java.awt.event.ComponentEvent;
+import java.awt.image.BufferedImage;
+import java.net.URL;
+
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import dunemask.util.FileUtil;
+import mc.Minecraft;
+import mplayer.SoundEngine;
+
+/**
+ * @author Dunemask
+ *
+ */
+public class MainBack extends JPanel{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 389046959966617546L;
+ private JButton play;
+ double pbXOffSetPercent = .15;
+ double pbYTopOffSetPercent = .50;
+ private JButton btnMenu;
+ private JButton exit;
+ private JLabel lblMc;
+ private Image back;
+ /**
+ *
+ */
+ public MainBack() {
+ this.setSize(600, 600);
+ this.setBack(this.makeback(FileUtil.getResourceURL("resources/textures/gui/title/panorama_3.png"),this.getWidth(),this.getHeight()));
+ this.setLayout(null);
+ this.addComponentListener(new ComponentAdapter() {
+ public void componentResized(ComponentEvent e) {
+ resized(e);
+ }
+ });
+ play = new JButton("Play");
+ play.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ playButtonClicked();
+ }
+ });
+ play.setBackground(Color.LIGHT_GRAY);
+ play.setForeground(Color.DARK_GRAY);
+ play.setFont(new Font("Tahoma", Font.PLAIN, 18));
+ play.setBounds(65, 239, 450, 75);
+
+ //this.add(bp);
+ this.add(play);
+ btnMenu = new JButton("Menu");
+ btnMenu.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ menuClicked();
+ }
+ });
+ btnMenu.setForeground(Color.DARK_GRAY);
+ btnMenu.setFont(play.getFont());
+ btnMenu.setBackground(Color.LIGHT_GRAY);
+ btnMenu.setBounds(65, 327, 450, 76);
+ this.add(btnMenu);
+ exit = new JButton("Exit");
+ exit.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ System.exit(0);
+
+ }
+
+
+ });
+ exit.setForeground(Color.DARK_GRAY);
+ exit.setBackground(Color.LIGHT_GRAY);
+ exit.setBounds(65, 416, 450, 86);
+ this.add(exit);
+
+ lblMc = new JLabel("mc");
+ lblMc.setBounds(84, 35, 431, 115);
+ this.add(lblMc);
+
+
+ exit.setFont(play.getFont());
+ exit.setBackground(Color.LIGHT_GRAY);
+ exit.setBounds(65, 416, 450, 86);
+ this.add(exit);
+ lblMc = new JLabel("mc");
+ lblMc.setBounds(84, 35, 431, 115);
+
+ ImageIcon imgico = new ImageIcon(FileUtil.getResourceURL("resources/textures/gui/title/mc.png"));
+ Image img = imgico.getImage();
+ Image dimg = img.getScaledInstance(lblMc.getWidth(), lblMc.getHeight(),
+ Image.SCALE_SMOOTH);
+
+ lblMc.setIcon(new ImageIcon(dimg));
+ this.add(lblMc);
+
+ }
+ /**
+ *
+ */
+ protected void menuClicked() {
+ SoundEngine.handle("click");
+ Minecraft.goToSettings();
+
+ }
+ /**
+ *
+ */
+ protected void playButtonClicked() {
+ SoundEngine.handle("click");
+ Minecraft.goToSelect();
+
+ }
+ /**
+ * @param e
+ */
+ protected void resized(ComponentEvent e) {
+ //Goes through and changes each component to fit the parent somewhat
+ //try {
+ Component c = (Component)e.getSource();
+ // This is only called when the user releases the mouse button.
+ //BackPanel tmp = new BackPanel(FileUtil.getResourceURL("resources/mainmenu/panorama_3.png"),c.getWidth(),c.getHeight());
+ this.setBack(this.makeback(FileUtil.getResourceURL("resources/textures/gui/title/panorama_3.png"),this.getWidth(),this.getHeight()));
+ this.repaint();
+ this.revalidate();
+ int btchange =this.getHeight()/30;
+ double ofset = c.getWidth()*this.pbXOffSetPercent;
+ int pbch = this.getHeight()/7;
+ play.setFont(new Font("Tahoma", Font.PLAIN, 40));
+ exit.setFont(play.getFont());
+ btnMenu.setFont(play.getFont());
+ exit.setBounds((int)ofset, c.getHeight()-btchange-2*pbch, (int) (this.getWidth()-2*ofset),pbch);
+ btnMenu.setBounds((int)ofset, exit.getY()-btchange-pbch, (int) (this.getWidth()-2*ofset),pbch);
+ play.setBounds((int)ofset, btnMenu.getY()-btchange-pbch, (int) (this.getWidth()-2*ofset),pbch);
+ double mcoffset = c.getWidth()*this.pbXOffSetPercent-.05;
+ int mcx=(int) mcoffset;
+ int mcy=play.getY();
+ int mcw= (int) (this.getWidth()-2*mcoffset);
+ int mch = this.getHeight()/4;
+ lblMc.setBounds(mcx,mcy-btchange-mch,mcw,mch);
+ ImageIcon imgico = new ImageIcon(FileUtil.getResourceURL("resources/textures/gui/title/mc.png"));
+ Image img = imgico.getImage();
+ Image dimg = img.getScaledInstance(lblMc.getWidth(), lblMc.getHeight(),
+ Image.SCALE_SMOOTH);
+
+ lblMc.setIcon(new ImageIcon(dimg));
+ this.repaint();
+ this.revalidate();
+ //}catch(Exception exc) {
+
+ //}
+
+ }
+
+ private BufferedImage makeback(URL url,int width,int height) {
+ Image back = new ImageIcon(url).getImage();
+ BufferedImage bimage = new BufferedImage(back.getWidth(null), back.getHeight(null), BufferedImage.TYPE_INT_ARGB);
+ // Draw the image on to the buffered image
+ Graphics2D bGr = bimage.createGraphics();
+ bGr.drawImage(back, 0, 0, null);
+ bGr.dispose();
+
+ BufferedImage resized = new BufferedImage(width, height, bimage.getType());
+ Graphics2D g = resized.createGraphics();
+ g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
+ RenderingHints.VALUE_INTERPOLATION_BILINEAR);
+ g.drawImage(bimage, 0, 0, width, height, 0, 0, bimage.getWidth(),
+ bimage.getHeight(), null);
+ g.dispose();
+ return resized;
+
+ }
+ /**
+ * @return the back
+ */
+ public Image getBack() {
+ return back;
+ }
+ /**
+ * @param back the back to set
+ */
+ public void setBack(Image back) {
+ this.back = back;
+ }
+
+ @Override
+ protected void paintComponent(Graphics g) {
+ super.paintComponent(g);
+ g.drawImage(getBack(), 0, 0, null);
+ }
+}
diff --git a/source/VoxelCraft/src/frames/QuickMenu.java b/source/VoxelCraft/src/frames/QuickMenu.java
new file mode 100644
index 0000000..cd15b4e
--- /dev/null
+++ b/source/VoxelCraft/src/frames/QuickMenu.java
@@ -0,0 +1,217 @@
+/**
+ *
+ */
+package frames;
+
+import java.awt.Color;
+import java.awt.Image;
+import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ComponentAdapter;
+import java.awt.event.ComponentEvent;
+import java.awt.image.BufferedImage;
+
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import mc.Minecraft;
+import minerender.FileControl;
+import minerender.VoxEn;
+import minerender.VoxelCt;
+import mplayer.SoundEngine;
+
+/**
+ * @author dunemask
+ *
+ */
+public class QuickMenu extends JPanel{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -8074240448990920678L;
+
+
+ public static Rectangle center(int cw,int ch,double xOffSetlr,int totalComp,int compNumber,int verticalCompOffset) {
+ int compch = ch/totalComp;
+ double offset = xOffSetlr;
+ int rx = (int) (cw*offset);
+ int ry = (int) compch*compNumber;
+ ry+=verticalCompOffset;
+ int rw = (int) (cw-(2*cw*offset));
+ int rh = compch;
+ Rectangle r = new Rectangle(rx,ry,rw,rh);
+ return r;
+ }
+
+
+ private static JButton btnResume;
+ private static JButton btnQuick;
+ private static JButton btnExit;
+ private static JLabel back= new JLabel();
+// private static Graphics voxG;
+ private static BufferedImage awtImage;
+
+
+ public void reset() {
+ awtImage = null;
+
+ }
+ public void redraw(VoxelCt vx) {
+ int cw = Minecraft.cf.getWidth();
+ int ch = Minecraft.cf.getHeight();
+ if(awtImage==null) {
+ awtImage = new BufferedImage(cw, ch, BufferedImage.TYPE_INT_RGB);
+ VoxelCt tvox = vx;
+ tvox.paintAll(awtImage.getGraphics());
+ }
+ }
+
+ /**
+ * @param vx
+ * @return
+ */
+ public QuickMenu(VoxelCt vx) {
+ double offset = .2;
+ int cw = Minecraft.cf.getWidth();
+ int ch = Minecraft.cf.getHeight();
+ if(awtImage==null) {
+ awtImage = new BufferedImage(cw, ch, BufferedImage.TYPE_INT_RGB);
+ VoxelCt tvox = vx;
+ tvox.paintAll(awtImage.getGraphics());
+ }
+ btnResume = new JButton("Resume");
+ btnResume.setBackground(Color.DARK_GRAY);
+ btnResume.setForeground(Color.WHITE);
+ this.setLayout(null);
+ /*int rx = (int) (Minecraft.cf.getWidth()*offset);
+ int rw = (int) (Minecraft.cf.getWidth()-2*offset*Minecraft.cf.getWidth());
+ int vsy = (int) compch;
+ int vsw = (int) (Minecraft.cf.getWidth()-(2*Minecraft.cf.getWidth()*offset));
+ int vsh = compch;*/
+ //btnResume.setBounds(rx,vsy,vsw,vsh);
+ btnResume.setBounds(center(cw,ch,offset,7,0,20));
+ btnResume.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ resume();
+
+ }
+
+ });
+ btnQuick = new JButton("Settings");
+ btnQuick.setBackground(Color.DARK_GRAY);
+ btnQuick.setForeground(Color.WHITE);
+ btnQuick.setBounds(center(cw,ch,offset,7,1,40));
+ btnQuick.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ quick();
+
+ }
+
+ });
+
+ btnExit = new JButton("Save and Exit");
+ btnExit.setBackground(Color.DARK_GRAY);
+ btnExit.setForeground(Color.WHITE);
+ btnExit.setBounds(center(cw,ch,offset,7,2,60));
+ btnExit.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ exit();
+
+ }
+
+ });
+
+
+
+
+ this.setOpaque(false);
+ this.setSize(cw, ch);
+ this.add(btnResume);
+ this.add(btnQuick);
+ this.add(btnExit);
+ back.setBounds(0, 0, cw, ch);
+ ImageIcon imgico = new ImageIcon(awtImage);
+ Image img = imgico.getImage();
+ Image dimg = img.getScaledInstance(back.getWidth(), back.getHeight(),
+ Image.SCALE_SMOOTH);
+ imgico = new ImageIcon(dimg);
+ back.setIcon(imgico);
+ //this.add(back);
+
+ this.addComponentListener(new ComponentAdapter() {
+ public void componentResized(ComponentEvent e) {
+ resized(e);
+ }
+ });
+
+ }
+
+
+
+
+ /**
+ *
+ */
+ protected static void quick() {
+ SoundEngine.handle("click");
+ Minecraft.quickSettings();
+
+ }
+
+
+
+ protected static void exit() {
+ SoundEngine.handle("click");
+ FileControl.SaveFileAsXML(Minecraft.vx.getVen(), Minecraft.vx.getVen().getName());
+ SoundEngine.stop(SoundEngine.allEngines);
+ SoundEngine.start(SoundEngine.title);
+ Minecraft.goToSelect();
+ }
+ /**
+ *
+ */
+ protected static void resume() {
+ SoundEngine.handle("click");
+ VoxEn ven = Minecraft.vx.getVen();
+ VoxelCt vct = new VoxelCt(ven,Minecraft.vx.mode,true);
+ Minecraft.loadWorld(vct,true);
+
+ }
+
+
+
+
+ /**
+ * @param e
+ */
+ protected void resized(ComponentEvent e) {
+ double offset = .2;
+ int cw = Minecraft.cf.getWidth();
+ int ch = Minecraft.cf.getHeight();
+ this.setSize(cw, ch);
+ //System.out.println("Resized");
+ btnResume.setBounds(center(cw,ch,offset,7,0,20));
+ btnQuick.setBounds(center(cw,ch,offset,7,1,40));
+ btnExit.setBounds(center(cw,ch,offset,7,2,60));
+ back.setBounds(0, 0, cw, ch);
+ ImageIcon imgico = new ImageIcon(awtImage);
+ Image img = imgico.getImage();
+ Image dimg = img.getScaledInstance(cw, ch,
+ Image.SCALE_SMOOTH);
+ imgico = new ImageIcon(dimg);
+ back.setIcon(imgico);
+
+
+ }
+
+}
diff --git a/source/VoxelCraft/src/frames/QuickSettings.java b/source/VoxelCraft/src/frames/QuickSettings.java
new file mode 100644
index 0000000..bfb8bc3
--- /dev/null
+++ b/source/VoxelCraft/src/frames/QuickSettings.java
@@ -0,0 +1,228 @@
+/**
+ *
+ */
+package frames;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ComponentAdapter;
+import java.awt.event.ComponentEvent;
+
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JSlider;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+import dunemask.objects.DMediaPlayer;
+import mc.Minecraft;
+import mplayer.PlaySound;
+import mplayer.SoundEngine;
+
+/**
+ * @author Dunemask
+ *
+ */
+public class QuickSettings extends JPanel {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 7743473342320749215L;
+ private JSlider volSlider;
+ private JSlider renslider;
+ private static JLabel renLabel;
+ private static JLabel volLabel;
+ private static JButton back=new JButton("Back");
+ private static final double volSliderPerc=.15;
+ private static int renderMax = 300;
+
+ /**
+ *
+ */
+ public QuickSettings() {
+ setBackground(Color.DARK_GRAY);
+ this.setSize(600,600);
+ this.addComponentListener(new ComponentAdapter() {
+ public void componentResized(ComponentEvent e) {
+ resized(e);
+ }
+ });
+
+ setLayout(null);
+
+ volLabel = new JLabel("Volume "+(int)(PlaySound.vol*100));
+ volLabel.setForeground(Color.WHITE);
+ volLabel.setBackground(Color.DARK_GRAY);
+ volLabel.setBounds(242, 24, 84, 32);
+ volSlider = new JSlider();
+ volSlider.setForeground(Color.DARK_GRAY);
+ volSlider.setFont(new Font("Tahoma", Font.PLAIN, 20));
+ volSlider.setBounds(134, 80, 273, 71);
+ volSlider.setMaximum(100);
+ volSlider.setValue((int) (PlaySound.vol*100));
+ volSlider.addChangeListener(new ChangeListener() {
+
+ @Override
+ public void stateChanged(ChangeEvent arg0) {
+ double rv = (double)volSlider.getValue()/(double)volSlider.getMaximum();
+ PlaySound.vol=rv;
+ //DMediaPlayer.getMediaPlayer().setVolume(PlaySound.vol);
+ volLabel.setText("Volume "+(int)(PlaySound.vol*100));
+ repRev();
+
+ }});
+ back.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ quickMenu();
+ }
+ });
+ back.setForeground(Color.WHITE);
+ back.setBackground(Color.BLACK);
+ int pbch = this.getHeight()/10;
+
+ back.setBounds(volSlider.getX(), this.getHeight()-pbch, volSlider.getWidth(),pbch);
+ add(back);
+
+
+ add(volLabel);
+ add(volSlider);
+ int lby = pbch;
+
+ int vsx = (int) (this.getWidth()*QuickSettings.volSliderPerc);
+ int vsy = (int) lby+pbch;
+ int vsw = (int) (this.getWidth()-(2*this.getWidth()*QuickSettings.volSliderPerc));
+ int vsh = pbch;
+ volSlider.setBounds(vsx,vsy,vsw,vsh);
+ int lbx=(int) (vsx+(vsw/2)-(volLabel.getPreferredSize().getWidth()/2));
+ volLabel.setBounds(lbx, lby,(int) volLabel.getPreferredSize().getWidth(),(int)volLabel.getPreferredSize().getHeight());
+ renLabel = new JLabel("Render "+Minecraft.renderVal);
+ renLabel.setForeground(Color.WHITE);
+ renLabel.setBackground(Color.DARK_GRAY);
+ renLabel.setFont(new Font("Tahoma", Font.PLAIN, 40));
+ //renLabel.setBounds(volLabel.getX(),volLabel.getY()+2*pbch,volLabel.getWidth(), volLabel.getHeight());
+ renLabel.setBounds(lbx, lby+2*pbch,(int) renLabel.getPreferredSize().getWidth(),(int)renLabel.getPreferredSize().getHeight());
+ renslider = new JSlider();
+ renslider.setMaximum(renderMax);
+ renslider.setMinimum(100);
+ renslider.setValue(Minecraft.renderVal);
+ renslider.setForeground(Color.DARK_GRAY);
+ renslider.setFont(new Font("Tahoma", Font.PLAIN, 20));
+ renslider.setBounds(volSlider.getX(), volSlider.getY()+2*pbch, volSlider.getWidth(), volSlider.getHeight());
+ renslider.addChangeListener(new ChangeListener() {
+
+ @Override
+ public void stateChanged(ChangeEvent arg0) {
+ Minecraft.renderVal= renslider.getValue();
+ renLabel.setText("Render "+Minecraft.renderVal);
+ renSliderChanged();
+ }});
+ add(renslider);
+ this.add(renLabel);
+
+ }
+
+
+ /**
+ *
+ */
+ protected void repRev() {
+ this.repaint();
+ this.revalidate();
+
+ }
+
+
+ /**
+ *
+ */
+ protected void renSliderChanged() {
+ this.repRev();
+
+ }
+
+
+ /**
+ *
+ */
+ protected void quickMenu() {
+ SoundEngine.handle("click");
+ Minecraft.quickMenu();
+
+
+
+
+ }
+
+
+
+
+
+ /**
+ * @param e
+ */
+ protected void resized(ComponentEvent e) {
+ //Goes through and changes each component to fit the parent somewhat
+ try {
+ // This is only called when the user releases the mouse button.
+ //double ofset = c.getWidth()*this.pbXOffSetPercent;
+ int pbch = this.getHeight()/10;
+ QuickSettings.volLabel.setFont(new Font("Tahoma", Font.PLAIN, 40));
+ //int objsize;
+ //exit.setBounds((int)ofset, c.getHeight()-btchange-pbch, (int) (this.getWidth()-2*ofset),pbch);
+ //objsize = this.getHeight()/6;
+ int lby = pbch;
+
+ int vsx = (int) (this.getWidth()*QuickSettings.volSliderPerc);
+ int vsy = (int) lby+pbch;
+ int vsw = (int) (this.getWidth()-(2*this.getWidth()*QuickSettings.volSliderPerc));
+ int vsh = pbch;
+ volSlider.setBounds(vsx,vsy,vsw,vsh);
+ int lbx=(int) (vsx+(vsw/2)-(volLabel.getPreferredSize().getWidth()/2));
+ volLabel.setBounds(lbx, lby,(int) volLabel.getPreferredSize().getWidth(),(int)volLabel.getPreferredSize().getHeight());
+ back.setBounds(vsx, this.getHeight()-pbch, vsw,pbch);
+ renslider.setBounds(volSlider.getX(),volSlider.getY()+2*pbch , volSlider.getWidth(), volSlider.getHeight());
+ renLabel.setBounds(lbx, lby+2*pbch,(int) renLabel.getPreferredSize().getWidth(),(int)renLabel.getPreferredSize().getHeight());
+ this.repaint();
+ this.revalidate();
+ }catch(Exception exc) {
+
+ }
+
+ }
+
+
+ /**
+ * @return the volSlider
+ */
+ public JSlider getVolSlider() {
+ return volSlider;
+ }
+
+
+ /**
+ * @param volSlider the volSlider to set
+ */
+ public void setVolSlider(JSlider volSlider) {
+ this.volSlider = volSlider;
+ }
+
+
+ /**
+ * @return the renslider
+ */
+ public JSlider getRenslider() {
+ return renslider;
+ }
+
+
+ /**
+ * @param renslider the renslider to set
+ */
+ public void setRenslider(JSlider renslider) {
+ this.renslider = renslider;
+ }
+}
diff --git a/source/VoxelCraft/src/frames/Settings.java b/source/VoxelCraft/src/frames/Settings.java
new file mode 100644
index 0000000..182f720
--- /dev/null
+++ b/source/VoxelCraft/src/frames/Settings.java
@@ -0,0 +1,279 @@
+/**
+ *
+ */
+package frames;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ComponentAdapter;
+import java.awt.event.ComponentEvent;
+import java.io.File;
+
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JSlider;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+import dunemask.objects.DMediaPlayer;
+import dunemask.util.FileUtil;
+import dunemask.util.xml.RuneMap;
+import mc.Minecraft;
+import mc.ResourceHandler;
+import mplayer.PlaySound;
+import mplayer.SoundEngine;
+
+/**
+ * @author Dunemask
+ *
+ */
+public class Settings extends JPanel {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 7743473342320749215L;
+ private JSlider volSlider;
+ private JSlider renslider;
+ /**
+ * @return the volSlider
+ */
+ public JSlider getVolSlider() {
+ return volSlider;
+ }
+
+
+ /**
+ * @param volSlider the volSlider to set
+ */
+ public void setVolSlider(JSlider volSlider) {
+ this.volSlider = volSlider;
+ }
+
+
+ /**
+ * @return the renslider
+ */
+ public JSlider getRenslider() {
+ return renslider;
+ }
+
+
+ /**
+ * @param renslider the renslider to set
+ */
+ public void setRenslider(JSlider renslider) {
+ this.renslider = renslider;
+ }
+
+
+ private static JLabel renLabel;
+ private static JLabel volLabel;
+ private static JButton back=new JButton("Back");
+ private static JButton loadPack = new JButton("Load Resource");
+ private static final double volSliderPerc=.15;
+ private static int renderMax = 300;
+
+ /**
+ *
+ */
+ public Settings() {
+ setBackground(Color.DARK_GRAY);
+ this.setSize(600,600);
+ this.addComponentListener(new ComponentAdapter() {
+ public void componentResized(ComponentEvent e) {
+ resized(e);
+ }
+ });
+
+ setLayout(null);
+
+ volLabel = new JLabel("Volume "+(int)(PlaySound.vol*100));
+ volLabel.setForeground(Color.WHITE);
+ volLabel.setBackground(Color.DARK_GRAY);
+ volLabel.setBounds(242, 24, 84, 32);
+ volSlider = new JSlider();
+ volSlider.setForeground(Color.DARK_GRAY);
+ volSlider.setFont(new Font("Tahoma", Font.PLAIN, 20));
+ volSlider.setBounds(134, 80, 273, 71);
+ volSlider.setMaximum(100);
+ volSlider.setValue((int) (PlaySound.vol*100));
+ volSlider.addChangeListener(new ChangeListener() {
+
+ @Override
+ public void stateChanged(ChangeEvent arg0) {
+ double rv = (double)volSlider.getValue()/(double)volSlider.getMaximum();
+ PlaySound.vol=rv;
+ //DMediaPlayer.getMediaPlayer().setVolume(PlaySound.vol);
+ volLabel.setText("Volume "+(int)(PlaySound.vol*100));
+ repRev();
+
+ }});
+ back.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ mainMenu();
+ }
+ });
+ back.setForeground(Color.WHITE);
+ back.setBackground(Color.BLACK);
+ int pbch = this.getHeight()/10;
+
+ back.setBounds(volSlider.getX(), this.getHeight()-pbch, volSlider.getWidth(),pbch);
+ add(back);
+
+ loadPack.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ loadResourcePack();
+
+ }
+
+ });
+ loadPack.setForeground(Color.white);
+ loadPack.setBackground(Color.BLACK);
+ loadPack.setBounds(volSlider.getX(), this.getHeight()-2*pbch, volSlider.getWidth(),pbch);
+ add(loadPack);
+
+ add(volLabel);
+ add(volSlider);
+ int lby = pbch;
+
+ int vsx = (int) (this.getWidth()*Settings.volSliderPerc);
+ int vsy = (int) lby+pbch;
+ int vsw = (int) (this.getWidth()-(2*this.getWidth()*Settings.volSliderPerc));
+ int vsh = pbch;
+ volSlider.setBounds(vsx,vsy,vsw,vsh);
+ int lbx=(int) (vsx+(vsw/2)-(volLabel.getPreferredSize().getWidth()/2));
+ volLabel.setBounds(lbx, lby,(int) volLabel.getPreferredSize().getWidth(),(int)volLabel.getPreferredSize().getHeight());
+ renLabel = new JLabel("Render "+Minecraft.renderVal);
+ renLabel.setForeground(Color.WHITE);
+ renLabel.setBackground(Color.DARK_GRAY);
+ renLabel.setFont(new Font("Tahoma", Font.PLAIN, 40));
+ //renLabel.setBounds(volLabel.getX(),volLabel.getY()+2*pbch,volLabel.getWidth(), volLabel.getHeight());
+ renLabel.setBounds(lbx, lby+2*pbch,(int) renLabel.getPreferredSize().getWidth(),(int)renLabel.getPreferredSize().getHeight());
+ renslider = new JSlider();
+ renslider.setMaximum(renderMax);
+ renslider.setMinimum(100);
+ renslider.setValue(Minecraft.renderVal);
+ renslider.setForeground(Color.DARK_GRAY);
+ renslider.setFont(new Font("Tahoma", Font.PLAIN, 20));
+ renslider.setBounds(volSlider.getX(), volSlider.getY()+2*pbch, volSlider.getWidth(), volSlider.getHeight());
+ renslider.addChangeListener(new ChangeListener() {
+
+ @Override
+ public void stateChanged(ChangeEvent arg0) {
+ Minecraft.renderVal= renslider.getValue();
+ renLabel.setText("Render "+Minecraft.renderVal);
+ renSliderChanged();
+ }});
+ add(renslider);
+ this.add(renLabel);
+
+ }
+
+
+ /**
+ *
+ */
+ protected void loadResourcePack() {
+ JSystemFileChooser jfc = new JSystemFileChooser();
+ jfc.setCurrentDirectory(new File(System.getProperty("user.home")+"/Documents/VoxelCraft/"));
+ jfc.setDialogTitle("Select a Resource Pack Folder");
+ jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+ jfc.setMultiSelectionEnabled(false);
+ jfc.showOpenDialog(this);
+ File top = jfc.getSelectedFile();
+ RuneMap info = RuneMap.ParseDXMLMap(new File(top.getAbsolutePath()+"\\info.xml"));
+ String textures = FileUtil.filePathFix(top.getAbsolutePath())+"/"+info.pullValue("info/trelpath");
+ ResourceHandler.sounds = new File(top.getAbsolutePath()+"\\sounds.xml");
+ ResourceHandler.soundmap = RuneMap.ParseDXMLMap(ResourceHandler.sounds);
+ ResourceHandler.blox = new File(top.getAbsolutePath()+"\\blocks.xml");
+ ResourceHandler.blockmap = RuneMap.ParseDXMLMap(ResourceHandler.sounds);
+ ResourceHandler.handlemap.writeElement("Handler/sounds", ResourceHandler.sounds);
+ ResourceHandler.handlemap.writeElement("Handler/blox", ResourceHandler.blox);
+ ResourceHandler.init();
+ //System.out.println(ResourceHandler.blockmap.getXml().getAbsolutePath());
+ //System.out.println(textures);
+ String sounds =FileUtil.filePathFix(top.getAbsolutePath())+"/"+info.pullValue("info/srelpath");
+ ResourceHandler.blockmap.removeElement("blocks/texturepath");
+ ResourceHandler.blockmap.writeForcedElement("blocks/texturepath", textures+"/blocks/");
+ ResourceHandler.soundmap.removeElement("Sounds/relpath");
+ ResourceHandler.soundmap.writeForcedElement("Sounds/relpath", sounds+"/");
+ SoundEngine.stop(SoundEngine.allEngines);
+ SoundEngine.start(SoundEngine.title);
+ }
+
+
+ /**
+ *
+ */
+ protected void repRev() {
+ this.repaint();
+ this.revalidate();
+
+ }
+
+
+ /**
+ *
+ */
+ protected void renSliderChanged() {
+ this.repRev();
+
+ }
+
+
+ /**
+ *
+ */
+ protected void mainMenu() {
+ SoundEngine.handle("click");
+ Minecraft.goToMain();
+
+
+
+
+ }
+
+
+
+
+ /**
+ * @param e
+ */
+ protected void resized(ComponentEvent e) {
+ //Goes through and changes each component to fit the parent somewhat
+ try {
+ // This is only called when the user releases the mouse button.
+ //double ofset = c.getWidth()*this.pbXOffSetPercent;
+ int pbch = this.getHeight()/10;
+ Settings.volLabel.setFont(new Font("Tahoma", Font.PLAIN, 40));
+ //int objsize;
+ //exit.setBounds((int)ofset, c.getHeight()-btchange-pbch, (int) (this.getWidth()-2*ofset),pbch);
+ //objsize = this.getHeight()/6;
+ int lby = pbch;
+
+ int vsx = (int) (this.getWidth()*Settings.volSliderPerc);
+ int vsy = (int) lby+pbch;
+ int vsw = (int) (this.getWidth()-(2*this.getWidth()*Settings.volSliderPerc));
+ int vsh = pbch;
+ volSlider.setBounds(vsx,vsy,vsw,vsh);
+ int lbx=(int) (vsx+(vsw/2)-(volLabel.getPreferredSize().getWidth()/2));
+ volLabel.setBounds(lbx, lby,(int) volLabel.getPreferredSize().getWidth(),(int)volLabel.getPreferredSize().getHeight());
+ back.setBounds(vsx, this.getHeight()-pbch, vsw,pbch);
+ loadPack.setBounds(vsx,this.getHeight()-2*pbch, vsw,pbch);
+ renslider.setBounds(volSlider.getX(),volSlider.getY()+2*pbch , volSlider.getWidth(), volSlider.getHeight());
+ renLabel.setBounds(lbx, lby+2*pbch,(int) renLabel.getPreferredSize().getWidth(),(int)renLabel.getPreferredSize().getHeight());
+ this.repaint();
+ this.revalidate();
+ }catch(Exception exc) {
+
+ }
+
+ }
+}
diff --git a/source/VoxelCraft/src/mc/BlockAdd.java b/source/VoxelCraft/src/mc/BlockAdd.java
new file mode 100644
index 0000000..ed41cc5
--- /dev/null
+++ b/source/VoxelCraft/src/mc/BlockAdd.java
@@ -0,0 +1,49 @@
+/**
+ *
+ */
+package mc;
+
+import java.io.File;
+
+import dunemask.util.xml.RuneMap;
+
+/**
+ * @author Dunemask
+ *
+ */
+public class BlockAdd {
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) {
+ File block = new File(System.getProperty("user.home")+"/Desktop/block.xml");
+ RuneMap map = new RuneMap(block,"blocks");
+ map.writeElement("blocks/0", "dirt");
+ map.writeElement("blocks/1", "stone");
+ map.writeElement("blocks/2", "grass");
+ map.writeElement("blocks/3", "grass_side");
+ map.writeElement("blocks/4", "log_top");
+ map.writeElement("blocks/5", "log_side");
+ map.writeElement("blocks/6", "brix");
+ map.writeElement("blocks/7", "leaves");
+ map.writeElement("blocks/8", "leaves_2");
+ map.writeElement("blocks/9", "stone_brick");
+ map.writeElement("blocks/10", "select");
+ map.writeElement("blocks/11", "red");
+ map.writeElement("blocks/12", "orange");
+ map.writeElement("blocks/13", "yellow");
+ map.writeElement("blocks/14", "green");
+ map.writeElement("blocks/15", "sky_blue");
+ map.writeElement("blocks/16", "dark_blue");
+ map.writeElement("blocks/17", "magenta");
+ map.writeElement("blocks/18", "cobblestone");
+ map.writeElement("blocks/19", "bedrock");
+ map.writeElement("blocks/20", "glass");
+ map.writeElement("blocks/21", "light_gray_stained_glass");
+
+
+
+ }
+
+}
diff --git a/source/VoxelCraft/src/mc/MineCommands.java b/source/VoxelCraft/src/mc/MineCommands.java
new file mode 100644
index 0000000..29f7bd4
--- /dev/null
+++ b/source/VoxelCraft/src/mc/MineCommands.java
@@ -0,0 +1,369 @@
+package mc;
+/**
+ *
+ */
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import dunemask.util.StringUtil;
+import minerender.Block;
+import minerender.FileControl;
+import minerender.Vector3;
+import minerender.VoxelCt;
+import mplayer.PlaySound;
+import mplayer.SoundEngine;
+
+/**
+ * @author Dunemask
+ *
+ */
+public class MineCommands {
+ public static ArrayList commands = new ArrayList();
+ public static int latestCommand =-1;
+
+ public static String getCommand(int get) {
+ return commands.get(get);
+ }
+
+
+ public static void HandleCommand(String fullCommand) {
+ commands.add(fullCommand);
+ List list = new ArrayList();
+ Matcher m = Pattern.compile("([^\"]\\S*|\".+?\")\\s*").matcher(fullCommand);
+ while (m.find())
+ list.add(m.group(1));
+
+ String[] com = list.toArray(new String[list.size()]);
+
+ String command = com[0];
+ if(!command.startsWith("/")) {
+ Minecraft.vx.printText(fullCommand);
+ return;
+ }else {
+ command = command.substring(1, command.length());
+ }
+ try {
+ trycommand(com,command);
+ }catch(Exception e) {
+ e.printStackTrace();
+ }
+
+
+ }
+
+ /**
+ * @param com
+ * @param command
+ */
+ private static void trycommand(String[] com, String command) {
+ if(command.equalsIgnoreCase("devmode")) {
+ if(com[1].equalsIgnoreCase("on")) {
+ Minecraft.vx.setDeveloperMode(true);
+ }else if(com[1].equalsIgnoreCase("off")) {
+ Minecraft.vx.setDeveloperMode(false);
+ }
+ }
+
+ if(command.equalsIgnoreCase("set")) {
+ set(com);
+ return;
+ }
+ if(command.equalsIgnoreCase("Help")) {
+ try {
+ help(com[1]);
+ }catch(java.lang.ArrayIndexOutOfBoundsException exc) {
+ Minecraft.vx.printText("Help Is Used to demonstrate commands");
+ }
+ return;
+ }
+ if(command.equalsIgnoreCase("setblock")) {
+ int x = Integer.parseInt(com[1]);
+ int y = Integer.parseInt(com[2]);
+ int z = Integer.parseInt(com[3]);
+ String block = com[4];
+ int wanted = 0;
+ ArrayList names = Minecraft.vx.getVen().blks;
+ for(int i=0;i{
+ FileControl.SaveFileAsXML(Minecraft.vx.getVen(), Minecraft.vx.getVen().getName());
+ latch.countDown();
+ }).start();
+ try {
+ latch.await();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ Minecraft.vx.printText("Saved");
+ return;
+ }
+ if(command.equalsIgnoreCase("saveas")) {
+ CountDownLatch latch = new CountDownLatch(1);
+ new Thread( ()->{
+ FileControl.SaveFileAsXML(Minecraft.vx.getVen(), com[1]);
+ latch.countDown();
+ }).start();
+ try {
+ latch.await();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ Minecraft.vx.printText("Saved as "+com[1]);
+ return;
+ }
+ if(command.equalsIgnoreCase("tp")||command.equalsIgnoreCase("teleport")) {
+ if(com[1].equalsIgnoreCase("~")) {
+ com[1] = ""+(int)Minecraft.vx.getVen().campos.x;
+ }else if(com[1].contains("~")){
+ com[1] = com[1].replace("~", "");
+ com[1] = ""+(Integer.parseInt(com[1])+(int)Minecraft.vx.getVen().campos.x);
+ }
+
+ if(com[2].equalsIgnoreCase("~")) {
+ com[2] = ""+(int)Minecraft.vx.getVen().campos.z;
+ }else if(com[2].contains("~")){
+ com[2] = com[2].replace("~", "");
+ com[2] = ""+(Integer.parseInt(com[2])+(int)Minecraft.vx.getVen().campos.z);
+ }
+ if(com[3].equalsIgnoreCase("~")) {
+ com[3] = ""+(int)Minecraft.vx.getVen().campos.y;
+ }else if(com[3].contains("~")){
+ com[3] = com[3].replace("~", "");
+ com[3] = ""+(Integer.parseInt(com[3])+(int)Minecraft.vx.getVen().campos.y);
+ }
+
+ int x =Integer.parseInt(com[1]);
+ int y = Integer.parseInt(com[3]);
+ int z = Integer.parseInt(com[2]);
+
+
+ Minecraft.vx.getVen().campos.x = x;
+ Minecraft.vx.getVen().campos.y = y;
+ Minecraft.vx.getVen().campos.z = z;
+ return;
+ }
+
+ if(command.equalsIgnoreCase("fill")||command.equalsIgnoreCase("fill-replace")) {
+ if(com[1].equalsIgnoreCase("~")) {
+ com[1] = ""+(int)Minecraft.vx.getVen().campos.x;
+ }else if(com[1].contains("~")){
+ com[1] = com[1].replace("~", "");
+ com[1] = ""+(Integer.parseInt(com[1])+(int)Minecraft.vx.getVen().campos.x);
+ }
+
+ if(com[2].equalsIgnoreCase("~")) {
+ com[2] = ""+(int)Minecraft.vx.getVen().campos.z;
+ }else if(com[2].contains("~")){
+ com[2] = com[2].replace("~", "");
+ com[2] = ""+(Integer.parseInt(com[2])+(int)Minecraft.vx.getVen().campos.z);
+ }
+ if(com[3].equalsIgnoreCase("~")) {
+ com[3] = ""+(int)Minecraft.vx.getVen().campos.y;
+ }else if(com[3].contains("~")){
+ com[3] = com[3].replace("~", "");
+ com[3] = ""+(Integer.parseInt(com[3])+(int)Minecraft.vx.getVen().campos.y);
+ }
+ if(com[4].equalsIgnoreCase("~")) {
+ com[4] = ""+(int)Minecraft.vx.getVen().campos.x;
+ }else if(com[4].contains("~")){
+ com[4] = com[4].replace("~", "");
+ com[4] = ""+(Integer.parseInt(com[4])+(int)Minecraft.vx.getVen().campos.x);
+ }
+
+ if(com[5].equalsIgnoreCase("~")) {
+ com[5] = ""+(int)Minecraft.vx.getVen().campos.z;
+ }else if(com[5].contains("~")){
+ com[5] = com[5].replace("~", "");
+ com[5] = ""+(Integer.parseInt(com[5])+(int)Minecraft.vx.getVen().campos.z);
+ }
+ if(com[6].equalsIgnoreCase("~")) {
+ com[6] = ""+(int)Minecraft.vx.getVen().campos.y;
+ }else if(com[6].contains("~")){
+ com[6] = com[6].replace("~", "");
+ com[6] = ""+(Integer.parseInt(com[6])+(int)Minecraft.vx.getVen().campos.y);
+ }
+ int x =Integer.parseInt(com[1]);
+ int y = Integer.parseInt(com[3]);
+ int z = Integer.parseInt(com[2]);
+ int x2 =Integer.parseInt(com[4]);
+ int y2 = Integer.parseInt(com[6]);
+ int z2 = Integer.parseInt(com[5]);
+ String block = com[7];
+ int wanted =0;
+ ArrayList names = Minecraft.vx.getVen().blks;
+ for(int i=0;i lm = new DefaultListModel();
+ JList list = new JList(lm);
+ VoxEn ven;
+ JFrame frm;
+ JToggleButton creative;
+ Border raised = BorderFactory.createRaisedSoftBevelBorder();
+ Border lowered = BorderFactory.createLoweredBevelBorder();
+ public Border cool= BorderFactory.createCompoundBorder(raised,lowered);
+ public FilePanel() {
+ JScrollPane scroll = new JScrollPane(list);
+ scroll.setBorder(cool);
+ this.setVisible(true);
+ this.setBackground(Color.GRAY);
+ this.setBorder(cool);
+ //this.setLocation(10, 10);
+ this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
+ JLabel lb = new JLabel("WORLD SELECTION");
+ lb.setForeground(Color.WHITE);
+ lb.setAlignmentX(CENTER_ALIGNMENT);
+ lb.setFont(new Font("Century Gothic", Font.PLAIN, 30));
+ this.add(lb);
+ this.add(scroll,BorderLayout.CENTER);
+
+
+
+ list.setCellRenderer(new ListCellRenderer() {
+ @Override
+ public Component getListCellRendererComponent(JList> list, Object value, int index, boolean isSelected,
+ boolean hasFocus) {
+ JPanel jp = new JPanel();
+ jp.setBackground(Color.GRAY);
+ JLabel jl = new JLabel(value.toString());
+ jl.setForeground(Color.WHITE);
+ jl.setFont(new Font("Century Gothic", Font.PLAIN, 15));
+ jp.setBorder(cool);
+ if(hasFocus) {
+ jl.setFont(new Font("Century Gothic", Font.PLAIN, 18));
+ }
+ if(isSelected) {
+ jl.setFont(new Font("Century Gothic", Font.PLAIN, 18));
+ }
+ jp.add(jl);
+ jp.repaint();
+ jp.revalidate();
+ return jp;
+ }
+
+ });
+
+ //Delete Button
+ JButton deleteBtn = new JButton("Delete");
+ deleteBtn.setForeground(Color.BLACK);
+ deleteBtn.setBackground(Color.LIGHT_GRAY);
+ deleteBtn.setFont(new Font("Century Gothic", Font.PLAIN, 20));
+ deleteBtn.setAlignmentX(0.5f);
+ deleteBtn.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ if(!list.isSelectionEmpty()) {
+ delAction();
+ }
+
+ }
+
+ });
+ //Play
+ JPanel panel = new JPanel();
+ add(panel);
+ panel.setLayout(new GridLayout(0, 3, 0, 0));
+
+ JButton btnPlay = new JButton("PLAY");
+ btnPlay.setForeground(Color.BLACK);
+ btnPlay.setBackground(Color.LIGHT_GRAY);
+ btnPlay.setFont(new Font("Century Gothic", Font.PLAIN, 20));
+ btnPlay.setAlignmentX(CENTER_ALIGNMENT);
+ //btnPlay.setForeground(Color.BLACK);
+ //btnPlay.setBackground(Color.GRAY);
+ btnPlay.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ SoundEngine.handle("click");
+ start(list.getSelectedIndex());
+ }
+ });
+ panel.add(btnPlay);
+ panel.add(deleteBtn);
+ list.addListSelectionListener(new ListSelectionListener() {
+
+ @Override
+ public void valueChanged(ListSelectionEvent arg0) {
+ btnPlay.setText(list.getSelectedValue()+"--PLAY");
+ deleteBtn.setText(list.getSelectedValue()+"--Delete");
+
+ }
+
+ });
+ JButton btnAdd =new JButton("New");
+ btnAdd.setForeground(Color.BLACK);
+ btnAdd.setBackground(Color.LIGHT_GRAY);
+
+
+
+ btnAdd.setFont(new Font("Century Gothic", Font.PLAIN, 20));
+ btnAdd.setAlignmentX(CENTER_ALIGNMENT);
+ JPanel create = new JPanel();
+ create.setVisible(false);
+ create.setBackground(Color.LIGHT_GRAY);
+ //create.setLayout();
+ JTextField jtf = new JTextField("____Untitled____");
+ jtf.setSize(100, 30);
+ //jtf.setVisible(false);
+ JLabel l1 = new JLabel("Size");
+ JTextField jx = new JTextField("120");
+ JTextField jy = new JTextField("120");
+ JTextField jz = new JTextField("120");
+ //JLabel l3 = new JLabel("Like");
+
+ JButton back = new JButton("Back");
+ back.setForeground(Color.BLACK);
+ back.setBackground(Color.LIGHT_GRAY);
+ back.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ SoundEngine.handle("click");
+ Minecraft.goToMain();
+ }
+ });
+
+ back.setFont(new Font("Century Gothic", Font.PLAIN, 20));
+ back.setAlignmentX(0.5f);
+ panel.add(back);
+ create.add(jtf);
+ create.add(l1);
+ create.add(jx);
+ create.add(jy);
+ create.add(jz);
+ add(create);
+
+ JToggleButton tglbtnSuperflat = new JToggleButton("Superflat");
+ tglbtnSuperflat.setForeground(Color.BLACK);
+ tglbtnSuperflat.setBackground(Color.LIGHT_GRAY);
+ create.add(tglbtnSuperflat);
+
+ creative = new JToggleButton("Creative");
+ creative.setForeground(Color.BLACK);
+ creative.setBackground(Color.LIGHT_GRAY);
+ creative.setFont(new Font("Century Gothic", Font.PLAIN, 20));
+ panel.add(creative);
+ panel.add(btnAdd);
+
+
+ btnAdd.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ SoundEngine.handle("click");
+ if(btnAdd.getText()=="New") {
+ jtf.setText("____Untitled____");
+ create.setVisible(true);
+ btnAdd.setText("Create New World2");
+ //System.out.println("JSDF");
+ repaint();
+ revalidate();
+ jtf.setText("Untitled");
+ }
+ if(btnAdd.getText()=="Create New World") {
+ create.setVisible(false);
+ boolean flat = tglbtnSuperflat.isSelected();
+ int i;
+ if(flat) {
+ i=2;
+ }else {
+ i=1;
+ }
+ VoxEn vex = new VoxEn(new Vector3(Integer.parseInt(jx.getText())/2,Integer.parseInt(jy.getText())/2,Integer.parseInt(jz.getText())),Integer.parseInt(jx.getText()),Integer.parseInt(jy.getText()),Integer.parseInt(jz.getText()),i,jtf.getText());
+ FileControl.SaveFileAsXML(vex, jtf.getText());
+
+
+
+ //jtf.setText("Untitled");
+ btnAdd.setText("New");
+ refreshlm();
+ ListModel mod = list.getModel();
+ int wanted = -1;
+ for(int c=0;c getLm() {
+ return lm;
+ }
+ /**
+ * @param lm the lm to set
+ */
+ public void setLm(DefaultListModel lm) {
+ this.lm = lm;
+ }
+ /**
+ * @return the hb
+ */
+ public DefaultListModel getHb() {
+ return hb;
+ }
+ /**
+ * @param hb the hb to set
+ */
+ public void setHb(DefaultListModel hb) {
+ this.hb = hb;
+ }
+ public Border cool= BorderFactory.createCompoundBorder(raised,lowered);
+ public DefaultListModel lm = new DefaultListModel();
+ public DefaultListModel hb = new DefaultListModel();
+ private JList list = new JList(lm);
+ /**
+ * @return the list
+ */
+ public JList getList() {
+ return list;
+ }
+ /**
+ * @param list the list to set
+ */
+ public void setList(JList list) {
+ this.list = list;
+ }
+ /**
+ * @return the hotbar
+ */
+ public JList getHotbar() {
+ return hotbar;
+ }
+ /**
+ * @param hotbar the hotbar to set
+ */
+ public void setHotbar(JList hotbar) {
+ this.hotbar = hotbar;
+ }
+ private JList hotbar = new JList(hb);
+ private int lastSel=0;
+
+ /**
+ * Uses JLists and JScrollPanes to get the job done...
+ */
+ public Inventory(VoxEn v) {
+ ven = v;
+ this.setVisible(true);
+ this.setBorder(cool);
+ //this.addBoxes(10);
+ this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
+ JScrollPane scroll = new JScrollPane(list);
+ //scroll.setAlignmentX(CENTER_ALIGNMENT);
+ this.add(scroll, BorderLayout.CENTER);
+ this.add(hotbar,BorderLayout.CENTER);
+ hotbar.setSelectedIndex(0);
+ // this.add(list);
+ list.setPreferredSize(new Dimension(100,1000));
+ //list.setSize(100,1000);
+ list.setVisibleRowCount(-1);
+ //JButton jb = new JButton("Save");
+ //jb.addActionListener("Saves");
+ list.addListSelectionListener(new ListSelectionListener() {
+
+ @Override
+ public void valueChanged(ListSelectionEvent e) {
+ valChanged();
+ }
+
+ });
+ ListCellRenderer lcr = new ListCellRenderer() {
+
+ @Override
+ public Component getListCellRendererComponent(JList> list, Object value, int index, boolean isSelected,
+ boolean cellHasFocus) {
+ JPanel jp = new JPanel();
+ jp.setSize(60,60);
+ jp.setLayout(new BoxLayout(jp,BoxLayout.Y_AXIS));
+ jp.setBorder(cool);
+ JLabel jl = new JLabel(ven.getBlock(index).name);
+ jl.setSize(50,10);
+ jl.setAlignmentX(Component.CENTER_ALIGNMENT);
+ jl.setFont(new Font("Serif", Font.PLAIN, 12));
+ int img = ven.getBlock(index).image[2];
+ ImageIcon i = new ImageIcon(FileControl.blockHandle(img));
+ JLabel imgicon = new JLabel(i);
+ imgicon.setAlignmentX(CENTER_ALIGNMENT);
+ jp.add(imgicon);
+ jp.add(jl);
+ return jp;
+ }
+
+ };
+ ListCellRenderer hbr = new ListCellRenderer() {
+
+ @Override
+ public Component getListCellRendererComponent(JList> list, Object value, int index, boolean isSelected,
+ boolean cellHasFocus) {
+ JPanel jp = new JPanel();
+ jp.setSize(60,60);
+ jp.setLayout(new BoxLayout(jp,BoxLayout.Y_AXIS));
+ jp.setBorder(cool);
+ JLabel jl = new JLabel(ven.getBlock(ven.hotbar[index]-1).name);
+ jl.setSize(50,10);
+ jl.setAlignmentX(Component.CENTER_ALIGNMENT);
+ jl.setFont(new Font("Serif", Font.PLAIN, 12));
+ if (isSelected) {
+ jl.setForeground(Color.BLUE);
+ }
+ int img = ven.getBlock(ven.hotbar[index]-1).image[2];
+ ImageIcon i = new ImageIcon(FileControl.blockHandle(img));
+ JLabel imgicon = new JLabel(i);
+ imgicon.setAlignmentX(CENTER_ALIGNMENT);
+ jp.add(imgicon);
+ jp.add(jl);
+ return jp;
+ }
+
+ };
+ list.setCellRenderer(lcr);
+ hotbar.setCellRenderer(hbr);
+ list.setLayoutOrientation(JList.HORIZONTAL_WRAP);
+ hotbar.setLayoutOrientation(JList.HORIZONTAL_WRAP);
+ hotbar.setVisibleRowCount(1);
+ scroll.setSize(100,100);
+ //Creates the lists
+ for(int x=0;x lcr = new ListCellRenderer() {
+
+ @Override
+ public Component getListCellRendererComponent(JList> list, Object value, int index, boolean isSelected,
+ boolean cellHasFocus) {
+ JPanel jp = new JPanel();
+ jp.setSize(60,60);
+ jp.setLayout(new BoxLayout(jp,BoxLayout.Y_AXIS));
+ jp.setBorder(cool);
+ JLabel jl = new JLabel(ven.getBlock(index).name+": "+ven.inventory[index]) ;//TODO
+ jl.setSize(50,10);
+ jl.setAlignmentX(Component.CENTER_ALIGNMENT);
+ jl.setFont(new Font("Serif", Font.PLAIN, 12));
+ int img = ven.getBlock(index).image[2];
+ ImageIcon i = new ImageIcon(FileControl.blockHandle(img));
+ JLabel imgicon = new JLabel(i);
+ imgicon.setAlignmentX(CENTER_ALIGNMENT);
+ jp.add(imgicon);
+ jp.add(jl);
+ return jp;
+ }
+
+ };
+ ListCellRenderer hbr = new ListCellRenderer() {
+
+ @Override
+ public Component getListCellRendererComponent(JList> list, Object value, int index, boolean isSelected,
+ boolean cellHasFocus) {
+ JPanel jp = new JPanel();
+ jp.setSize(60,60);
+ jp.setLayout(new BoxLayout(jp,BoxLayout.Y_AXIS));
+ jp.setBorder(cool);
+ JLabel jl = new JLabel(ven.getBlock(ven.hotbar[index]-1).name);
+ jl.setSize(50,10);
+ jl.setAlignmentX(Component.CENTER_ALIGNMENT);
+ jl.setFont(new Font("Serif", Font.PLAIN, 12));
+ if (isSelected) {
+ jl.setForeground(Color.BLUE);
+ }
+ int img = ven.getBlock(ven.hotbar[index]-1).image[2];
+ ImageIcon i = new ImageIcon(FileControl.blockHandle(img));
+ JLabel imgicon = new JLabel(i);
+ imgicon.setAlignmentX(CENTER_ALIGNMENT);
+ jp.add(imgicon);
+ jp.add(jl);
+ return jp;
+ }
+
+ };
+ list.setCellRenderer(lcr);
+ hotbar.setCellRenderer(hbr);
+ list.setLayoutOrientation(JList.HORIZONTAL_WRAP);
+ hotbar.setLayoutOrientation(JList.HORIZONTAL_WRAP);
+ hotbar.setVisibleRowCount(1);
+ scroll.setSize(100,100);
+ //Creates the lists
+ for(int x=0;x blks= new ArrayList();
+ Vector3[] collid = {new Vector3(-.4,-.4,-1.4),new Vector3(-.4,.4,-1.4),new Vector3(.4,.4,-1.4),new Vector3(.4,-.4,-1.4),
+ new Vector3(-.4,-.4,-0.4),new Vector3(-.4,.4,-0.4),new Vector3(.4,.4,-0.4),new Vector3(.4,-.4,-0.4),
+ new Vector3(-.4,-.4,0.2),new Vector3(-.4,.4,0.2),new Vector3(.4,.4,.2),new Vector3(.4,-.4,0.2)};
+
+ public Block getBlock(int bl) {
+ try {
+ return blks.get(bl);
+ }catch(Exception e) {
+ return null;
+ }
+ }
+ public int[] inventory = new int[blocklength];
+ public void setinventory(int[] inte) {
+ inventory = inte;
+ }
+ /**
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void addBlock(String name, int a, int b, int c, int d, int f, int g,boolean tan,boolean vis,int bt) {
+ int[] i = {a,b,c,d,f,g};
+ blks.add(new Block(tan, vis, i , name ,bt));
+ }
+ public void initializeBlock() {
+ addBlock("dirt",0,0,0,0,0,0,true,true,5);
+ addBlock("grass",0,2,3,3,3,3,true,true,5);
+ //addBlock("Dirt",0,0,0,0,0,0,true,true);
+ addBlock("stone",1,1,1,1,1,1,true,true,15);
+ addBlock("wood",4,4,5,5,5,5,true,true,8);
+ addBlock("leaves",7,7,7,7,7,7,true,true,3);
+ addBlock("bricks",9,9,9,9,9,9,true,true,10);
+ addBlock("red",11,11,11,11,11,11,true,true,1);
+ addBlock("orange",12,12,12,12,12,12,true,true,1);
+ addBlock("yellow",13,13,13,13,13,13,true,true,1);
+ addBlock("green",14,14,14,14,14,14,true,true,1);
+ addBlock("cyan",15,15,15,15,15,15,true,true,1);
+ addBlock("blue",16,16,16,16,16,16,true,true,1);
+ addBlock("magenta",17,17,17,17,17,17,true,true,1);
+ addBlock("glass",20,20,20,20,20,20,true,false,1);
+ //addBlock("Light_Gray_Stained_Glass",21,21,21,21,21,21,true,false,1);
+ addBlock("cobblestone",18,18,18,18,18,18,true,true,12);
+ addBlock("bedrock",19,19,19,19,19,19,true,true,1000);
+ }
+
+
+ public int[] hotbar= {1,2,3,4,5,6,7,8,9};
+ public int selected=0;
+ HashMap hmm = new HashMap();
+ /** Selected Box
+ * */
+ Vector3 sel = new Vector3(0,0,0);
+ String seld = "";
+ public ImageReader[] imgas = new ImageReader[imglength];
+ ImageReader selecc = new ImageReader(FileUtil.getResourceURL("resources/textures/gui/overlay/selecc.png"));
+ ImageReader crunch = new ImageReader(FileUtil.getResourceURL("resources/textures/gui/overlay/brk.png"));
+
+ //VoxChunk[][][] Chnks = new VoxChunk[3][3][3];
+ //byte[][][] airs = new byte[Chnks.length][Chnks[0].length][Chnks[0][0].length];
+ byte[][][] Voxels;
+ byte[][][] VoxData;
+ byte[][][] SunLight;
+ VoxGen vg;
+ public VoxEn(Vector3 vcam,int xsiz, int ysiz, int zsiz,int type,String name) {
+ //SET STUFFSSSS
+ this.name=name;
+ this.initializeBlock();
+ vg = new VoxGen(this);
+ Voxels = new byte[xsiz][ysiz][zsiz];
+ VoxData = new byte[Voxels.length][Voxels[0].length][Voxels[0][0].length];
+ SunLight = new byte[Voxels.length][Voxels[0].length][Voxels[0][0].length];
+ campos=vcam;
+ //resetCloud(1,4);
+ if(type==1) {
+ resetHills(1,6);
+ //vg.MakePond(xsiz/2, ysiz/2);
+ vg.SpreadTree(0.05f, xsiz/2, ysiz/2, xsiz/4);
+ //vg.MakePond((int)(xsiz*0.1)+(int)(0.8*Math.random()*xsiz), (int)(ysiz*0.1)+(int)(0.8*Math.random()*ysiz));
+ }
+ if(type==2) {
+ resetFlat(5,(byte)3);
+ }
+ //resetChunks(1,4);
+ //getimages
+ //resetHills(1, 4);
+ for(int i = 0;iairs.length-1)
+ xx=airs.length-1;
+ if(xx<0)
+ xx=0;
+ if(yy>airs[0].length-1)
+ yy=airs[0].length-1;
+ if(yy<0)
+ yy=0;
+ if(zz>airs[0][0].length-1)
+ zz=airs[0][0].length-1;
+ if(zz<0)
+ zz=0;*/
+ int b2 = 0;
+ byte bright=127;
+ String side= "none";
+ //float mag = viewdist;
+ Vector3 ve = new Vector3(0,0,-viewdist).rotate(Math.sqrt(x*x+y*y)*fovc,"x").rotate(Math.atan2(y, x), "z");
+ ve = ve.rotate(ry, "y").rotate(rx, "z");
+ float[] findub = new float[7];
+
+
+ //Voxels = null;
+ //Voxels = Chnks[xx][yy][zz].StorChunk;
+ //String[] str = GetSquare(Voxels,Vector3.add(ve, (new Vector3(xx*-16,yy*-16,zz*-16))),Vector3.add(campos, (new Vector3(xx*-16,yy*-16,zz*-16))),false);
+ String[] str = GetSquare(Voxels,ve,campos,false,0,-1);
+ findub[0] = Float.parseFloat(str[0]);
+ findub[1] = Float.parseFloat(str[1]);
+ findub[2] = Float.parseFloat(str[2]);
+ val2= Integer.parseInt(str[4]);
+ side = str[3];
+ //WATER RENDERRRRRRRRRRR
+ if(val2>0&&!blks.get(val2-1).opaque) {
+ //float hite = (float)(0.3+0.2*Math.sin(2*findub[0]+0.03*timer)+0.1*Math.cos(2*findub[1]+0.01*timer));
+ str = GetSquare(Voxels,ve,Vector3.add(campos, new Vector3(0,0,0) ),false,val2,-1);
+ float mag2 = Float.parseFloat(str[5]);
+ str = GetSquare(Voxels,ve,Vector3.add(campos, new Vector3(0,0,0) ),false,0,val2);
+ findub[0] = Float.parseFloat(str[0]);
+ findub[1] = Float.parseFloat(str[1]);
+ findub[2] = Float.parseFloat(str[2]);
+ val2= Integer.parseInt(str[4]);
+ side = str[3];
+
+ if(x==0&&y==0) {
+ sel.x=(int)findub[0];
+ sel.y=(int)findub[1];
+ sel.z=(int)findub[2];
+ seld=side;
+ }
+
+ if(!blks.get(val2-1).opaque&&Float.parseFloat(str[5]) flt :hmm.entrySet()) {
+ //b2-=50;
+ /*xx=(int) flt.getValue().x;
+ yy=(int) flt.getValue().y;
+ zz=(int) flt.getValue().z;*/
+ //blue=(int)flt.getValue().x*50;
+ //green=(int)flt.getValue().y*50;
+ //red=(int)flt.getValue().z*50;
+ //System.out.print((flt.getValue().z+" + "+(flt.getKey())+" "));
+ //}
+ //System.out.println("" +xx +" " + yy+ " " + zz +" s");
+ /*Voxels = null;
+ Voxels = Chnks[xx][yy][zz].StorChunk;
+ String[] str3 = GetSquare(Voxels,Vector3.add(ve, (new Vector3(xx*-16,yy*-16,zz*-16))),Vector3.add(campos, (new Vector3(xx*-16,yy*-16,zz*-16))),false);
+ findub[0] = Float.parseFloat(str3[0]);
+ findub[1] = Float.parseFloat(str3[1]);
+ findub[2] = Float.parseFloat(str3[2]);
+ val2= Integer.parseInt(str3[4]);
+ side = str3[3];*/
+ if(x==0&&y==0) {
+ /*sel.x=(int)findub[0]+16*xx;
+ sel.y=(int)findub[1]+16*yy;
+ sel.z=(int)findub[2]+16*zz;*/
+ sel.x=(int)findub[0];
+ sel.y=(int)findub[1];
+ sel.z=(int)findub[2];
+ seld=side;
+ }}
+ if(side=="none") {
+ blue=255;
+ red=125;
+ green=170;
+ }
+ if(side!="none") {
+ int[] kil = GetColo(side,bright,findub,val2);
+ pix=kil[0];
+ bright =(byte)kil[1];}
+ //if(sel.x==(int)findub[0]+xx*16&&sel.y==(int)findub[1]+yy*16&&sel.z==(int)findub[2]+zz*16) {
+ if(sel.x==(int)findub[0]&&sel.y==(int)findub[1]&&sel.z==(int)findub[2]) {
+ if(breaktime!=0) {
+ int[][] tdata = crunch.imagedat[(8-(int)breaktime)%8];
+ int dod=0;
+ if(side == "x1"||side == "x2")
+ dod = tdata[(int)(tdata.length*(findub[1]%1))][(int)(tdata[0].length*(findub[2]%1))];
+ if(side == "y1"||side == "y2")
+ dod = tdata[(int)(tdata.length*(findub[0]%1))][(int)(tdata[0].length*(findub[2]%1))];
+ if(side == "z1"||side == "z2")
+ dod = tdata[(int)(tdata.length*(findub[0]%1))][(int)(tdata[0].length*(findub[1]%1))];
+
+ if (dod!=0){
+ //System.out.print(dod+" ");
+ pix = dod;
+ }
+
+ }
+ if(seld == side) {
+ int[][] tdata = selecc.imagedat[0];
+ int dod=0;
+ if(seld == "x1"||seld == "x2")
+ dod = tdata[(int)(tdata.length*(findub[1]%1))][(int)(tdata[0].length*(findub[2]%1))];
+ if(seld == "y1"||seld == "y2")
+ dod = tdata[(int)(tdata.length*(findub[0]%1))][(int)(tdata[0].length*(findub[2]%1))];
+ if(seld == "z1"||seld == "z2")
+ dod = tdata[(int)(tdata.length*(findub[0]%1))][(int)(tdata[0].length*(findub[1]%1))];
+
+ if (dod!=0){
+ //System.out.print(dod+" ");
+ pix = dod;
+ }
+ }
+ }
+ if (pix==0) {
+ pix = (red << 16) | (green << 8) | blue;
+ }
+ bright +=b2;
+ red = (pix >> 16) & 0xFF;
+ green = (pix >> 8) & 0xFF;
+ blue = pix & 0xFF;
+ red = red*(bright+127)/256;
+ green = green*(bright+127)/256;
+ blue = blue*(bright+127)/256;
+ if(tint!=0) {
+ red= (int)(red*(1-tintamount) + ((tint>> 16) & 0xFF)*tintamount);
+ green= (int)(green*(1-tintamount) + ((tint>> 9) & 0xFF)*tintamount);
+ blue= (int)(blue*(1-tintamount) + (tint & 0xFF)*tintamount);
+ }
+ pix = (red << 16) | (green << 8) | blue;
+ return pix;
+ }
+ public int[] GetColo(String side,byte bright, float[] findub, int val2) {
+ float xxd=0;
+ float yyd=0;
+ int ssd=0;
+ if(side=="x1") {
+ bright=87;
+ ssd=4;
+ xxd=findub[1];
+ yyd=findub[2];
+ }
+ if(side=="x2") {
+ bright=87;
+ ssd=5;
+ xxd=findub[1];
+ yyd=findub[2];
+ }
+ if(side=="y1") {
+ bright=107;
+ ssd=2;
+ xxd=findub[0];
+ yyd=findub[2];
+ }
+ if(side=="y2") {
+ bright=107;
+ ssd=3;
+ xxd=findub[0];
+ yyd=findub[2];
+ }
+ if(side=="z1") {
+ bright=127;
+ ssd=0;
+ xxd=findub[0];
+ yyd=findub[1];
+ }
+ if(side=="z2") {
+ bright=127;
+ ssd=1;
+ xxd=findub[0];
+ yyd=findub[1];
+ }
+ if(side!="none") {
+ int[][] tdata=null;
+ if(true) {
+ tdata = imgas[blks.get(val2-1).image[ssd]].imagedat[0];
+ }/*else{
+ tdata = imgas[blkrndr[val2-1][ssd]].imagedat[(timer/blkrndr[val2-1][6])%imgas[blkrndr[val2-1][ssd]].imagedat.length];
+ }*/
+ int[] kil = new int[2];
+ kil[0]=tdata[(int)(tdata.length*(xxd%1))][(int)Math.ceil(tdata[0].length*(1-yyd%1))-1];
+ kil[1]=bright;
+ return kil;
+ }
+ return null;
+ }
+ public String[] GetSquare(byte[][][] Box, Vector3 ve,Vector3 campos,boolean sethm, int medium,int isolated) {
+ HashMap ht = new HashMap();
+ byte[][][] Voxels = Box;
+ int zlen = Voxels[0][0].length;
+ int ylen = Voxels[0].length;
+ int xlen = Voxels.length;
+ float mag = 3000;
+ float[] findub = new float[7];
+ int val;
+ int val2=0;
+ int zstrt = (int)campos.z;
+ String side="none";
+ if(zstrt < 0) {
+ zstrt=0;
+ }
+ for(int z = zstrt;z0)) {
+ float[] doi =Vector3.intersection(v3, Vector3.add(v3, ve), "z");
+ if(0tmpmag) {
+ findub = doi;
+ findub[2]=z;
+ side = "z1";
+ val2=val;
+ if(sethm) {
+ Vector3 v4=new Vector3((int)findub[0],(int)findub[1],(int)findub[2]);
+ if(!ht.containsValue(v4))
+ ht.put(tmpmag, v4);
+ }else {
+ z=zlen;
+ mag=tmpmag;
+ }
+ }
+ }
+ }
+
+ }
+ }
+ zstrt = (int)campos.z;
+ if(zstrt > zlen) {
+ zstrt=zlen;
+ }
+
+ for(int z = zstrt-1;z>=0&&zstrt-z0&&Vector3.add(v3, ve).z<0)) {
+ float[] doi =Vector3.intersection(v3, Vector3.add(v3, ve), "z");
+ if(0tmpmag) {
+ findub = doi;
+ findub[2]=z;
+ side = "z2";
+ val2=val;
+ if(sethm) {
+ Vector3 v4=new Vector3((int)findub[0],(int)findub[1],(int)findub[2]);
+ if(!ht.containsValue(v4))
+ ht.put(tmpmag, v4);
+ }else {
+ z=-1;
+ mag=tmpmag;
+ }
+ }
+
+ }
+ }
+
+ }
+ }
+ zstrt = (int)campos.y;
+ if(zstrt <0) {
+ zstrt=0;
+ }
+ for(int yy = zstrt;yy0)) {
+ float[] doi =Vector3.intersection(v3, Vector3.add(v3, ve), "y");
+ if(0tmpmag) {
+ findub = doi;
+ findub[1]=yy;
+ side = "y1";
+ val2=val;
+ if(sethm) {
+ Vector3 v4=new Vector3((int)findub[0],(int)findub[1],(int)findub[2]);
+ if(!ht.containsValue(v4))
+ ht.put(tmpmag, v4);
+ }else {
+ yy=ylen;
+ mag=tmpmag;
+ }
+ }
+ }
+ }
+ }
+ }
+ zstrt = (int)campos.y;
+ if(zstrt > ylen) {
+ zstrt=ylen;
+ }
+ for(int yy = zstrt-1;yy>=0;yy--) {
+ Vector3 v3 = Vector3.add(campos, new Vector3(0,-1-yy,0));
+ if((v3.y>0&&Vector3.add(v3, ve).y<0)) {
+ float[] doi =Vector3.intersection(v3, Vector3.add(v3, ve), "y");
+ if(0tmpmag) {
+ findub = doi;
+ findub[1]=yy;
+ side = "y2";
+ val2=val;
+ if(sethm) {
+ Vector3 v4=new Vector3((int)findub[0],(int)findub[1],(int)findub[2]);
+ if(!ht.containsValue(v4))
+ ht.put(tmpmag, v4);
+ }else {
+ yy=-1;
+ mag=tmpmag;
+ }
+ }
+ }
+ }
+ }
+ }
+ zstrt = (int)campos.x;
+ if(zstrt <0) {
+ zstrt=0;
+ }
+ for(int xx = zstrt;xx0)) {
+ float[] doi =Vector3.intersection(v3, Vector3.add(v3, ve), "x");
+ if(0tmpmag) {
+ findub = doi;
+ findub[0]=xx;
+ side = "x1";
+ val2=val;
+ if(sethm) {
+ Vector3 v4=new Vector3((int)findub[0],(int)findub[1],(int)findub[2]);
+ if(!ht.containsValue(v4))
+ ht.put(tmpmag, v4);
+ }else {
+ xx=xlen;
+ mag=tmpmag;
+ }
+ }
+ }
+ }
+ }
+ }
+ zstrt = (int)campos.x;
+ if(zstrt > xlen) {
+ zstrt=xlen;
+ }
+ for(int xx = zstrt-1;xx>=0;xx--) {
+ Vector3 v3 = Vector3.add(campos, new Vector3(-1-xx,0,0));
+ if((v3.x>0&&Vector3.add(v3, ve).x<0)) {
+ float[] doi =Vector3.intersection(v3, Vector3.add(v3, ve), "x");
+ if(0tmpmag) {
+ findub = doi;
+ findub[0]=xx;
+ side = "x2";
+ val2=val;
+ if(sethm) {
+ Vector3 v4=new Vector3((int)findub[0],(int)findub[1],(int)findub[2]);
+ if(!ht.containsValue(v4))
+ ht.put(tmpmag, v4);
+ }else {
+ xx=-1;
+ mag=tmpmag;
+ }
+ }
+ }
+ }
+ }
+ }
+ String[] bob = {""+findub[0],""+findub[1],""+findub[2],side,""+val2,""+mag};
+ if(sethm) {
+ hmm=ht;
+ }
+ return bob;
+ }
+
+ public void RotateCam(float dx, float dy) {
+ rx +=dx;
+ ry +=dy;
+ }
+ public void SetCam(float dx, float dy) {
+ rx =dx;
+ ry =dy;
+ }
+ public boolean MoveCam(Vector3 v3) {
+ if(!insid(Vector3.add(campos, v3), collid)) {
+ campos=Vector3.add(campos, v3);
+ return true;
+ }else {
+ return false;
+ }
+
+
+ }
+
+ public boolean insid(Vector3 cam, Vector3[] collides) {
+ boolean ins = false;
+ for(int i=0;i0) {
+ ins = true;
+ }
+ }
+ return ins;
+ }
+ public void SetMouse(int xx,int yy) {
+ mx = xx;
+ my = yy;
+ }
+ public void MouseCam() {
+ try {
+ //GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
+ Robot r = new Robot();
+ //Robot s = new Robot();
+ rx+=(mx-MouseInfo.getPointerInfo().getLocation().x)*-0.01;
+ ry+=(my-MouseInfo.getPointerInfo().getLocation().y)*0.01;
+ if(ry<0) {
+ ry = 0;
+ }
+ if(ry>Math.PI) {
+ ry = (float) Math.PI;
+ }
+ r.mouseMove(mx, my);
+ } catch (AWTException e) {
+ e.printStackTrace();
+ }
+ }
+ public byte GetSelecID() {
+ return Voxels[(int)sel.x][(int)sel.y][(int)sel.z];
+ }
+ public byte Inside(Vector3 v3) {
+ /*if(0 names = blks;
+ for(int i=0;i0) {
+ SoundEngine.handle("block_place");
+ Voxels[(int)v3.x][(int)v3.y][(int)v3.z] = (byte)block;
+ inventory[block-1]--;
+ }
+ }else {
+ SoundEngine.handle("block_place");
+ Voxels[(int)v3.x][(int)v3.y][(int)v3.z] = (byte)block;
+ }
+ //Chnks[(int)v3.x/16][(int)v3.y/16][(int)v3.z/16].StorChunk[(int)v3.x%16][(int)v3.y%16][(int)v3.z%16] = (byte)block;
+ }
+ }
+ }catch(ArrayIndexOutOfBoundsException e) {
+
+ }
+ }
+ public void resetCloud(float weight, int count){
+
+
+ byte[][][] tmp = new byte[Voxels.length][Voxels[0].length][Voxels[0][0].length];
+ for(int x = 0; x < Voxels.length; x++) {
+ for(int y = 0; y < Voxels[0].length; y++) {
+ for(int z = 0; z < Voxels[0][0].length; z++) {
+ Voxels[x][y][z]=(byte) (Math.random()*256-128);
+ }
+ }
+ //System.out.println("Done with plane "+x);
+ }
+ for(int i = 0; i< count; i++) {
+ for(int x = 1; x < Voxels.length-1; x++) {
+ for(int y = 1; y < Voxels[0].length-1; y++) {
+ for(int z = 1; z < Voxels[0][0].length-1; z++) {
+ int sum = 0;
+ sum+=Voxels[x+1][y][z];
+ sum+=Voxels[x-1][y][z];
+ sum+=Voxels[x][y+1][z];
+ sum+=Voxels[x][y-1][z];
+ sum+=Voxels[x][y][z+1];
+ sum+=Voxels[x][y][z-1];
+ tmp[x][y][z]=(byte) (Voxels[x][y][z]*(1-(weight*6/7))+(sum*weight/7));
+ }
+ }
+ //System.out.println("Done avging plane "+x);
+ }
+ for(int x = 1; x < Voxels.length-1; x++) {
+ for(int y = 1; y < Voxels[0].length-1; y++) {
+ for(int z = 1; z < Voxels[0][0].length-1; z++) {
+ Voxels[x][y][z]=tmp[x][y][z];
+ }
+ }
+ }
+ }
+ for(int x = 0; x < Voxels.length; x++) {
+ for(int y = 0; y < Voxels[0].length; y++) {
+ for(int z = 0; z < Voxels[0][0].length; z++) {
+ if(Voxels[x][y][z]>density) {
+ Voxels[x][y][z]=(byte) (Math.random()*5+1);
+ }else {
+ Voxels[x][y][z]=0;
+ }
+ }
+ }
+ //System.out.println("Done with plane "+x);
+ }
+ //Voxels= tmp;
+ System.out.println("Done With Cloud");
+ }
+ /*public void resetChunks(int a, int b) {
+ for(int x = 0; x < Chnks.length; x++) {
+ for(int y = 0; y < Chnks[0].length; y++) {
+ for(int z = 0; z < Chnks[0][0].length; z++) {
+ Chnks[x][y][z] = new VoxChunk(new byte[16][16][16]);
+ for(int xx = 0; xx < 16; xx++) {
+ for(int yy = 0; yy < 16; yy++) {
+ for(int zz = 0; zz < 16; zz++) {
+ Chnks[x][y][z].StorChunk[xx][yy][zz] = (byte) (Math.random()*5);
+ }
+ }
+ }
+ Chnks[x][y][z].Setisair(true);
+ }
+ }
+ }
+ }*/
+public void resetHills(float weight, int count){
+
+
+ byte[][] tmp = new byte[Voxels.length+4][Voxels[0].length+4];
+ byte[][] tmp2 = new byte[tmp.length][tmp[0].length];
+ for(int x = 0; x < tmp.length; x++) {
+ for(int y = 0; y < tmp[0].length; y++) {
+ tmp[x][y]=(byte) (Math.random()*256-128);
+ }
+ //System.out.println("Done with plane "+x);
+ }
+ for(int i = 0; i< count; i++) {
+ for(int x = 1; x < tmp.length-1; x++) {
+ for(int y = 1; y < tmp[0].length-1; y++) {
+ int sum = 0;
+ sum+=tmp[x+1][y];
+ sum+=tmp[x-1][y];
+ sum+=tmp[x][y+1];
+ sum+=tmp[x][y-1];
+ tmp2[x][y]=(byte) (tmp[x][y]*(1-(weight*6/7))+(sum*weight/7));
+ }
+ //System.out.println("Done avging plane "+x);
+ }
+ for(int x = 1; x < tmp.length-1; x++) {
+ for(int y = 1; y < tmp[0].length-1; y++) {
+ tmp[x][y]=tmp2[x][y];
+ }
+ }
+ }
+ for(int x = 0; x < Voxels.length; x++) {
+ for(int y = 0; y < Voxels[0].length; y++) {
+ int height = tmp[x+2][y+2]*2+20;
+ if(height >= Voxels[0][0].length)
+ height= Voxels[0][0].length-1;
+ if(height <0)
+ height=0;
+ for(int z = 0; z < Voxels[0][0].length; z++) {
+ if(z4) {
+ if(tree[t/25][(t/5)%5][t%5]==6)
+ v.Voxels[x-2+t%5][y-2+(t/5)%5][i+h+t/25]=5;
+ if(tree[t/25][(t/5)%5][t%5]==5)
+ v.Voxels[x-2+t%5][y-2+(t/5)%5][i+h+t/25]=4;
+ if(tree[t/25][(t/5)%5][t%5]==7)
+ if(Math.random()>0.5)
+ v.Voxels[x-2+t%5][y-2+(t/5)%5][i+h+t/25]=5;
+ }
+ }
+ }
+ }
+ }catch(ArrayIndexOutOfBoundsException e) {
+ //System.out.print("yolo");
+ }
+ }
+ public void SpreadTree(float density, int x, int y, int s) {
+ for(int i=0; i < s*s*2*2;i++) {
+ if(Math.random()0) {
+ int[] data2 = env.imgas[env.blks.get(env.hotbar[i]-1).image[1]].rawdat[0];
+ int len = env.imgas[env.blks.get(env.hotbar[i]-1).image[1]].imagedat[0].length;
+ BufferedImage image2 = new BufferedImage(len, len, BufferedImage.TYPE_INT_RGB);
+ image2.setRGB(0, 0, len, len, data2, 0, len);
+ if(env.selected == i) {
+ g.drawImage(image2, i*height, y, height, height, this);
+ } else {
+ g.drawImage(image2, i*height+border, y+border, height-2*border, height-2*border, this);
+ }
+ }
+ }
+ }
+
+
+ //CREATES THE IMAGE USING EACH OF THE PIXELS:::
+ public BufferedImage RendImage() {
+ int width = getSize().width/res;
+ int height = (getSize().height-getSize().width/9)/res;
+ int[] data = new int [width*height];
+ int i = 0;
+
+ for (int y = 0; y list = new ArrayList();
+ Matcher m = Pattern.compile("([^\"]\\S*|\".+?\")\\s*").matcher(str);
+ while (m.find())
+ list.add(m.group(1));
+
+ return list.toArray(new String[list.size()]).length-1;
+ }
+
+
+ public boolean updateMouse = true;
+ int cc=0;
+ KeyListener tbl = new KeyListener() {
+ @Override
+ public void keyPressed(KeyEvent arg0) {
+ boolean rel = arg0.getKeyChar()=='\n';
+ if(rel) {
+ command();
+ cc = MineCommands.commands.size()-1;
+ }
+
+ if(arg0.getKeyCode()==9&&textBar.getText().contains("/setblock ")) {//Tab needs to fill
+ int spaces = countSpaces(textBar.getText());
+ String cur = textBar.getText();
+ if(spaces==0) {
+ textBar.setText(cur+(int)ven.sel.x+"");
+ }
+ if(spaces==1) {
+ textBar.setText(cur+(int)ven.sel.z+"");
+ }
+ if(spaces==2) {
+ textBar.setText(cur+(int)ven.sel.y+"");
+ }
+ }
+ if(arg0.getKeyCode()==9&&(textBar.getText().contains("/fill ")||textBar.getText().contains("/fill-replace "))) {//Tab needs to fill
+ int spaces = countSpaces(textBar.getText());
+ String cur = textBar.getText();
+ if(spaces==0) {
+ textBar.setText(cur+(int)ven.sel.x+"");
+ }
+ if(spaces==1) {
+ textBar.setText(cur+(int)ven.sel.z+"");
+ }
+ if(spaces==2) {
+ textBar.setText(cur+(int)ven.sel.y+"");
+ }
+ if(spaces==3) {
+ textBar.setText(cur+(int)ven.sel.x+"");
+ }
+ if(spaces==4) {
+ textBar.setText(cur+(int)ven.sel.z+"");
+ }
+ if(spaces==5) {
+ textBar.setText(cur+(int)ven.sel.y+"");
+ }
+ }else if(arg0.getKeyCode()==9) {//Tab again
+ textBar.setText(autoFill(textBar.getText()));
+ }
+
+ if(arg0.getKeyCode()==KeyEvent.VK_UP) {
+ int lastc = cc;
+ try {
+ textBar.setText(MineCommands.getCommand(cc));
+ cc--;
+ }catch(Exception e) {
+ cc = lastc;
+ }
+
+ }else if(arg0.getKeyCode()==KeyEvent.VK_DOWN) {
+ int lastc = cc;
+ try {
+ cc++;
+ textBar.setText(MineCommands.getCommand(cc));
+ }catch(Exception e) {
+ cc = lastc;
+ }
+ }
+
+
+ if(arg0.getKeyCode()==27) {//Escape
+ textBar.setText("");
+ command();
+ }
+ //textBar.setText(textBar.getText()+arg0.getKeyChar());
+ textBar.repaint();
+ textBar.revalidate();
+
+ }
+
+ @Override
+ public void keyReleased(KeyEvent arg0) {
+
+
+ }
+
+ @Override
+ public void keyTyped(KeyEvent arg0) {
+
+
+ }
+
+ };
+ boolean stats = false;
+ public boolean forceupdate = true;
+ /**
+ *
+ */
+ protected void timerCode() {
+ //ven.campos.print();
+
+ //System.out.println(this.getParent().getParent().getParent().getParent());
+ try {
+ ven.mx =vp.getWidth()/2+this.getTopLevelAncestor().getLocation().x;
+ ven.my =vp.getHeight()/2+this.getTopLevelAncestor().getLocation().y;
+ }catch(java.lang.NullPointerException exc) {
+
+ }
+ inv.setBounds(30, 30, this.getWidth()-60, this.getHeight()-60);
+
+ if(key.Output()[17]==1) {//Sprint
+ spd=0.24f;
+ }else {
+ spd=0.12f;
+ }
+
+ if(this.isDeveloperMode()) {
+ if(key.Output()[KeyEvent.VK_UP]==1) {
+ Minecraft.renderVal++;
+ System.out.println(Minecraft.renderVal);
+ }
+ if(key.Output()[KeyEvent.VK_DOWN]==1) {
+ Minecraft.renderVal--;
+ System.out.println(Minecraft.renderVal);
+ }
+ if(key.Output()[73]==1) {//I
+ this.getVen().fovc+=.001f;
+ System.out.println(this.getVen().fovc);
+ }
+ if(key.Output()[79]==1) {//O
+ this.getVen().fovc-=.001f;
+ System.out.println(this.getVen().fovc);
+ }
+ }
+ if(key.Output()[84]==1) {//T PUshed
+ this.textBar.setFocusTraversalKeysEnabled(false);
+ this.updateMouse=false;
+ this.textBar.setVisible(true);
+ textBar.requestFocusInWindow();
+ this.forceupdate=false;
+ //this.setCursor(Cursor.getDefaultCursor());
+ this.removeKeyListener(key);
+ textBar.removeKeyListener(tbl);
+ textBar.addKeyListener(tbl);
+ this.repaint();
+ this.revalidate();
+ key.Output()[84]=0;
+
+
+ }
+ if(key.Output()[47]==1) {// / PUshed
+ this.textBar.setFocusTraversalKeysEnabled(false);
+ this.updateMouse=false;
+ this.textBar.setVisible(true);
+ textBar.requestFocusInWindow();
+ this.forceupdate=false;
+ //this.setCursor(Cursor.getDefaultCursor());
+ this.removeKeyListener(key);
+ textBar.removeKeyListener(tbl);
+ textBar.addKeyListener(tbl);
+ //System.out.println("true");
+ textBar.setText("/");
+ this.repaint();
+ this.revalidate();
+ key.Output()[47]=0;
+
+
+ }
+ if(key.Output()[114]==1) {
+ stats=!stats;
+ key.Output()[114]=0;
+ }
+
+ if(stats) {
+ String cordText = "X:"+(int)ven.campos.x+"Y:"+(int)ven.campos.z+"Z:"+(int)ven.campos.y;
+ String lookingText = "Looking At: X:"+(int)ven.sel.x+"Y:"+(int)ven.sel.z+"Z:"+(int)ven.sel.y;
+ coord.setFont(new Font("Century Gothic", Font.PLAIN, textBar.getHeight()-40));
+ lookingat.setFont(coord.getFont());
+ coord.setForeground(Color.WHITE);
+ lookingat.setForeground(coord.getForeground());
+ coord.setText(cordText);
+ coord.setSize(coord.getPreferredSize());
+ coord.setLocation(0, 0);
+ lookingat.setText(lookingText);
+ lookingat.setSize(lookingat.getPreferredSize());
+ lookingat.setLocation(0, coord.getHeight());
+ }else {
+ coord.setText(null);
+ lookingat.setText(null);
+ }
+
+
+ vp.setSize(this.getWidth(), this.getHeight());
+ if(this.forceupdate==true) {
+ //System.out.println("Request");
+ this.requestFocusInWindow();
+ }
+ this.repaint();
+ if(einv==0) {
+ if(key.Output()[27]==1) {//Esc
+ timer.stop();
+ escMenu();
+ }
+ if (mode==0){
+ Walk();
+ }else {
+ if (flymode==0) {
+ Move();
+ }
+ if(flymode==1) {
+ Walk();
+ }
+ if(key.Output()[32]==1&&flytime==0) {
+ flytime=1;
+ }
+ if(key.Output()[32]==0&&flytime>0) {
+ flytime++;
+ }
+ if(key.Output()[32]==1&&flytime>1) {
+ flymode=(flymode+1)%2;
+ flytime=-1;
+ }
+ if(flytime>10) {
+ flytime=-1;
+ }
+ if(flytime==-1&&key.Output()[32]==0) {
+ flytime=0;
+ }
+
+ }
+
+ if(key.Output()[27]==1) {
+ escape=1;
+ }
+ if(mousedown&&buildref==0) {
+ ven.breaktime=8;
+ //ven.setBlock(0);
+ buildref =2;
+ }
+ if(!mousedown) {
+ ven.breaktime=0;
+ }
+ if(rmousedown&&buildref==0) {
+ if(mode==0) {
+ ven.setBlockOut(ven.hotbar[ven.selected],true);
+ }else {
+ ven.setBlockOut(ven.hotbar[ven.selected],false);
+
+ }
+ buildref =2;
+ }
+ if(mode==0) {
+ if(ven.breaktime>0&&ven.getBlock(ven.GetSelecID()-1)!=null) {
+ int time = (ven.getBlock(ven.GetSelecID()-1).getBreakTime());
+ for(int i=0;i<2;i++) {
+ try {
+ Thread.sleep(time/2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ SoundEngine.handle("block_break");
+
+ }
+ ven.breaktime-=3.9f/time;
+
+
+
+ }
+ if(ven.breaktime<0) {
+ ven.breaktime=0;
+ ven.setBlock(0,true);
+ }
+ }else {
+ if(ven.breaktime==8)
+ ven.setBlock(0,false);
+ ven.breaktime=0;
+ }
+ if(mouseswoosh!=0) {
+ ven.selected+=mouseswoosh;
+ if(ven.selected<0)
+ ven.selected = 8;
+ inv.getHotbar().setSelectedIndex(ven.selected);
+ if(ven.selected>8)
+ ven.selected = 0;
+ inv.getHotbar().setSelectedIndex(ven.selected);
+ mouseswoosh = 0;
+ }
+
+
+ if(buildref>0&&ven.breaktime==0)
+ buildref--;
+
+ if(key.Output()[69]==1) {
+ einv=1;
+ inv.setVisible(true);
+ this.setCursor(Cursor.getDefaultCursor());
+ }
+ }else {
+
+ if(einv ==1 && key.Output()[69]==0) {
+ einv=2;
+ }
+ if(einv ==2 && key.Output()[69]==1) {
+ einv=3;
+ }
+ if(einv ==3 && (key.Output()[69]==0||key.Output()[27]==1)) {
+ this.setCursor(Minecraft.getBlankCurosr());
+ einv=0;
+ inv.setVisible(false);
+ }
+ }
+
+ }
+ /**
+ * @param text
+ * @return
+ */
+ protected String autoFill(String text) {
+
+ if(countSpaces(text)<=0) {
+ if(StringUtil.containsIgnoreCase(text, "/so")) {
+ return "/soundengine";
+ }
+ if(StringUtil.containsIgnoreCase(text, "/setb")) {
+ return "/setblock";
+ }
+ if(StringUtil.containsIgnoreCase(text, "/fill")) {
+ return "/fill-replace";
+ }
+ if(StringUtil.containsIgnoreCase(text, "/f")) {
+ return "/fill";
+ }
+ if(StringUtil.containsIgnoreCase(text, "/h")) {
+ return "/help";
+ }
+ if(StringUtil.containsIgnoreCase(text, "/g")) {
+ return "/gamemode";
+ }
+
+ }else if(countSpaces(text)==1) {
+ if(StringUtil.containsIgnoreCase(text, "/soundengine p")) {
+ return "/soundengine play";
+ }
+ if(StringUtil.containsIgnoreCase(text, "/soundengine s")) {
+ return "/soundengine stopall";
+ }
+ if(StringUtil.containsIgnoreCase(text, "/soundengine on")) {
+ return "/soundengine off";
+ }
+ if(StringUtil.containsIgnoreCase(text, "/soundengine off")) {
+ return "/soundengine on";
+ }
+ if(StringUtil.containsIgnoreCase(text, "/soundengine o")) {
+ return "/soundengine on";
+ }
+ if(StringUtil.containsIgnoreCase(text, "/help ")) {
+ String add = autoFill(text.replace("/help ", "/"));
+ return "/help " + add.substring(1, add.length());
+ }
+ }
+
+
+
+ return text;
+ }
+ /**
+ *
+ */
+ protected void command() {
+ //this.removeKeyListener(tbl);
+ String command = textBar.getText();
+ if(command.equals("")||command.equals(" ")) {
+ command=null;
+ }
+ if(command!=null) {
+ MineCommands.HandleCommand(command);
+ }
+ this.textBar.setText("");
+ this.setCursor(Minecraft.getBlankCurosr());
+ this.updateMouse=true;
+ this.forceupdate=true;
+ this.textBar.setVisible(false);
+ this.requestFocus();
+ key = new KeyList();
+ this.addKeyListener(key);
+
+ }
+ /**
+ *
+ */
+ protected void escMenu() {
+ timer.stop();
+ Minecraft.quickMenu();
+
+
+
+ }
+ public void Move() {
+ spd=0.5f;
+ vel.z =1;
+ if(Minecraft.cf.isFocused()&&this.updateMouse==true) {//I
+ //oldMove();
+ ven.MouseCam();
+ if(key.Output()[87]==1)
+ vel.x+=spd;
+ if(key.Output()[83]==1)
+ vel.x-=spd;
+ if(key.Output()[68]==1)
+ vel.y+=spd;
+ if(key.Output()[65]==1)
+ vel.y-=spd;
+ if(key.Output()[32]==1)
+ ven.MoveCam(Vector3.upward(spd));
+ if(key.Output()[16]==1)
+ ven.MoveCam(Vector3.downward(spd));
+ ven.MoveCam(new Vector3(vel.rotate(ven.rx, "z").x,0,0));
+ ven.MoveCam(new Vector3(0,vel.rotate(ven.rx, "z").y,0));
+ //ven.MoveCam(new Vector3(0,0,vel.rotate(ven.rx, "z").z));
+
+ vel.z *=0.9f;
+ vel.x *=0.5f;
+ vel.y *=0.5f;
+ if(this.getVen().campos.z<-50) {
+ exceededWorldBounds();
+ }
+ //this.getVen().campos.print();
+ }else if(!Minecraft.cf.isFocused()){
+ this.escMenu();
+ }
+
+ }
+ /**
+ *
+ */
+ protected void oldMove() {
+ ven.MouseCam();
+ if(key.Output()[87]==1)
+ ven.MoveCam(Vector3.foreward(spd).rotate(ven.rx, "z"));
+ if(key.Output()[83]==1)
+ ven.MoveCam(Vector3.backward(spd).rotate(ven.rx, "z"));
+ if(key.Output()[68]==1)
+ ven.MoveCam(Vector3.rightward(spd).rotate(ven.rx, "z"));
+ if(key.Output()[65]==1)
+ ven.MoveCam(Vector3.leftward(spd).rotate(ven.rx, "z"));
+ if(key.Output()[32]==1)
+ ven.MoveCam(Vector3.upward(spd));
+ if(key.Output()[16]==1)
+ ven.MoveCam(Vector3.downward(spd));
+
+ }
+ public void Walk() {
+ if(Minecraft.cf.isFocused()&&this.updateMouse==true) {
+ ven.MouseCam();
+ if(key.Output()[87]==1)
+ vel.x+=spd;
+ if(key.Output()[83]==1)
+ vel.x-=spd;
+ if(key.Output()[68]==1)
+ vel.y+=spd;
+ if(key.Output()[65]==1)
+ vel.y-=spd;
+ ven.MoveCam(new Vector3(vel.rotate(ven.rx, "z").x,0,0));
+ ven.MoveCam(new Vector3(0,vel.rotate(ven.rx, "z").y,0));
+ if(ven.MoveCam(new Vector3(0,0,vel.z))) {
+ vel.z-=0.3;
+ }else {
+ vel.z=-0.1f;
+
+ if(key.Output()[32]==1)
+ vel.z=0.8f;
+ }
+ vel.z *=0.9f;
+ vel.x *=0.5f;
+ vel.y *=0.5f;
+ if(this.getVen().campos.z<-50) {
+ exceededWorldBounds();
+ }
+ //if(key.Output()[32]==1)
+ //ven.MoveCam(Vector3.upward(spd));
+ //if(key.Output()[16]==1)
+ //ven.MoveCam(Vector3.downward(spd));
+ }else if(!Minecraft.cf.isFocused()){
+ this.escMenu();
+ }
+
+ }
+ /**
+ *
+ */
+ private void exceededWorldBounds() {
+ System.out.println("Dead Dude!");
+ this.getVen().campos = new Vector3(50,50,150);
+
+
+ }
+
+ public static final int Creative=1;
+ public static final int Survival=0;
+ /** Change mode
+ *
+ * */
+ public void changeMode(int mode) {
+ this.mode=mode;
+ this.remove(inv);
+ //System.out.println("Changed Modes");
+ if(mode==VoxelCt.Creative) {// Creative
+ inv= new Inventory(ven);
+ SoundEngine.stop(SoundEngine.allEngines);
+ SoundEngine.start(SoundEngine.title);
+ }else {
+ SoundEngine.stop(SoundEngine.allEngines);
+ SoundEngine.start(SoundEngine.game);
+ inv= new Inventory(ven,1);
+ }
+ //inv.setLm(lm);
+ //inv.setHb(hb);
+ //inv.setHotbar(hotbar);
+ inv.getHotbar().setSelectedIndex(ven.selected);
+ inv.setBounds(30, 30, this.getWidth()-60, this.getHeight()-60);
+ inv.setVisible(false);
+ this.add(inv,0);
+ }
+
+
+ /**
+ * @return the crosshair
+ */
+ public JLabel getCrosshair() {
+ return crosshair;
+ }
+ /**
+ * @param crosshair the crosshair to set
+ */
+ public void setCrosshair(JLabel crosshair) {
+ this.crosshair = crosshair;
+ }
+ /**
+ * @return the textBar
+ */
+ public JTextField getTextBar() {
+ return textBar;
+ }
+ /**
+ * @param textBar the textBar to set
+ */
+ public void setTextBar(JTextField textBar) {
+ this.textBar = textBar;
+ }
+ /**
+ * @return the display
+ */
+ public JTextArea getDisplay() {
+ return display;
+ }
+ /**
+ * @param display the display to set
+ */
+ public void setDisplay(JTextArea display) {
+ this.display = display;
+ }
+ /**
+ * @return the developerMode
+ */
+ public boolean isDeveloperMode() {
+ return developerMode;
+ }
+ /**
+ * @param developerMode the developerMode to set
+ */
+ public void setDeveloperMode(boolean developerMode) {
+ this.developerMode = developerMode;
+ }
+}
diff --git a/source/VoxelCraft/src/mplayer/AddSong.java b/source/VoxelCraft/src/mplayer/AddSong.java
new file mode 100644
index 0000000..3dd8b26
--- /dev/null
+++ b/source/VoxelCraft/src/mplayer/AddSong.java
@@ -0,0 +1,46 @@
+/**
+ *
+ */
+package mplayer;
+
+import dunemask.util.FileUtil;
+
+/**
+ * @author Dunemask
+ *
+ */
+public class AddSong {
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) {
+ String rel = write(true);
+ load(rel);
+ }
+
+ /**
+ * @param rel
+ *
+ */
+ private static void load(String rel) {
+ Sound s = SoundHandler.loadSong(rel);
+ //PlaySound.playSound(s);
+ }
+
+ /**
+ * @return
+ *
+ */
+ private static String write(boolean write) {
+ if(write) {
+ String uid="126742";
+ String path = "resources/sounds/etc/block_break.mp3";
+ Sound s = new Sound(uid, FileUtil.getResource(path), "block_Break","Minecraft","Dunemask", "/etc/block_break.mp3");
+ SoundHandler.editXML(s, "/etc/block_break/");
+ }
+ return "/etc/block_break/";
+
+ }
+
+}
diff --git a/source/VoxelCraft/src/mplayer/PlaySound.java b/source/VoxelCraft/src/mplayer/PlaySound.java
new file mode 100644
index 0000000..f9fa16a
--- /dev/null
+++ b/source/VoxelCraft/src/mplayer/PlaySound.java
@@ -0,0 +1,198 @@
+package mplayer;
+
+import java.io.File;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+import dunemask.objects.DMediaPlayer;
+import dunemask.util.FileUtil;
+import javafx.scene.media.Media;
+import javafx.scene.media.MediaPlayer;
+import mc.ResourceHandler;
+
+public class PlaySound {
+ private static boolean init = false;
+ public static boolean overlapSongs = false;
+ /**0.0-1.0
+ * */
+ public static double vol=1;
+ /** Plays a sound and doesn't blow up playing sounds
+ * @param sound Sound
+ *
+ * */
+ public static MediaPlayer playOverSound(Sound sound) {
+ init();
+ try {
+ String rp = sound.getSoundsRelPath();
+ if(String.valueOf(rp.charAt(0)).equals("/")) {
+ rp = rp.replaceFirst("/", "");
+ }
+ if(rp.endsWith("/")) {
+ rp = rp.substring(0, rp.length()-1);
+
+ }
+ String sp = ResourceHandler.soundmap.pullValue("Sounds/relpath");
+ URL url = null;
+ if(sp!=null) {
+ url = FileUtil.getResourceURL(sp+rp);
+ }else {
+ url = FileUtil.getResourceURL("resources/sounds/"+rp);
+ }
+ if(!new File(url.getPath()).exists()) {
+ url = FileUtil.getResourceURL("resources/sounds/"+rp);
+ }
+
+
+
+ URI ur = new URI(url.toString().replace(" ", "%20"));
+ Media m = new Media(ur.toString());
+ MediaPlayer mp = new MediaPlayer(m);
+ mp.setVolume(vol);
+ new Thread(new Runnable(){
+
+ @Override
+ public void run() {
+ mp.play();
+
+ }
+
+ }).start();
+ return mp;
+
+ } catch (URISyntaxException e) {
+ System.err.println("MEDIA DON'T EXIST -DM");
+ e.printStackTrace();
+ return null;
+
+ }
+
+ }
+
+
+ /** Plays a sound and doesn't blow up playing sounds
+ * @param sound Sound
+ *
+ * */
+ public static MediaPlayer playOverSound(Sound sound,double volume) {
+ init();
+ try {
+ String rp = sound.getSoundsRelPath();
+ if(String.valueOf(rp.charAt(0)).equals("/")) {
+ rp = rp.replaceFirst("/", "");
+ }
+ if(rp.endsWith("/")) {
+ rp = rp.substring(0, rp.length()-1);
+
+ }
+
+ String sp = ResourceHandler.soundmap.pullValue("Sounds/relpath");
+ URL url = null;
+ if(sp!=null) {
+ url = FileUtil.getResourceURL(sp+rp);
+ }else {
+ url = FileUtil.getResourceURL("resources/sounds"+rp);
+ }
+ if(!new File(url.getPath()).exists()) {
+ url = FileUtil.getResourceURL("resources/sounds/"+rp);
+ }
+ URI ur = new URI(url.toString().replace(" ", "%20"));
+ Media m = new Media(ur.toString());
+ MediaPlayer mp = new MediaPlayer(m);
+ mp.setVolume(volume);
+ new Thread(new Runnable(){
+
+ @Override
+ public void run() {
+ mp.play();
+
+ }
+
+ }).start();
+ return mp;
+
+ } catch (URISyntaxException e) {
+ System.err.println("MEDIA DON'T EXIST -DM");
+ e.printStackTrace();
+ return null;
+
+ }
+
+ }
+
+
+
+ /**
+ * @param s Sound
+ *
+ * */
+ public static Media playSound(Sound s) {
+ init();
+ if(DMediaPlayer.getMediaPlayer()!=null&&overlapSongs==false) {//If MediaPlayer null we need to init
+ DMediaPlayer.getMediaPlayer().stop();
+ }
+ try {
+ String rp = s.getSoundsRelPath();
+ if(String.valueOf(rp.charAt(0)).equals("/")) {
+ rp = rp.replaceFirst("/", "");
+ }
+ if(rp.endsWith("/")) {
+ rp = rp.substring(0, rp.length()-1);
+
+ }
+ String sp = ResourceHandler.soundmap.pullValue("Sounds/relpath");
+ URL url = null;
+ if(sp!=null) {
+ url = FileUtil.getResourceURL(sp+rp);
+ }else {
+ System.out.println("Couldn't find:"+rp);
+ url = FileUtil.getResourceURL("resources/sounds/"+rp);
+ }
+ if(!new File(url.getPath()).exists()) {
+ url = FileUtil.getResourceURL("resources/sounds/"+rp);
+ }
+
+
+ URI ur = new URI(url.toString().replace(" ", "%20"));
+ DMediaPlayer.setMedia(ur.toString());
+ } catch (URISyntaxException e) {
+ System.err.println("MEDIA DON'T EXIST -DM");
+ e.printStackTrace();
+ }
+ new Thread( new Runnable() {
+
+ @Override
+ public void run() {
+ DMediaPlayer.getMediaPlayer().setVolume(vol);
+ DMediaPlayer.getMediaPlayer().play();
+
+ }
+
+ }).start();
+ return DMediaPlayer.getPlayingMedia();
+
+ }
+
+
+
+
+
+
+ /**
+ *
+ */
+ public static void init() {
+ if(!init) {
+ vol=1.0;
+ DMediaPlayer.init();
+ init=true;
+ //if(ResourceHandler.soundmap==null) {
+ // ResourceHandler.soundmap=RuneMap.ParseDXMLMap(FileUtil.getResource("resources/sounds/Index.xml"));
+ //}
+ }
+
+ }
+
+
+
+}
diff --git a/source/VoxelCraft/src/mplayer/Sound.java b/source/VoxelCraft/src/mplayer/Sound.java
new file mode 100644
index 0000000..b70d43c
--- /dev/null
+++ b/source/VoxelCraft/src/mplayer/Sound.java
@@ -0,0 +1,134 @@
+/**
+ *
+ */
+package mplayer;
+
+import java.io.File;
+import java.util.ArrayList;
+
+/**
+ * @author Dunemask
+ *
+ */
+public class Sound {
+ /**Relpath to be called for loadsound*/
+ public static final String[] menuSong = new String[] {"/title/menu4","/title/menu3","/title/menu2","/title/menu1"};
+ /**@return arraylist of game songs called in loadsound*/
+ public static String[] gameSong() {
+ ArrayList songs = new ArrayList();
+ for(int i=1;i<13;i++) {
+ songs.add("/game/Game ("+i+")");
+ }
+ return songs.toArray(new String[songs.size()]);
+ }
+
+ private String artist;
+ private String album;
+ private String title;
+ private File song;
+ private String id;
+ private String soundsRelPath;
+
+ /** @param id
+ * @param song
+ * @param title
+ * @param album
+ * @param artist
+ * @param soundsrelpath
+ *
+ */
+ public Sound(String id,File song,String title,String album,String artist, String soundsrelpath) {
+ this.setId(id);
+ this.setSong(song);
+ this.setTitle(title);
+ this.setAlbum(album);
+ this.setArtist(artist);
+ this.setSoundsRelPath(soundsrelpath);
+
+ }
+
+ /**
+ * @return the artist
+ */
+ public String getArtist() {
+ return artist;
+ }
+
+ /**
+ * @param artist the artist to set
+ */
+ public void setArtist(String artist) {
+ this.artist = artist;
+ }
+
+ /**
+ * @return the album
+ */
+ public String getAlbum() {
+ return album;
+ }
+
+ /**
+ * @param album the album to set
+ */
+ public void setAlbum(String album) {
+ this.album = album;
+ }
+
+ /**
+ * @return the title
+ */
+ public String getTitle() {
+ return title;
+ }
+
+ /**
+ * @param title the title to set
+ */
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ /**
+ * @return the song
+ */
+ public File getSong() {
+ return song;
+ }
+
+ /**
+ * @param song the song to set
+ */
+ public void setSong(File song) {
+ this.song = song;
+ }
+
+ /**
+ * @return the id
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ /**
+ * @return the soundsRelPath
+ */
+ public String getSoundsRelPath() {
+ return soundsRelPath;
+ }
+
+ /**
+ * @param soundsRelPath the soundsRelPath to set
+ */
+ public void setSoundsRelPath(String soundsRelPath) {
+ this.soundsRelPath = soundsRelPath;
+ }
+
+}
diff --git a/source/VoxelCraft/src/mplayer/SoundEngine.java b/source/VoxelCraft/src/mplayer/SoundEngine.java
new file mode 100644
index 0000000..8b2acdd
--- /dev/null
+++ b/source/VoxelCraft/src/mplayer/SoundEngine.java
@@ -0,0 +1,276 @@
+/**
+ *
+ */
+package mplayer;
+
+import java.net.URI;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Random;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import dunemask.objects.DMediaPlayer;
+import dunemask.util.FileUtil;
+import javafx.scene.media.Media;
+import javafx.scene.media.MediaPlayer;
+
+/**
+ * @author Dunemask
+ *
+ */
+public class SoundEngine {
+ final public static int game=1;
+ final static int gameWaitTime = 16000;
+ final public static int title=0;
+ final static int titleWaitTime = 12000;
+ public static ArrayList titleRun = new ArrayList();
+ public static ArrayList gameRun = new ArrayList();
+ /**Only For Stopping!*/
+ public static final int allEngines=2;
+ public static boolean run=true;
+ ArrayList cp = new ArrayList();
+
+ public static void handle(String type) {
+ if(run) {
+ Sound s;
+ switch(type) {
+ case "click":
+ s =SoundHandler.loadSong("/etc/click");
+ PlaySound.playOverSound(s);
+ break;
+ case "block_place":
+ s =SoundHandler.loadSong("/etc/block_place");
+ PlaySound.playOverSound(s);
+ break;
+ case "block_break":
+ s =SoundHandler.loadSong("/etc/block_break");
+ PlaySound.playOverSound(s,0.05*PlaySound.vol);
+ break;
+
+ default:
+
+ System.err.println("Invalid Sound Engine");
+ System.exit(1);
+ break;
+
+ }
+ }
+ }
+ public static void stop(int engine) {
+ switch(engine) {
+ case SoundEngine.title:
+ for(int i=0;i{
+ pReady.countDown();
+ });
+ //Wait until ready
+ try {
+ pReady.await();
+ } catch (InterruptedException e1) {
+ e1.printStackTrace();
+ }
+ //Play
+ PlaySound.playSound(s);
+ long waitTime =(int)m.getDuration().toMillis()+1;
+ tlatch = new CountDownLatch(1);
+ try {
+ tlatch.await(waitTime, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ if(titleRun.get(i)) {
+ DMediaPlayer.getMediaPlayer().stop();
+ }
+ try {
+ Thread.sleep(r.nextInt(SoundEngine.titleWaitTime));
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+
+
+ }
+
+ }
+
+ }).start();;
+
+
+
+ }
+ /**
+ *
+ */
+ private static void gameEngine() {
+ /*try {
+ throw new RuntimeException();
+ }catch(Exception e) {
+ e.printStackTrace();
+ }*/
+ new Thread ( new Runnable() {
+
+ @Override
+ public void run() {
+ Random r = new Random();
+ gameRun.add(true);
+ int i = gameRun.size()-1;
+ while(gameRun.get(i)) {
+
+ String song = Sound.gameSong()[r.nextInt(Sound.gameSong().length)];
+ //System.out.println(song);
+ Sound s = SoundHandler.loadSong(song);
+ Media m = null;
+ try {
+ String rp = s.getSoundsRelPath();
+ if(String.valueOf(rp.charAt(0)).equals("/")) {
+ rp = rp.replaceFirst("/", "");
+ }
+ if(rp.endsWith("/")) {
+ rp = rp.substring(0, rp.length()-1);
+
+ }
+
+ URL url = FileUtil.getResourceURL("resources/sounds/"+rp);
+ URI ur = new URI(url.toString().replace(" ", "%20"));
+ m = new Media(ur.toString());
+
+ }catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ MediaPlayer tmp = new MediaPlayer(m);
+ CountDownLatch pReady = new CountDownLatch(1);
+ tmp.setOnReady(()->{
+ pReady.countDown();
+ });
+ //Wait until ready
+ try {
+ pReady.await();
+ } catch (InterruptedException e1) {
+ e1.printStackTrace();
+ }
+ //System.out.println("PLaying:"+m.getDuration());
+ PlaySound.playSound(s);
+ //Play
+ long waitTime =(int)m.getDuration().toMillis()+1;
+ glatch = new CountDownLatch(1);
+ try {
+ glatch.await(waitTime, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ if(gameRun.get(i)) {
+ DMediaPlayer.getMediaPlayer().stop();
+ }
+ try {
+ Thread.sleep(r.nextInt(SoundEngine.gameWaitTime));
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+
+
+ }
+
+ }
+
+ }).start();;
+
+
+
+ }
+
+
+}
diff --git a/source/VoxelCraft/src/mplayer/SoundHandler.java b/source/VoxelCraft/src/mplayer/SoundHandler.java
new file mode 100644
index 0000000..2ed10ac
--- /dev/null
+++ b/source/VoxelCraft/src/mplayer/SoundHandler.java
@@ -0,0 +1,86 @@
+/**
+ *
+ */
+package mplayer;
+
+import java.io.File;
+
+import dunemask.util.xml.RuneMap;
+import mc.ResourceHandler;
+
+/**
+ * @author Dunemask
+ *
+ */
+public class SoundHandler {
+//sfasdf
+ //TODO
+ /** Load Song from the resources
+ * @param relPath Song Path
+ * @return A sound to be played with PlaySound
+ * */
+ public static Sound loadSong(String relPath) {
+ RuneMap index = ResourceHandler.soundmap;
+ String rp = relPath;
+ if(String.valueOf(relPath.charAt(0)).equals("/")) {
+ rp = rp.replaceFirst("/", "");
+ }
+ if(relPath.endsWith("/")) {
+ rp = rp.substring(0, rp.length()-1);
+
+ }
+ String id = index.pullValue("Sounds/"+rp+"/ID");
+ String title = index.pullValue("Sounds/"+rp+"/Title");
+ String artist = index.pullValue("Sounds/"+rp+"/Artist");
+ String album =index.pullValue("Sounds/"+rp+"/Album");
+ String relp=index.pullValue("Sounds/"+rp+"/RelPath");
+ File f = null;
+ Sound s = new Sound(id,f,title,album,artist,relp);
+ return s;
+ }
+ /** Edit XML Only For Devlopment Purposes
+ * @param s Sound
+ * @param relPath path
+ *
+ */
+ public static void editXML(Sound s,String relPath) {
+ String rp = relPath;
+ if(String.valueOf(relPath.charAt(0)).equals("/")) {
+ rp = rp.replaceFirst("/", "");
+ }
+ if(relPath.endsWith("/")) {
+ rp = rp.substring(0, rp.length()-1);
+
+ }
+ RuneMap index = ResourceHandler.soundmap;
+
+
+ index.writeContainer("Sounds/ambient/");
+ index.writeContainer("Sounds/player/");
+ index.writeContainer("Sounds/title/");
+ index.writeContainer("Sounds/etc/");
+ index.writeContainer("Sounds/game/");
+ index.writeContainer("Sounds/"+rp+"/");
+ index.writeElement("Sounds/"+rp+"/ID", s.getId());
+ index.writeElement("Sounds/"+rp+"/Title", s.getTitle());
+ index.writeElement("Sounds/"+rp+"/Song", s.getSong().toURI().toString());
+ index.writeElement("Sounds/"+rp+"/Artist", s.getArtist());
+ index.writeElement("Sounds/"+rp+"/Album", s.getAlbum());
+ index.writeElement("Sounds/"+rp+"/RelPath", s.getSoundsRelPath());
+ //Write Both
+ index = RuneMap.ParseDXMLMap(new File("bin/resources/sounds/Index.xml"));
+ index.writeContainer("Sounds/ambient/");
+ index.writeContainer("Sounds/player/");
+ index.writeContainer("Sounds/title/");
+ index.writeContainer("Sounds/game/");
+ index.writeContainer("Sounds/etc/");
+ index.writeContainer("Sounds/"+rp+"/");
+ index.writeElement("Sounds/"+rp+"/ID", s.getId());
+ index.writeElement("Sounds/"+rp+"/Title", s.getTitle());
+ index.writeElement("Sounds/"+rp+"/Song", s.getSong().toURI().toString());
+ index.writeElement("Sounds/"+rp+"/Artist", s.getArtist());
+ index.writeElement("Sounds/"+rp+"/Album", s.getAlbum());
+ index.writeElement("Sounds/"+rp+"/RelPath", s.getSoundsRelPath());
+ }
+
+}
diff --git a/source/VoxelCraft/src/resources/Munro.ttf b/source/VoxelCraft/src/resources/Munro.ttf
new file mode 100644
index 0000000..699f2b8
Binary files /dev/null and b/source/VoxelCraft/src/resources/Munro.ttf differ
diff --git a/source/VoxelCraft/src/resources/handler.xml b/source/VoxelCraft/src/resources/handler.xml
new file mode 100644
index 0000000..4dab141
--- /dev/null
+++ b/source/VoxelCraft/src/resources/handler.xml
@@ -0,0 +1,4 @@
+
+ resources/textures/blocks/block.xml
+ resources/sounds/Index.xml
+
\ No newline at end of file
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/blocks.xml b/source/VoxelCraft/src/resources/resourcepacks/testpack/blocks.xml
new file mode 100644
index 0000000..1115579
--- /dev/null
+++ b/source/VoxelCraft/src/resources/resourcepacks/testpack/blocks.xml
@@ -0,0 +1,25 @@
+
+ <0>dirt0>
+ <1>stone1>
+ <2>grass2>
+ <3>grass_side3>
+ <4>log_top4>
+ <5>log_side5>
+ <6>brix6>
+ <7>leaves7>
+ <8>leaves_28>
+ <9>stone_brick9>
+ <10>select10>
+ <11>red11>
+ <12>orange12>
+ <13>yellow13>
+ <14>green14>
+ <15>sky_blue15>
+ <16>dark_blue16>
+ <17>magenta17>
+ <18>cobblestone18>
+ <19>bedrock19>
+ <20>glass20>
+ <21>light_gray_stained_glass21>
+ C:/Users/dunemask/Documents/VoxelCraft/resourcepacks/testpack/textures/blocks/
+
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/info.xml b/source/VoxelCraft/src/resources/resourcepacks/testpack/info.xml
new file mode 100644
index 0000000..cdb7228
--- /dev/null
+++ b/source/VoxelCraft/src/resources/resourcepacks/testpack/info.xml
@@ -0,0 +1,5 @@
+
+ Test!
+ textures
+ sounds
+
\ No newline at end of file
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds.xml b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds.xml
new file mode 100644
index 0000000..11c67a4
--- /dev/null
+++ b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds.xml
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+ 000003
+ menu1
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/title/menu1.mp3
+ Dunemask
+ Minecraft
+ /title/menu1.mp3
+
+
+ 000004
+ menu2
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/title/menu2.mp3
+ Dunemask
+ Minecraft
+ /title/menu2.mp3
+
+
+ 000005
+ menu3
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/title/menu3.mp3
+ Dunemask
+ Minecraft
+ /title/menu3.mp3
+
+
+ 000006
+ menu4
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/title/menu4.mp3
+ Dunemask
+ Minecraft
+ /title/menu4.mp3
+
+
+
+
+ 000001
+ Give Me A Sign
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/etc/Give%20Me%20A%20Sign.mp3
+ Breaking Benjamen
+ Dear Agony
+ /etc/Give Me A Sign.mp3
+
+
+ 000002
+ Angels Fall
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/etc/Angels%20Fall.mp3
+ Breaking Benjamen
+ Unknown Album
+ /etc/Angels Fall.mp3
+
+
+ 000008
+ menu4
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/etc/click.mp3
+ Dunemask
+ Minecraft
+ /etc/click.mp3
+
+
+ 126442
+ 126442
+ file:/C:/Users/Dunemask/Documents/GitHub/java.je/VoxelCraft/bin/resources/sounds/etc/block_place.mp3
+ Minecraft
+ block_place
+ /etc/block_place.mp3
+
+
+ 126742
+ block_Break
+ file:/C:/Users/Dunemask/Documents/GitHub/java.je/VoxelCraft/bin/resources/sounds/etc/block_break.mp3
+ Dunemask
+ Minecraft
+ /etc/block_break.mp3
+
+
+
+
+ 0000081
+ Game (1)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(1).mp3
+ Dunemask
+ Minecraft
+ /game/Game (1).mp3
+
+
+ 0000082
+ Game (2)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(2).mp3
+ Dunemask
+ Minecraft
+ /game/Game (2).mp3
+
+
+ 0000083
+ Game (3)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(3).mp3
+ Dunemask
+ Minecraft
+ /game/Game (3).mp3
+
+
+ 0000084
+ Game (4)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(4).mp3
+ Dunemask
+ Minecraft
+ /game/Game (4).mp3
+
+
+ 0000085
+ Game (5)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(5).mp3
+ Dunemask
+ Minecraft
+ /game/Game (5).mp3
+
+
+ 0000086
+ Game (6)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(6).mp3
+ Dunemask
+ Minecraft
+ /game/Game (6).mp3
+
+
+ 0000087
+ Game (7)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(7).mp3
+ Dunemask
+ Minecraft
+ /game/Game (7).mp3
+
+
+ 0000088
+ Game (8)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(8).mp3
+ Dunemask
+ Minecraft
+ /game/Game (8).mp3
+
+
+ 0000089
+ Game (9)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(9).mp3
+ Dunemask
+ Minecraft
+ /game/Game (9).mp3
+
+
+ 00000810
+ Game (10)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(10).mp3
+ Dunemask
+ Minecraft
+ /game/Game (10).mp3
+
+
+ 00000811
+ Game (11)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(11).mp3
+ Dunemask
+ Minecraft
+ /game/Game (11).mp3
+
+
+ 00000812
+ Game (12)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(12).mp3
+ Dunemask
+ Minecraft
+ /game/Game (12).mp3
+
+
+ C:/Users/dunemask/Documents/VoxelCraft/resourcepacks/testpack/sounds/
+
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/Index.xml b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/Index.xml
new file mode 100644
index 0000000..326903b
--- /dev/null
+++ b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/Index.xml
@@ -0,0 +1,181 @@
+
+ resources/sounds/
+
+
+
+
+
+
+ 000003
+ menu1
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/title/menu1.mp3
+ Dunemask
+ Minecraft
+ /title/menu1.mp3
+
+
+ 000004
+ menu2
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/title/menu2.mp3
+ Dunemask
+ Minecraft
+ /title/menu2.mp3
+
+
+ 000005
+ menu3
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/title/menu3.mp3
+ Dunemask
+ Minecraft
+ /title/menu3.mp3
+
+
+ 000006
+ menu4
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/title/menu4.mp3
+ Dunemask
+ Minecraft
+ /title/menu4.mp3
+
+
+
+
+ 000001
+ Give Me A Sign
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/etc/Give%20Me%20A%20Sign.mp3
+ Breaking Benjamen
+ Dear Agony
+ /etc/Give Me A Sign.mp3
+
+
+ 000002
+ Angels Fall
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/etc/Angels%20Fall.mp3
+ Breaking Benjamen
+ Unknown Album
+ /etc/Angels Fall.mp3
+
+
+ 000008
+ menu4
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/etc/click.mp3
+ Dunemask
+ Minecraft
+ /etc/click.mp3
+
+
+ 126442
+ 126442
+ file:/C:/Users/Dunemask/Documents/GitHub/java.je/VoxelCraft/bin/resources/sounds/etc/block_place.mp3
+ Minecraft
+ block_place
+ /etc/block_place.mp3
+
+
+ 126742
+ block_Break
+ file:/C:/Users/Dunemask/Documents/GitHub/java.je/VoxelCraft/bin/resources/sounds/etc/block_break.mp3
+ Dunemask
+ Minecraft
+ /etc/block_break.mp3
+
+
+
+
+ 0000081
+ Game (1)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(1).mp3
+ Dunemask
+ Minecraft
+ /game/Game (1).mp3
+
+
+ 0000082
+ Game (2)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(2).mp3
+ Dunemask
+ Minecraft
+ /game/Game (2).mp3
+
+
+ 0000083
+ Game (3)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(3).mp3
+ Dunemask
+ Minecraft
+ /game/Game (3).mp3
+
+
+ 0000084
+ Game (4)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(4).mp3
+ Dunemask
+ Minecraft
+ /game/Game (4).mp3
+
+
+ 0000085
+ Game (5)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(5).mp3
+ Dunemask
+ Minecraft
+ /game/Game (5).mp3
+
+
+ 0000086
+ Game (6)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(6).mp3
+ Dunemask
+ Minecraft
+ /game/Game (6).mp3
+
+
+ 0000087
+ Game (7)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(7).mp3
+ Dunemask
+ Minecraft
+ /game/Game (7).mp3
+
+
+ 0000088
+ Game (8)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(8).mp3
+ Dunemask
+ Minecraft
+ /game/Game (8).mp3
+
+
+ 0000089
+ Game (9)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(9).mp3
+ Dunemask
+ Minecraft
+ /game/Game (9).mp3
+
+
+ 00000810
+ Game (10)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(10).mp3
+ Dunemask
+ Minecraft
+ /game/Game (10).mp3
+
+
+ 00000811
+ Game (11)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(11).mp3
+ Dunemask
+ Minecraft
+ /game/Game (11).mp3
+
+
+ 00000812
+ Game (12)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(12).mp3
+ Dunemask
+ Minecraft
+ /game/Game (12).mp3
+
+
+
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/Angels Fall.mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/Angels Fall.mp3
new file mode 100644
index 0000000..073e818
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/Angels Fall.mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/Give Me A Sign.mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/Give Me A Sign.mp3
new file mode 100644
index 0000000..3dec02c
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/Give Me A Sign.mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/block_break.mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/block_break.mp3
new file mode 100644
index 0000000..459db85
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/block_break.mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/block_place.mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/block_place.mp3
new file mode 100644
index 0000000..a525744
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/block_place.mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/click.mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/click.mp3
new file mode 100644
index 0000000..a64d18f
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/etc/click.mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (1).mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (1).mp3
new file mode 100644
index 0000000..0ce7258
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (1).mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (10).mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (10).mp3
new file mode 100644
index 0000000..02960be
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (10).mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (11).mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (11).mp3
new file mode 100644
index 0000000..9c60dea
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (11).mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (12).mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (12).mp3
new file mode 100644
index 0000000..0df6d02
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (12).mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (2).mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (2).mp3
new file mode 100644
index 0000000..d955d15
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (2).mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (3).mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (3).mp3
new file mode 100644
index 0000000..9c60dea
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (3).mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (4).mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (4).mp3
new file mode 100644
index 0000000..e63b188
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (4).mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (5).mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (5).mp3
new file mode 100644
index 0000000..e63b188
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (5).mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (6).mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (6).mp3
new file mode 100644
index 0000000..9c60dea
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (6).mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (7).mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (7).mp3
new file mode 100644
index 0000000..c46bedb
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (7).mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (8).mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (8).mp3
new file mode 100644
index 0000000..c46bedb
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (8).mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (9).mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (9).mp3
new file mode 100644
index 0000000..02960be
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/game/Game (9).mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/title/menu1.mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/title/menu1.mp3
new file mode 100644
index 0000000..ea54147
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/title/menu1.mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/title/menu2.mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/title/menu2.mp3
new file mode 100644
index 0000000..3389a72
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/title/menu2.mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/title/menu3.mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/title/menu3.mp3
new file mode 100644
index 0000000..437a02a
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/title/menu3.mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/title/menu4.mp3 b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/title/menu4.mp3
new file mode 100644
index 0000000..5eb34d1
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/sounds/title/menu4.mp3 differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/bedrock.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/bedrock.png
new file mode 100644
index 0000000..75d4787
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/bedrock.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/block.xml b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/block.xml
new file mode 100644
index 0000000..18173bf
--- /dev/null
+++ b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/block.xml
@@ -0,0 +1,25 @@
+
+ resources/textures/blocks/
+ <0>dirt0>
+ <1>stone1>
+ <2>grass2>
+ <3>grass_side3>
+ <4>log_top4>
+ <5>log_side5>
+ <6>brix6>
+ <7>leaves7>
+ <8>leaves_28>
+ <9>stone_brick9>
+ <10>select10>
+ <11>red11>
+ <12>orange12>
+ <13>yellow13>
+ <14>green14>
+ <15>sky_blue15>
+ <16>dark_blue16>
+ <17>magenta17>
+ <18>cobblestone18>
+ <19>bedrock19>
+ <20>glass20>
+ <21>light_gray_stained_glass21>
+
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/brix.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/brix.png
new file mode 100644
index 0000000..f39fe6f
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/brix.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/cobblestone.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/cobblestone.png
new file mode 100644
index 0000000..4bcc137
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/cobblestone.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/dark_blue.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/dark_blue.png
new file mode 100644
index 0000000..4d4db10
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/dark_blue.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/dirt.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/dirt.png
new file mode 100644
index 0000000..abf3ac0
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/dirt.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/glass.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/glass.png
new file mode 100644
index 0000000..f7599de
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/glass.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/grass.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/grass.png
new file mode 100644
index 0000000..2025048
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/grass.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/grass_side.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/grass_side.png
new file mode 100644
index 0000000..17d0da4
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/grass_side.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/green.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/green.png
new file mode 100644
index 0000000..3d1dbdd
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/green.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/leaves.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/leaves.png
new file mode 100644
index 0000000..494a127
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/leaves.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/leaves_2.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/leaves_2.png
new file mode 100644
index 0000000..494a127
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/leaves_2.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/light_gray_stained_glass.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/light_gray_stained_glass.png
new file mode 100644
index 0000000..12976a9
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/light_gray_stained_glass.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/log_side.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/log_side.png
new file mode 100644
index 0000000..3fe8e5d
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/log_side.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/log_top.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/log_top.png
new file mode 100644
index 0000000..6235684
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/log_top.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/magenta.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/magenta.png
new file mode 100644
index 0000000..c9f8023
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/magenta.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/orange.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/orange.png
new file mode 100644
index 0000000..7af5c2d
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/orange.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/red.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/red.png
new file mode 100644
index 0000000..fd5cb6e
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/red.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/select.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/select.png
new file mode 100644
index 0000000..e51fe83
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/select.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/sky_blue.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/sky_blue.png
new file mode 100644
index 0000000..c6ace80
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/sky_blue.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/stone.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/stone.png
new file mode 100644
index 0000000..cdf8901
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/stone.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/stone_brick.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/stone_brick.png
new file mode 100644
index 0000000..a6eff55
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/stone_brick.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/yellow.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/yellow.png
new file mode 100644
index 0000000..169bd74
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/blocks/yellow.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/overlay/brk.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/overlay/brk.png
new file mode 100644
index 0000000..8b2d258
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/overlay/brk.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/overlay/crosshair.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/overlay/crosshair.png
new file mode 100644
index 0000000..b8bc5c2
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/overlay/crosshair.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/overlay/selecc.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/overlay/selecc.png
new file mode 100644
index 0000000..5e7c653
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/overlay/selecc.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/title/Voxelcraft.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/title/Voxelcraft.png
new file mode 100644
index 0000000..da3f4aa
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/title/Voxelcraft.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/title/mc.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/title/mc.png
new file mode 100644
index 0000000..b5b7e96
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/title/mc.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/title/oldmc.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/title/oldmc.png
new file mode 100644
index 0000000..ab8e354
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/title/oldmc.png differ
diff --git a/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/title/panorama_3.png b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/title/panorama_3.png
new file mode 100644
index 0000000..cbe4389
Binary files /dev/null and b/source/VoxelCraft/src/resources/resourcepacks/testpack/textures/gui/title/panorama_3.png differ
diff --git a/source/VoxelCraft/src/resources/sounds/Index.xml b/source/VoxelCraft/src/resources/sounds/Index.xml
new file mode 100644
index 0000000..326903b
--- /dev/null
+++ b/source/VoxelCraft/src/resources/sounds/Index.xml
@@ -0,0 +1,181 @@
+
+ resources/sounds/
+
+
+
+
+
+
+ 000003
+ menu1
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/title/menu1.mp3
+ Dunemask
+ Minecraft
+ /title/menu1.mp3
+
+
+ 000004
+ menu2
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/title/menu2.mp3
+ Dunemask
+ Minecraft
+ /title/menu2.mp3
+
+
+ 000005
+ menu3
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/title/menu3.mp3
+ Dunemask
+ Minecraft
+ /title/menu3.mp3
+
+
+ 000006
+ menu4
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/title/menu4.mp3
+ Dunemask
+ Minecraft
+ /title/menu4.mp3
+
+
+
+
+ 000001
+ Give Me A Sign
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/etc/Give%20Me%20A%20Sign.mp3
+ Breaking Benjamen
+ Dear Agony
+ /etc/Give Me A Sign.mp3
+
+
+ 000002
+ Angels Fall
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/etc/Angels%20Fall.mp3
+ Breaking Benjamen
+ Unknown Album
+ /etc/Angels Fall.mp3
+
+
+ 000008
+ menu4
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/etc/click.mp3
+ Dunemask
+ Minecraft
+ /etc/click.mp3
+
+
+ 126442
+ 126442
+ file:/C:/Users/Dunemask/Documents/GitHub/java.je/VoxelCraft/bin/resources/sounds/etc/block_place.mp3
+ Minecraft
+ block_place
+ /etc/block_place.mp3
+
+
+ 126742
+ block_Break
+ file:/C:/Users/Dunemask/Documents/GitHub/java.je/VoxelCraft/bin/resources/sounds/etc/block_break.mp3
+ Dunemask
+ Minecraft
+ /etc/block_break.mp3
+
+
+
+
+ 0000081
+ Game (1)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(1).mp3
+ Dunemask
+ Minecraft
+ /game/Game (1).mp3
+
+
+ 0000082
+ Game (2)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(2).mp3
+ Dunemask
+ Minecraft
+ /game/Game (2).mp3
+
+
+ 0000083
+ Game (3)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(3).mp3
+ Dunemask
+ Minecraft
+ /game/Game (3).mp3
+
+
+ 0000084
+ Game (4)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(4).mp3
+ Dunemask
+ Minecraft
+ /game/Game (4).mp3
+
+
+ 0000085
+ Game (5)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(5).mp3
+ Dunemask
+ Minecraft
+ /game/Game (5).mp3
+
+
+ 0000086
+ Game (6)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(6).mp3
+ Dunemask
+ Minecraft
+ /game/Game (6).mp3
+
+
+ 0000087
+ Game (7)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(7).mp3
+ Dunemask
+ Minecraft
+ /game/Game (7).mp3
+
+
+ 0000088
+ Game (8)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(8).mp3
+ Dunemask
+ Minecraft
+ /game/Game (8).mp3
+
+
+ 0000089
+ Game (9)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(9).mp3
+ Dunemask
+ Minecraft
+ /game/Game (9).mp3
+
+
+ 00000810
+ Game (10)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(10).mp3
+ Dunemask
+ Minecraft
+ /game/Game (10).mp3
+
+
+ 00000811
+ Game (11)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(11).mp3
+ Dunemask
+ Minecraft
+ /game/Game (11).mp3
+
+
+ 00000812
+ Game (12)
+ file:/C:/Users/Dunemask/eclipse-workspace/Code%20Camp%20Player/bin/resources/sounds/game/Game%20(12).mp3
+ Dunemask
+ Minecraft
+ /game/Game (12).mp3
+
+
+
diff --git a/source/VoxelCraft/src/resources/sounds/etc/Angels Fall.mp3 b/source/VoxelCraft/src/resources/sounds/etc/Angels Fall.mp3
new file mode 100644
index 0000000..073e818
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/etc/Angels Fall.mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/etc/Give Me A Sign.mp3 b/source/VoxelCraft/src/resources/sounds/etc/Give Me A Sign.mp3
new file mode 100644
index 0000000..3dec02c
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/etc/Give Me A Sign.mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/etc/block_break.mp3 b/source/VoxelCraft/src/resources/sounds/etc/block_break.mp3
new file mode 100644
index 0000000..459db85
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/etc/block_break.mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/etc/block_place.mp3 b/source/VoxelCraft/src/resources/sounds/etc/block_place.mp3
new file mode 100644
index 0000000..a525744
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/etc/block_place.mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/etc/click.mp3 b/source/VoxelCraft/src/resources/sounds/etc/click.mp3
new file mode 100644
index 0000000..a64d18f
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/etc/click.mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/game/Game (1).mp3 b/source/VoxelCraft/src/resources/sounds/game/Game (1).mp3
new file mode 100644
index 0000000..0ce7258
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/game/Game (1).mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/game/Game (10).mp3 b/source/VoxelCraft/src/resources/sounds/game/Game (10).mp3
new file mode 100644
index 0000000..02960be
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/game/Game (10).mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/game/Game (11).mp3 b/source/VoxelCraft/src/resources/sounds/game/Game (11).mp3
new file mode 100644
index 0000000..9c60dea
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/game/Game (11).mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/game/Game (12).mp3 b/source/VoxelCraft/src/resources/sounds/game/Game (12).mp3
new file mode 100644
index 0000000..0df6d02
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/game/Game (12).mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/game/Game (2).mp3 b/source/VoxelCraft/src/resources/sounds/game/Game (2).mp3
new file mode 100644
index 0000000..d955d15
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/game/Game (2).mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/game/Game (3).mp3 b/source/VoxelCraft/src/resources/sounds/game/Game (3).mp3
new file mode 100644
index 0000000..9c60dea
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/game/Game (3).mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/game/Game (4).mp3 b/source/VoxelCraft/src/resources/sounds/game/Game (4).mp3
new file mode 100644
index 0000000..e63b188
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/game/Game (4).mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/game/Game (5).mp3 b/source/VoxelCraft/src/resources/sounds/game/Game (5).mp3
new file mode 100644
index 0000000..e63b188
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/game/Game (5).mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/game/Game (6).mp3 b/source/VoxelCraft/src/resources/sounds/game/Game (6).mp3
new file mode 100644
index 0000000..9c60dea
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/game/Game (6).mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/game/Game (7).mp3 b/source/VoxelCraft/src/resources/sounds/game/Game (7).mp3
new file mode 100644
index 0000000..c46bedb
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/game/Game (7).mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/game/Game (8).mp3 b/source/VoxelCraft/src/resources/sounds/game/Game (8).mp3
new file mode 100644
index 0000000..c46bedb
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/game/Game (8).mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/game/Game (9).mp3 b/source/VoxelCraft/src/resources/sounds/game/Game (9).mp3
new file mode 100644
index 0000000..02960be
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/game/Game (9).mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/title/menu1.mp3 b/source/VoxelCraft/src/resources/sounds/title/menu1.mp3
new file mode 100644
index 0000000..ea54147
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/title/menu1.mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/title/menu2.mp3 b/source/VoxelCraft/src/resources/sounds/title/menu2.mp3
new file mode 100644
index 0000000..3389a72
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/title/menu2.mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/title/menu3.mp3 b/source/VoxelCraft/src/resources/sounds/title/menu3.mp3
new file mode 100644
index 0000000..437a02a
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/title/menu3.mp3 differ
diff --git a/source/VoxelCraft/src/resources/sounds/title/menu4.mp3 b/source/VoxelCraft/src/resources/sounds/title/menu4.mp3
new file mode 100644
index 0000000..5eb34d1
Binary files /dev/null and b/source/VoxelCraft/src/resources/sounds/title/menu4.mp3 differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/bedrock.png b/source/VoxelCraft/src/resources/textures/blocks/bedrock.png
new file mode 100644
index 0000000..75d4787
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/bedrock.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/block.xml b/source/VoxelCraft/src/resources/textures/blocks/block.xml
new file mode 100644
index 0000000..18173bf
--- /dev/null
+++ b/source/VoxelCraft/src/resources/textures/blocks/block.xml
@@ -0,0 +1,25 @@
+
+ resources/textures/blocks/
+ <0>dirt0>
+ <1>stone1>
+ <2>grass2>
+ <3>grass_side3>
+ <4>log_top4>
+ <5>log_side5>
+ <6>brix6>
+ <7>leaves7>
+ <8>leaves_28>
+ <9>stone_brick9>
+ <10>select10>
+ <11>red11>
+ <12>orange12>
+ <13>yellow13>
+ <14>green14>
+ <15>sky_blue15>
+ <16>dark_blue16>
+ <17>magenta17>
+ <18>cobblestone18>
+ <19>bedrock19>
+ <20>glass20>
+ <21>light_gray_stained_glass21>
+
diff --git a/source/VoxelCraft/src/resources/textures/blocks/brix.png b/source/VoxelCraft/src/resources/textures/blocks/brix.png
new file mode 100644
index 0000000..f39fe6f
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/brix.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/cobblestone.png b/source/VoxelCraft/src/resources/textures/blocks/cobblestone.png
new file mode 100644
index 0000000..4bcc137
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/cobblestone.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/dark_blue.png b/source/VoxelCraft/src/resources/textures/blocks/dark_blue.png
new file mode 100644
index 0000000..4d4db10
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/dark_blue.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/dirt.png b/source/VoxelCraft/src/resources/textures/blocks/dirt.png
new file mode 100644
index 0000000..abf3ac0
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/dirt.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/glass.png b/source/VoxelCraft/src/resources/textures/blocks/glass.png
new file mode 100644
index 0000000..f7599de
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/glass.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/grass.png b/source/VoxelCraft/src/resources/textures/blocks/grass.png
new file mode 100644
index 0000000..2025048
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/grass.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/grass_side.png b/source/VoxelCraft/src/resources/textures/blocks/grass_side.png
new file mode 100644
index 0000000..17d0da4
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/grass_side.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/green.png b/source/VoxelCraft/src/resources/textures/blocks/green.png
new file mode 100644
index 0000000..3d1dbdd
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/green.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/leaves.png b/source/VoxelCraft/src/resources/textures/blocks/leaves.png
new file mode 100644
index 0000000..494a127
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/leaves.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/leaves_2.png b/source/VoxelCraft/src/resources/textures/blocks/leaves_2.png
new file mode 100644
index 0000000..494a127
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/leaves_2.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/light_gray_stained_glass.png b/source/VoxelCraft/src/resources/textures/blocks/light_gray_stained_glass.png
new file mode 100644
index 0000000..12976a9
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/light_gray_stained_glass.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/log_side.png b/source/VoxelCraft/src/resources/textures/blocks/log_side.png
new file mode 100644
index 0000000..3fe8e5d
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/log_side.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/log_top.png b/source/VoxelCraft/src/resources/textures/blocks/log_top.png
new file mode 100644
index 0000000..6235684
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/log_top.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/magenta.png b/source/VoxelCraft/src/resources/textures/blocks/magenta.png
new file mode 100644
index 0000000..c9f8023
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/magenta.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/orange.png b/source/VoxelCraft/src/resources/textures/blocks/orange.png
new file mode 100644
index 0000000..7af5c2d
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/orange.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/red.png b/source/VoxelCraft/src/resources/textures/blocks/red.png
new file mode 100644
index 0000000..fd5cb6e
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/red.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/select.png b/source/VoxelCraft/src/resources/textures/blocks/select.png
new file mode 100644
index 0000000..e51fe83
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/select.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/sky_blue.png b/source/VoxelCraft/src/resources/textures/blocks/sky_blue.png
new file mode 100644
index 0000000..c6ace80
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/sky_blue.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/stone.png b/source/VoxelCraft/src/resources/textures/blocks/stone.png
new file mode 100644
index 0000000..cdf8901
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/stone.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/stone_brick.png b/source/VoxelCraft/src/resources/textures/blocks/stone_brick.png
new file mode 100644
index 0000000..a6eff55
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/stone_brick.png differ
diff --git a/source/VoxelCraft/src/resources/textures/blocks/yellow.png b/source/VoxelCraft/src/resources/textures/blocks/yellow.png
new file mode 100644
index 0000000..169bd74
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/blocks/yellow.png differ
diff --git a/source/VoxelCraft/src/resources/textures/gui/overlay/brk.png b/source/VoxelCraft/src/resources/textures/gui/overlay/brk.png
new file mode 100644
index 0000000..8b2d258
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/gui/overlay/brk.png differ
diff --git a/source/VoxelCraft/src/resources/textures/gui/overlay/crosshair.png b/source/VoxelCraft/src/resources/textures/gui/overlay/crosshair.png
new file mode 100644
index 0000000..b8bc5c2
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/gui/overlay/crosshair.png differ
diff --git a/source/VoxelCraft/src/resources/textures/gui/overlay/selecc.png b/source/VoxelCraft/src/resources/textures/gui/overlay/selecc.png
new file mode 100644
index 0000000..5e7c653
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/gui/overlay/selecc.png differ
diff --git a/source/VoxelCraft/src/resources/textures/gui/title/Voxelcraft.png b/source/VoxelCraft/src/resources/textures/gui/title/Voxelcraft.png
new file mode 100644
index 0000000..da3f4aa
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/gui/title/Voxelcraft.png differ
diff --git a/source/VoxelCraft/src/resources/textures/gui/title/mc.png b/source/VoxelCraft/src/resources/textures/gui/title/mc.png
new file mode 100644
index 0000000..b5b7e96
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/gui/title/mc.png differ
diff --git a/source/VoxelCraft/src/resources/textures/gui/title/oldmc.png b/source/VoxelCraft/src/resources/textures/gui/title/oldmc.png
new file mode 100644
index 0000000..ab8e354
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/gui/title/oldmc.png differ
diff --git a/source/VoxelCraft/src/resources/textures/gui/title/panorama_3.png b/source/VoxelCraft/src/resources/textures/gui/title/panorama_3.png
new file mode 100644
index 0000000..cbe4389
Binary files /dev/null and b/source/VoxelCraft/src/resources/textures/gui/title/panorama_3.png differ