about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2023-05-27 12:04:27 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2023-05-27 12:04:27 -0400
commit15f0dd00a39f6d3abcb81ff1cd338c84c9c3ebce (patch)
tree1119ff71a555699d0a60c67a698020bb74c0819e
parent867d8cf1bb1610663742c31ef7eb0d9550f2b53e (diff)
downloadlingo-archipelago-15f0dd00a39f6d3abcb81ff1cd338c84c9c3ebce.tar.gz
lingo-archipelago-15f0dd00a39f6d3abcb81ff1cd338c84c9c3ebce.tar.bz2
lingo-archipelago-15f0dd00a39f6d3abcb81ff1cd338c84c9c3ebce.zip
Painting names are loaded from the game now
This makes us update-resistant because we automatically get access to new paintings, and also it prevents issues where the names in the mod do not line up with the game's names, which have caused crashes in at least one MW.
-rw-r--r--Archipelago/load.gd32
-rw-r--r--Archipelago/paintingdata.gd189
2 files changed, 28 insertions, 193 deletions
diff --git a/Archipelago/load.gd b/Archipelago/load.gd index 6860de7..72bbd15 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd
@@ -1,5 +1,21 @@
1extends "res://scripts/load.gd" 1extends "res://scripts/load.gd"
2 2
3const EXCLUDED_PAINTINGS = [
4 "ascension.tscn",
5 "ascension_ne.tscn",
6 "ascension_nw.tscn",
7 "ascension_se.tscn",
8 "ascension_sw.tscn",
9 "frame.tscn",
10 "scenery_0.tscn",
11 "scenery_1.tscn",
12 "scenery_2.tscn",
13 "scenery_3.tscn",
14 "scenery_4.tscn",
15 "scenery_5.tscn",
16 "pilgrim.tscn"
17]
18
3 19
4func _load(): 20func _load():
5 global._print("Hooked Load Start") 21 global._print("Hooked Load Start")
@@ -195,13 +211,21 @@ func _load():
195 211
196 # Randomize the paintings, if necessary. 212 # Randomize the paintings, if necessary.
197 if apclient._painting_shuffle: 213 if apclient._painting_shuffle:
198 var pd_script = ResourceLoader.load("user://maps/Archipelago/paintingdata.gd") 214 var paintings_dir = Directory.new()
199 var pd = pd_script.new() 215 var all_paintings = []
216 if paintings_dir.open("res://nodes/paintings") == OK:
217 paintings_dir.list_dir_begin()
218 var file_name = paintings_dir.get_next()
219 while file_name != "":
220 if file_name.ends_with(".tscn") and not EXCLUDED_PAINTINGS.has(file_name):
221 all_paintings.append(file_name.trim_suffix(".tscn"))
222 file_name = paintings_dir.get_next()
223 paintings_dir.list_dir_end()
224
225 var pd = Node.new()
200 pd.set_name("AP_Paintings") 226 pd.set_name("AP_Paintings")
201 self.add_child(pd) 227 self.add_child(pd)
202 228
203 var all_paintings = pd.kALL_PAINTINGS
204
205 var classes = {} 229 var classes = {}
206 for painting in apclient._paintings_mapping.values(): 230 for painting in apclient._paintings_mapping.values():
207 if not classes.has(painting): 231 if not classes.has(painting):
diff --git a/Archipelago/paintingdata.gd b/Archipelago/paintingdata.gd deleted file mode 100644 index f82063d..0000000 --- a/Archipelago/paintingdata.gd +++ /dev/null
@@ -1,189 +0,0 @@
1extends Node
2
3const kALL_PAINTINGS = [
4 "arrows",
5 "beach",
6 "bg_1_stonks",
7 "bg_alison",
8 "bg_aquatechture",
9 "bg_automata",
10 "bg_barbell",
11 "bg_basketball",
12 "bg_bass",
13 "bg_bee",
14 "bg_bg1",
15 "bg_bg2",
16 "bg_bg3",
17 "bg_bg4",
18 "bg_bg5",
19 "bg_bg6",
20 "bg_bg7",
21 "bg_bg8",
22 "bg_bookshelf",
23 "bg_boxer",
24 "bg_box_black",
25 "bg_box_blue",
26 "bg_box_green",
27 "bg_box_orange",
28 "bg_box_purple",
29 "bg_box_red",
30 "bg_box_white",
31 "bg_bread",
32 "bg_breakfast",
33 "bg_breakout",
34 "bg_bright_square",
35 "bg_bush",
36 "bg_candle",
37 "bg_cannoe",
38 "bg_cannon",
39 "bg_car",
40 "bg_cat",
41 "bg_champion",
42 "bg_cheese",
43 "bg_chomp",
44 "bg_colin",
45 "bg_colorcentric",
46 "bg_cooking",
47 "bg_cow",
48 "bg_david",
49 "bg_distant_planet",
50 "bg_dragon_scale",
51 "bg_duck",
52 "bg_egg",
53 "bg_emt",
54 "bg_enigma",
55 "bg_farmer",
56 "bg_feeling_still",
57 "bg_fish2",
58 "bg_fish",
59 "bg_flowbot",
60 "bg_fourth",
61 "bg_fractured",
62 "bg_frog",
63 "bg_gene",
64 "bg_good_morning_sun",
65 "bg_good_night_moon",
66 "bg_grave",
67 "bg_great_wave",
68 "bg_grooves",
69 "bg_growth",
70 "bg_halloween_2",
71 "bg_hammering",
72 "bg_hazard",
73 "bg_hilbert",
74 "bg_interconnection",
75 "bg_in_the_weeds",
76 "bg_jhon",
77 "bg_knight",
78 "bg_knight_night",
79 "bg_laboratory",
80 "bg_life",
81 "bg_lingo",
82 "bg_long_nose",
83 "bg_magic_trick",
84 "bg_manifold_tree",
85 "bg_margret",
86 "bg_marshmallow",
87 "bg_mona_lisa",
88 "bg_moonbound",
89 "bg_mountain",
90 "bg_nose",
91 "bg_notnerb",
92 "bg_pear",
93 "bg_pearson",
94 "bg_pencils",
95 "bg_penguin",
96 "bg_planet_eclipse",
97 "bg_planet_gas_giant",
98 "bg_planet_ringed",
99 "bg_quarterly_review",
100 "bg_rabbit",
101 "bg_reacher",
102 "bg_roboworker",
103 "bg_sandcastle",
104 "bg_sax",
105 "bg_scorpion",
106 "bg_sheryl",
107 "bg_skew_tree",
108 "bg_snow_day",
109 "bg_spare",
110 "bg_sport_shirt",
111 "bg_squares",
112 "bg_stained_glass",
113 "bg_stakeout",
114 "bg_starry_night",
115 "bg_sub",
116 "bg_sushi",
117 "bg_taco",
118 "bg_talking",
119 "bg_teris",
120 "bg_timmy",
121 "bg_tomato",
122 "bg_trumpet",
123 "bg_two_tall",
124 "bg_watermelon",
125 "bg_waves",
126 "bg_wrench",
127 "blueman",
128 "boxes",
129 "catlike",
130 "cherry",
131 "clock",
132 "colors",
133 "crep",
134 "crown",
135 "egg",
136 "eight",
137 "electrons",
138 "emmy",
139 "ether",
140 "eyes",
141 "eyesyellow",
142 "flower",
143 "fruitbowl",
144 "garden",
145 "gardenexploded",
146 "hatkirby",
147 "hatman",
148 "hi",
149 "hi_solved",
150 "icy",
151 "ig_note",
152 "ig_rose",
153 "kiwi",
154 "knot",
155 "map",
156 "maze",
157 "mittens",
158 "ninjonicx",
159 "ninjonicx_square",
160 "noka",
161 "ntwiles",
162 "owl",
163 "panda",
164 "pattern_gold",
165 "pattern_gray",
166 "pattern_icely",
167 "pattern_purple",
168 "pattern_solar",
169 "pencil",
170 "rainbow",
171 "redman",
172 "rever",
173 "rm_tower",
174 "rubrica",
175 "samswine",
176 "smile",
177 "smile_red",
178 "snowman",
179 "symmetry",
180 "symmetry_2",
181 "taiji",
182 "tree",
183 "tst_box_black_lav",
184 "tst_box_magenta",
185 "tst_box_mint",
186 "undalevein",
187 "yinyang",
188 "zombie"
189]