sorcery  Diff

Differences From Artifact [6e17face1d]:

To Artifact [5df312f3fb]:


   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