summaryrefslogtreecommitdiff
path: root/src/main/java/net/tylermurphy/Minecraft/Scripts/GameScript.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/tylermurphy/Minecraft/Scripts/GameScript.java')
-rwxr-xr-xsrc/main/java/net/tylermurphy/Minecraft/Scripts/GameScript.java99
1 files changed, 99 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/Minecraft/Scripts/GameScript.java b/src/main/java/net/tylermurphy/Minecraft/Scripts/GameScript.java
new file mode 100755
index 0000000..f73ef9d
--- /dev/null
+++ b/src/main/java/net/tylermurphy/Minecraft/Scripts/GameScript.java
@@ -0,0 +1,99 @@
+package net.tylermurphy.Minecraft.Scripts;
+
+import java.util.Random;
+
+import net.tylermurphy.Minecraft.Audio.Sound;
+import net.tylermurphy.Minecraft.Audio.SoundManager;
+import net.tylermurphy.Minecraft.Chunk.Chunk;
+import net.tylermurphy.Minecraft.Scene.Camera;
+import net.tylermurphy.Minecraft.Scene.Objects.Transform;
+import net.tylermurphy.Minecraft.Scene.Objects.WorldOrigin;
+import net.tylermurphy.Minecraft.Scene.Player;
+import net.tylermurphy.Minecraft.Scene.World;
+import net.tylermurphy.Minecraft.Tick.TickManager;
+import net.tylermurphy.Minecraft.Util.ChunkLoader;
+import net.tylermurphy.Minecraft.Util.Constants;
+import net.tylermurphy.Minecraft.Util.Data;
+import net.tylermurphy.Minecraft.Util.ResourceManager;
+import org.joml.Vector3f;
+
+public class GameScript extends Script {
+
+ Sound sound;
+ String[] music = {"calm1","calm2","calm3","hal1","hal2","hal3","hal4","nuance1","nuance2","piano1","piano2","piano3"};
+
+ public void Init() {
+ createScene();
+ loadNextSound();
+ }
+
+ public void Update() {
+ ChunkLoader.run();
+ }
+
+ public void Tick() {
+ if(!sound.isPlaying()) loadNextSound();
+ for(Chunk c: World.getChunks()) {
+ if(c==null) continue;
+ if(c.isScheduled())
+ c.updateMesh();
+ }
+ TickManager.doTick();
+ }
+
+ public void loadNextSound() {
+ Random random = new Random();
+ int i = random.nextInt(music.length);
+ sound = SoundManager.loadSound(music[i]);
+ sound.setLooping(false);
+ sound.play();
+ }
+
+ public void Stop() {
+ sound.stop();
+
+ ChunkLoader.save();
+
+ ResourceManager.saveObject("playerdata/", "temp.player", World.player);
+ ResourceManager.saveObject("playerdata/", "temp.camera", World.camera);
+ Data worldData = new Data();
+ worldData.INTS.put("SEED", World.seed);
+ worldData.INTS.put("OriginX", World.world_origin.x());
+ worldData.INTS.put("OriginZ", World.world_origin.z());
+ ResourceManager.saveObject("", "world.dat", worldData);
+ }
+
+ private static void createScene() {
+
+ Camera camera = (Camera) ResourceManager.loadObject("playerdata/", "temp.camera");
+ if(camera!=null) {
+ World.camera = camera;
+ } else{
+ World.camera = new Camera();
+ }
+
+ Data worldData = (Data) ResourceManager.loadObject("", "world.dat");
+ if(worldData == null) {
+ World.seed = new Random().nextInt(1000000000);
+ World.world_origin = new WorldOrigin(0,0);
+ } else {
+ World.seed = worldData.INTS.get("SEED");
+ int wx = worldData.INTS.get("OriginX");
+ int wz = worldData.INTS.get("OriginZ");
+ World.world_origin = new WorldOrigin(wx,wz);
+ }
+ World.renderDistance = Constants.RENDER_DISTANCE;
+ Player player = (Player) ResourceManager.loadObject("playerdata/", "temp.player");
+ if(player!=null) {
+ World.player = player;
+ } else{
+ World.player = new Player(
+ new Transform()
+ .setPosition(new Vector3f(0, 160, 0))
+ .setScale(.6f)
+ );
+ }
+
+ }
+
+} \ No newline at end of file