starlit  Diff

Differences From Artifact [668ccf7fa8]:

To Artifact [e24965a858]:


   118    118   	return function(stack, ...)
   119    119   		local function fail()
   120    120   			error(string.format('object %q is not a %s', stack:get_name(), ty))
   121    121   		end
   122    122   
   123    123   		if not stack or stack:is_empty() then fail() end
   124    124   
   125         -		if minetest.get_item_group(stack:get_name(), ty) == 0 then fail() end
          125  +		if core.get_item_group(stack:get_name(), ty) == 0 then fail() end
   126    126   
   127    127   		return fn(stack,
   128    128   		          stack:get_definition()._starlit[ty],
   129    129   		          stack:get_meta(), ...)
   130    130   	end
   131    131   end
   132    132   
................................................................................
   235    235   	totalPower = E.battery.charge;
   236    236   	initialPower = E.battery.capacity;
   237    237   	dischargeRate = E.battery.dischargeRate;
   238    238   	wasteHeat = function() return 0 end;
   239    239   };
   240    240   
   241    241   starlit.item.battery.foreach('starlit_electronics:battery-gen', {}, function(id, def)
   242         -	minetest.register_tool(id, {
          242  +	core.register_tool(id, {
   243    243   		short_description = def.name;
   244    244   		groups = { battery = 1; dynamo = 1; electronic = 1; };
   245    245   		inventory_image = def.img or 'starlit-item-battery.png';
   246    246   		description = starlit.ui.tooltip {
   247    247   			title = def.name;
   248    248   			desc = def.desc;
   249    249   			color = lib.color(0,.2,1);
................................................................................
   576    576   -----------
   577    577   -- chips --
   578    578   -----------
   579    579   
   580    580   E.sw = {}
   581    581   function E.sw.findSchematicFor(item)
   582    582   	local id = ItemStack(item):get_name()
   583         -	local fm = minetest.registered_items[id]._starlit
          583  +	local fm = core.registered_items[id]._starlit
   584    584   	if not (fm and fm.reverseEngineer) then return nil end
   585    585   	local id = fm.reverseEngineer.sw
   586    586   	return id, starlit.item.sw.db[id]
   587    587   end
   588    588   
   589    589   E.chip = { file = {} }
   590    590   do local T,G = lib.marshal.t, lib.marshal.g
................................................................................
   649    649   		elseif file.kind == 'note' then
   650    650   			local sz = 0x10 + #file.body.author
   651    651   			for _, e in pairs(file.body.entries) do
   652    652   				sz = sz + #e.title + #e.body + 0x10 -- header overhead
   653    653   			end
   654    654   			return sz
   655    655   		elseif file.kind == 'research' then
   656         -			local re = assert(minetest.registered_items[file.body.itemId]._starlit.reverseEngineer)
          656  +			local re = assert(core.registered_items[file.body.itemId]._starlit.reverseEngineer)
   657    657   			return starlit.item.sw.db[re.sw].size * file.body.progress
   658    658   		elseif file.kind == 'sw' then
   659    659   			return starlit.item.sw.db[file.body.pgmId].size
   660    660   		elseif file.kind == 'genome' then
   661    661   			return 0 -- TODO
   662    662   		end
   663    663   	end
................................................................................
   805    805   end
   806    806   
   807    807   function E.chip.update(chip)
   808    808   	chip:get_meta():set_string('description', E.chip.describe(chip))
   809    809   end
   810    810   
   811    811   starlit.item.chip.foreach('starlit_electronics:chip-gen', {}, function(id, def)
   812         -	minetest.register_craftitem(id, {
          812  +	core.register_craftitem(id, {
   813    813   		short_description = def.name;
   814    814   		description = E.chip.describe(def, true);
   815    815   		inventory_image = def.img or 'starlit-item-chip.png';
   816    816   		groups = {chip = 1};
   817    817   		_starlit = {
   818    818   			fab = def.fab;
   819    819   			chip = def;
................................................................................
   833    833   	compute = {name = 'Compute Chip', clockRate = 4e9, flash = 24e6, ram = 64e9, powerEfficiency = 1e9, size = 4};
   834    834   	data    = {name = 'Data Chip', clockRate = 128e3, flash = 2e12, ram = 32e3, powerEfficiency = 1e6, size = 4};
   835    835   	lp      = {name = 'Low-Power Chip', clockRate = 128e6, flash = 64e6, ram = 1e9, powerEfficiency = 1e11, size = 4};
   836    836   	carbon  = {name = 'Carbon Chip', clockRate = 64e6, flash = 32e6, ram = 2e6, powerEfficiency = 2e10, size = 2, circ='carbon'};
   837    837   }
   838    838   
   839    839   E.chip.tiers.foreach('starlit_electronics:genChips', {}, function(id, t)
   840         -	id = t.id or string.format('%s:chip_%s', minetest.get_current_modname(), id)
          840  +	id = t.id or string.format('%s:chip_%s', core.get_current_modname(), id)
   841    841   	local circMat = t.circ or 'silicon';
   842    842   	starlit.item.chip.link(id, {
   843    843   		name = t.name;
   844    844   		clockRate = t.clockRate;
   845    845   		flash = t.flash;
   846    846   		ram = t.ram;
   847    847   		powerEfficiency = t.powerEfficiency; -- cycles per joule
................................................................................
   938    938   			pgm = {starlit.item.sw.db[pgm]}
   939    939   		end
   940    940   		sw = pgm
   941    941   	else
   942    942   		sw = {}
   943    943   		for i, e in ipairs(chips) do
   944    944   			if (not e:is_empty())
   945         -			   and minetest.get_item_group(e:get_name(), 'chip') ~= 0
          945  +			   and core.get_item_group(e:get_name(), 'chip') ~= 0
   946    946   			then
   947    947   				for fl, inode in E.chip.files(e) do
   948    948   					if fl.kind == 'sw' then
   949    949   						local s = starlit.item.sw.db[fl.body.pgmId]
   950    950   						table.insert(sw, {
   951    951   							sw = s, chip = e, chipSlot = i;
   952    952   							file = fl, inode = inode;