forked from senweim/JumpKingAtHome
-
Notifications
You must be signed in to change notification settings - Fork 0
/
environment.py
103 lines (72 loc) · 2.33 KB
/
environment.py
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
100
101
102
103
#!/usr/bin/env python
#
#
#
#
import os
import pickle
import pygame
class Environment:
def __init__(self):
os.environ["hitboxes"] = ""
os.environ["screen_width"], os.environ["screen_height"] = str(480), str(360)
os.environ["window_scale"] = "1"
os.environ["fps"] = str(60)
os.environ["bg_color"] = str((0, 0, 0))
os.environ["mode"] = "normal"
os.environ["start"] = ""
os.environ["active"] = ""
os.environ["gaming"] = ""
os.environ["pause"] = "1"
os.environ["volume"] = "1.0"
os.environ["music"] = "1"
os.environ["ambience"] = "1"
os.environ["sfx"] = "1"
os.environ["time"] = "0"
os.environ["jumps"] = "0"
os.environ["falls"] = "0"
os.environ["session"] = "0"
os.environ["attempt"] = "1"
pygame.mixer.set_num_channels(16)
self._load_settings()
self._load_stats()
def _load_settings(self):
if "settings.dat" in os.listdir("Saves"):
with open("Saves\\settings.dat", "rb") as file:
state = pickle.load(file)
os.environ["window_scale"] = state["window_scale"]
os.environ["sfx"] = state["sfx"]
os.environ["music"] = state["music"]
os.environ["ambience"] = state["ambience"]
os.environ["volume"] = state["volume"]
def _load_stats(self):
if "save.dat" in os.listdir("Saves"):
with open("Saves\\save.dat", "rb") as file:
state = pickle.load(file)
os.environ["time"] = str(state["KING"]["time"])
os.environ["jumps"] = str(state["KING"]["jumps"])
os.environ["falls"] = str(state["KING"]["falls"])
if "permanent.dat" in os.listdir("Saves"):
with open("Saves\\permanent.dat", "rb") as file:
state = pickle.load(file)
os.environ["session"] = str(state["session"])
os.environ["attempt"] = str(state["attempt"])
def save(self):
settings, permanent = self.game_state()
with open("Saves\\settings.dat", "wb") as file:
pickle.dump(settings, file)
with open("Saves\\permanent.dat", "wb") as file:
pickle.dump(permanent, file)
def game_state(self):
settings_state = {
"window_scale" : os.environ.get("window_scale"),
"sfx" : os.environ.get("sfx"),
"music" : os.environ.get("music"),
"ambience" : os.environ.get("ambience"),
"volume" : os.environ.get("volume")
}
permanent_state = {
"session" : os.environ.get("session"),
"attempt" : os.environ.get("attempt")
}
return settings_state, permanent_state