Differences From
Artifact [6e17face1d]:
143 143 };
144 144 box = {
145 145 compat = 'boxes';
146 146 predicate = function(name)
147 147 local item = minetest.registered_items[name]
148 148 if item._sorcery and item._sorcery.container then
149 149 local ct = item._sorcery.container
150 - if ct.type == 'box' then return sorcery.lib.tbl.proto(ct, {
150 + if ct.type == 'box' then return sorcery.lib.tbl.merge({
151 151 charge = 8;
152 - }) end
152 + }, ct) end
153 153 end
154 154 end;
155 155 };
156 156 bucket = {
157 157 compat = 'buckets';
158 158 finagle = { type = 'bucket', hold = 'liquid', charge = 3 * 3, empty = 'bucket:bucket_empty'};
159 159
160 160 predicate = function(name)
161 161 local item = minetest.registered_items[name]
162 162 if item._sorcery and item._sorcery.container then
163 163 local ct = item._sorcery.container
164 - if ct.type == 'bucket' then return sorcery.lib.tbl.proto(ct, {
164 + if ct.type == 'bucket' then return sorcery.lib.tbl.merge({
165 165 charge = 3 * 3;
166 - }) end
166 + }, ct) end
167 167 end
168 168 end;
169 169 };
170 170 container = {
171 171 compat = 'containers';
172 172 subclass = {'vessel', 'box', 'bucket'}
173 173 };
................................................................................
184 184 end
185 185
186 186 if c.compat then
187 187 o = sorcery.data.compat[c.compat][name]
188 188 if o then
189 189 if c.finagle then
190 190 if type(c.finagle) == 'function' then
191 - return sorcery.lib.tbl.proto(c.finagle(o), o)
191 + return sorcery.lib.tbl.merge(o, c.finagle(o))
192 192 elseif type(o) == 'table' then
193 - return sorcery.lib.tbl.merge(c.finagle, o)
193 + return sorcery.lib.tbl.merge(o, c.finagle)
194 194 end
195 195 end
196 196 return o
197 197 end
198 198 end
199 199
200 200 if c.subclass then