1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
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)
);
}
}
}
|