From 180aad05decc7eefa87e4e45d6747c48f40e5361 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Mon, 17 Apr 2023 12:12:01 -0400 Subject: save --- .../tylermurphy/Minecraft/Scripts/GameScript.java | 99 ++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100755 src/main/java/net/tylermurphy/Minecraft/Scripts/GameScript.java (limited to 'src/main/java/net/tylermurphy/Minecraft/Scripts/GameScript.java') 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 -- cgit v1.2.3-freya