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) ); } } }