-
Notifications
You must be signed in to change notification settings - Fork 0
/
CustomVouchers.lua
111 lines (98 loc) · 2.77 KB
/
CustomVouchers.lua
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
104
105
106
107
108
109
110
111
--- STEAMODDED HEADER
--- MOD_NAME: Feder API - Custom Vouchers
--- MOD_ID: FederAPI_CustomVouchers
--- MOD_AUTHOR: [itayfeder]
--- MOD_DESCRIPTION: Part of the Feder API. Add the ability to create custom vouchers.
----------------------------------------------
------------MOD CODE -------------------------
SMODS.Vouchers = {}
SMODS.Voucher = {
name = "",
slug = "",
cost = 10,
config = {},
pos = {},
loc_txt = {},
discovered = false,
unlocked = true,
available = true
}
function SMODS.Voucher:new(name, slug, config, pos, loc_txt, cost, unlocked, discovered, available,
eternal_compat)
o = {}
setmetatable(o, self)
self.__index = self
o.loc_txt = loc_txt
o.name = name
o.slug = "v_" .. slug
o.config = config or {}
o.pos = pos or {
x = 0,
y = 0
}
o.cost = cost
o.unlocked = unlocked or true
o.discovered = discovered or false
o.available = available or true
return o
end
function SMODS.Voucher:register()
SMODS.Vouchers[self.slug] = self
local minId = table_length(G.P_CENTER_POOLS['Voucher']) + 1
local id = 0
local i = 0
i = i + 1
-- Prepare some Datas
id = i + minId
local voucher_obj = {
discovered = self.discovered,
available = self.available,
name = self.name,
set = "Voucher",
unlocked = self.unlocked,
order = id,
key = self.slug,
pos = self.pos,
config = self.config,
cost = self.cost
}
for _i, sprite in ipairs(SMODS.Sprites) do
sendDebugMessage(sprite.name)
sendDebugMessage(voucher_obj.key)
if sprite.name == voucher_obj.key then
voucher_obj.atlas = sprite.name
end
end
-- Now we replace the others
G.P_CENTERS[self.slug] = voucher_obj
table.insert(G.P_CENTER_POOLS['Voucher'], voucher_obj)
-- Setup Localize text
G.localization.descriptions["Voucher"][self.slug] = self.loc_txt
-- Load it
for g_k, group in pairs(G.localization) do
if g_k == 'descriptions' then
for _, set in pairs(group) do
for _, center in pairs(set) do
center.text_parsed = {}
for _, line in ipairs(center.text) do
center.text_parsed[#center.text_parsed + 1] = loc_parse_string(line)
end
center.name_parsed = {}
for _, line in ipairs(type(center.name) == 'table' and center.name or {center.name}) do
center.name_parsed[#center.name_parsed + 1] = loc_parse_string(line)
end
if center.unlock then
center.unlock_parsed = {}
for _, line in ipairs(center.unlock) do
center.unlock_parsed[#center.unlock_parsed + 1] = loc_parse_string(line)
end
end
end
end
end
end
sendDebugMessage("The Voucher named " .. self.name .. " with the slug " .. self.slug ..
" have been registered at the id " .. id .. ".")
end
----------------------------------------------
------------MOD CODE END----------------------