dashcode 1.2.2__tar.gz → 1.2.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dashcode
3
- Version: 1.2.2
3
+ Version: 1.2.5
4
4
  Summary: A library for Geometry Dash level generation using .gmd files
5
5
  Author: IWiterI
6
6
  Project-URL: Homepage, https://github.com/ISviterI/dashcode
@@ -3,6 +3,8 @@ import gzip
3
3
  obj_string = ""
4
4
  lvlname = ""
5
5
 
6
+ print("Dashcode loaded! Have fun and also join our discord server please: https://discord.gg/MXv3KTFmPE")
7
+
6
8
  class Dashcode:
7
9
  def __init__(self):
8
10
  self.objects = []
@@ -51,10 +53,25 @@ class Dashcode:
51
53
  self.timeline = {}
52
54
  def setobjects(self, objs:dict):
53
55
  self.objectids = objs
54
-
56
+ def export_gmd(self, filedata, filename:str="Level"):
57
+ with open(f"{filename}.gmd", "w", encoding="utf-8") as f:
58
+ f.write(filedata)
55
59
  def setparams(self, params:dict):
56
60
  self.params = params
57
61
 
62
+ def get_free_group(self):
63
+ used_groups = set()
64
+ for obj in self.objects:
65
+ if "57" in obj:
66
+ parsed = Dashcode().parse_object_string(obj)
67
+ for i,v in parsed.items():
68
+ #print(i,v,type(i))
69
+ if i == "57":
70
+ used_groups.add(int(v))
71
+ current_id = 1
72
+ while current_id in used_groups:
73
+ current_id += 1
74
+ return str(current_id)
58
75
  def addobject(self, obj: str, params: dict):
59
76
  objects = self.objects
60
77
  if len(objects) <= 0:
@@ -62,11 +79,12 @@ class Dashcode:
62
79
  f"1,1,2,{str(-10 * 30)},3,{str(-10 * 30)},12,1,13,1")
63
80
  extraparams = ""
64
81
  for param, value in params.items():
65
- if self.params.get(param) is not None:
66
- pid = self.params[param]
67
- extraparams += f",{str(pid)},{value}"
68
- else:
69
- extraparams += f",{str(param)},{value}"
82
+ for i in self.params:
83
+ if param.startswith(i):
84
+ pid = self.params[param]
85
+ extraparams += f",{str(pid)},{value}"
86
+ else:
87
+ extraparams += f",{str(param)},{value}"
70
88
 
71
89
  oid = self.objectids.get(obj, 1)
72
90
  if oid:
@@ -149,13 +167,13 @@ class Dashcode:
149
167
  for i2,v2 in v.items():
150
168
  params[i2] = v2
151
169
  self.addobject(i,params)
152
- def create_gmd_file(self, level_name, author_name, objects_string):
170
+ def create_gmd_file(self, level_name, objects_string):
153
171
  global lvlname
154
172
  lvlname = level_name
155
173
  final_string_to_pack = objects_string
156
174
  gzipped = gzip.compress(final_string_to_pack.encode('utf-8'))
157
175
  b64_objects = base64.b64encode(gzipped).decode('utf-8').replace('/', '_').replace('+', '-')
158
- return f'''<?xml version="1.0"?><plist version="1.0" gjver="2.0"><dict><k>kCEK</k><i>4</i><k>k2</k><s>{level_name}</s><k>k4</k><s>{b64_objects}</s><k>k5</k><s>{author_name}</s><k>k11</k><i>1091</i><k>k16</k><i>1</i><k>k80</k><i>56</i></dict></plist>'''
176
+ return f'''<?xml version="1.0"?><plist version="1.0" gjver="2.0"><dict><k>kCEK</k><i>4</i><k>k2</k><s>{level_name}</s><k>k4</k><s>{b64_objects}</s><k>k5</k><s>Doesn't matter</s><k>k11</k><i>1091</i><k>k16</k><i>1</i><k>k80</k><i>56</i></dict></plist>'''
159
177
 
160
178
  def decode_objects(self):
161
179
  objects = self.objects
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dashcode
3
- Version: 1.2.2
3
+ Version: 1.2.5
4
4
  Summary: A library for Geometry Dash level generation using .gmd files
5
5
  Author: IWiterI
6
6
  Project-URL: Homepage, https://github.com/ISviterI/dashcode
@@ -8,7 +8,7 @@ if os.path.exists("README.md"):
8
8
 
9
9
  setup(
10
10
  name="dashcode",
11
- version="1.2.2",
11
+ version="1.2.5",
12
12
  packages=find_packages(),
13
13
  author="IWiterI",
14
14
  description="A library for Geometry Dash level generation using .gmd files",
File without changes
File without changes
File without changes