Differences From
Artifact [668ccf7fa8]:
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;