aboutsummaryrefslogtreecommitdiff
path: root/fonts/lucida_sans_240.png
Commit message (Expand)AuthorAge
* Implement proper font handlingsapier2014-11-30
> 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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174--Minetest --Copyright (C) 2014 sapier -- --This program is free software; you can redistribute it and/or modify --it under the terms of the GNU Lesser General Public License as published by --the Free Software Foundation; either version 2.1 of the License, or --(at your option) any later version. -- --This program is distributed in the hope that it will be useful, --but WITHOUT ANY WARRANTY; without even the implied warranty of --MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --GNU Lesser General Public License for more details. -- --You should have received a copy of the GNU Lesser General Public License along --with this program; if not, write to the Free Software Foundation, Inc., --51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. mt_color_grey = "#AAAAAA" mt_color_blue = "#6389FF" mt_color_green = "#72FF63" mt_color_dark_green = "#25C191" --for all other colors ask sfan5 to complete his work! local menupath = core.get_mainmenu_path() local basepath = core.get_builtin_path() defaulttexturedir = core.get_texturepath_share() .. DIR_DELIM .. "base" .. DIR_DELIM .. "pack" .. DIR_DELIM dofile(basepath .. DIR_DELIM .. "common" .. DIR_DELIM .. "async_event.lua") dofile(basepath .. DIR_DELIM .. "common" .. DIR_DELIM .. "filterlist.lua") dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "buttonbar.lua") dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "dialog.lua") dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "tabview.lua") dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "ui.lua") dofile(menupath .. DIR_DELIM .. "common.lua") dofile(menupath .. DIR_DELIM .. "gamemgr.lua") dofile(menupath .. DIR_DELIM .. "modmgr.lua") dofile(menupath .. DIR_DELIM .. "store.lua") dofile(menupath .. DIR_DELIM .. "textures.lua") dofile(menupath .. DIR_DELIM .. "dlg_config_world.lua") dofile(menupath .. DIR_DELIM .. "dlg_settings_advanced.lua") if PLATFORM ~= "Android" then dofile(menupath .. DIR_DELIM .. "dlg_create_world.lua") dofile(menupath .. DIR_DELIM .. "dlg_delete_mod.lua") dofile(menupath .. DIR_DELIM .. "dlg_delete_world.lua") dofile(menupath .. DIR_DELIM .. "dlg_rename_modpack.lua") end local tabs = {} tabs.settings = dofile(menupath .. DIR_DELIM .. "tab_settings.lua") tabs.mods = dofile(menupath .. DIR_DELIM .. "tab_mods.lua") tabs.credits = dofile(menupath .. DIR_DELIM .. "tab_credits.lua") if PLATFORM == "Android" then tabs.simple_main = dofile(menupath .. DIR_DELIM .. "tab_simple_main.lua") else tabs.singleplayer = dofile(menupath .. DIR_DELIM .. "tab_singleplayer.lua") tabs.multiplayer = dofile(menupath .. DIR_DELIM .. "tab_multiplayer.lua") tabs.server = dofile(menupath .. DIR_DELIM .. "tab_server.lua") tabs.texturepacks = dofile(menupath .. DIR_DELIM .. "tab_texturepacks.lua") end return rawget(t, core.registered_aliases[name]) end } setmetatable(core.registered_items, alias_metatable) setmetatable(core.registered_nodes, alias_metatable) setmetatable(core.registered_craftitems, alias_metatable) setmetatable(core.registered_tools, alias_metatable) -- These item names may not be used because they would interfere -- with legacy itemstrings local forbidden_item_names = { MaterialItem = true, MaterialItem2 = true, MaterialItem3 = true, NodeItem = true, node = true, CraftItem = true, craft = true, MBOItem = true, ToolItem = true, tool = true, } local function check_modname_prefix(name) if name:sub(1,1) == ":" then -- Escape the modname prefix enforcement mechanism return name:sub(2) else -- Modname prefix enforcement local expected_prefix = core.get_current_modname() .. ":" if name:sub(1, #expected_prefix) ~= expected_prefix then error("Name " .. name .. " does not follow naming conventions: " .. "\"modname:\" or \":\" prefix required") end local subname = name:sub(#expected_prefix+1) if subname:find("[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]") then error("Name " .. name .. " does not follow naming conventions: " .. "contains unallowed characters") end return name end end function core.register_abm(spec) -- Add to core.registered_abms core.registered_abms[#core.registered_abms.init() end -- Create main tabview local tv_main = tabview_create("maintab", {x = 12, y = 5.4}, {x = 0, y = 0}) if PLATFORM == "Android" then tv_main:add(tabs.simple_main) tv_main:add(tabs.settings) else tv_main:set_autosave_tab(true) tv_main:add(tabs.singleplayer) tv_main:add(tabs.multiplayer) tv_main:add(tabs.server) tv_main:add(tabs.settings) tv_main:add(tabs.texturepacks) end tv_main:add(tabs.mods) tv_main:add(tabs.credits) tv_main:set_global_event_handler(main_event_handler) tv_main:set_fixed_size(false) if PLATFORM ~= "Android" then tv_main:set_tab(core.setting_get("maintab_LAST")) end ui.set_default("maintab") tv_main:show() -- Create modstore ui if PLATFORM == "Android" then modstore.init({x = 12, y = 6}, 3, 2) else modstore.init({x = 12, y = 8}, 4, 3) end ui.update() core.sound_play("main_menu", true) end init_globals() stered_craftitems[itemdef.name] = itemdef elseif itemdef.type == "tool" then setmetatable(itemdef, {__index = core.tooldef_default}) core.registered_tools[itemdef.name] = itemdef elseif itemdef.type == "none" then setmetatable(itemdef, {__index = core.noneitemdef_default}) else error("Unable to register item: Type is invalid: " .. dump(itemdef)) end -- Flowing liquid uses param2 if itemdef.type == "node" and itemdef.liquidtype == "flowing" then itemdef.paramtype2 = "flowingliquid" end -- BEGIN Legacy stuff if itemdef.cookresult_itemstring ~= nil and itemdef.cookresult_itemstring ~= "" then core.register_craft({ type="cooking", output=itemdef.cookresult_itemstring, recipe=itemdef.name, cooktime=itemdef.furnace_cooktime }) end if itemdef.furnace_burntime ~= nil and itemdef.furnace_burntime >= 0 then core.register_craft({ type="fuel", recipe=itemdef.name, burntime=itemdef.furnace_burntime }) end -- END Legacy stuff -- Disable all further modifications getmetatable(itemdef).__newindex = {} --core.log("Registering item: " .. itemdef.name) core.registered_items[itemdef.name] = itemdef core.registered_aliases[itemdef.name] = nil register_item_raw(itemdef) end function core.register_node(name, nodedef) nodedef.type = "node" core.register_item(name, nodedef) end function core.register_craftitem(name, craftitemdef) craftitemdef.type = "craft" -- BEGIN Legacy stuff if craftitemdef.inventory_image == nil and craftitemdef.image ~= nil then craftitemdef.inventory_image = craftitemdef.image end -- END Legacy stuff core.register_item(name, craftitemdef) end function core.register_tool(name, tooldef) tooldef.type = "tool" tooldef.stack_max = 1 -- BEGIN Legacy stuff if tooldef.inventory_image == nil and tooldef.image ~= nil then tooldef.inventory_image = tooldef.image end if tooldef.tool_capabilities == nil and (tooldef.full_punch_interval ~= nil or tooldef.basetime ~= nil or tooldef.dt_weight ~= nil or tooldef.dt_crackiness ~= nil or tooldef.dt_crumbliness ~= nil or tooldef.dt_cuttability ~= nil or tooldef.basedurability ~= nil or tooldef.dd_weight ~= nil or tooldef.dd_crackiness ~= nil or tooldef.dd_crumbliness ~= nil or tooldef.dd_cuttability ~= nil) then tooldef.tool_capabilities = { full_punch_interval = tooldef.full_punch_interval, basetime = tooldef.basetime, dt_weight = tooldef.dt_weight, dt_crackiness = tooldef.dt_crackiness, dt_crumbliness = tooldef.dt_crumbliness, dt_cuttability = tooldef.dt_cuttability, basedurability = tooldef.basedurability, dd_weight = tooldef.dd_weight, dd_crackiness = tooldef.dd_crackiness, dd_crumbliness = tooldef.dd_crumbliness, dd_cuttability = tooldef.dd_cuttability, } end -- END Legacy stuff core.register_item(name, tooldef) end function core.register_alias(name, convert_to) if forbidden_item_names[name] then error("Unable to register alias: Name is forbidden: " .. name) end if core.registered_items[name] ~= nil then core.log("WARNING: Not registering alias, item with same name" .. " is already defined: " .. name .. " -> " .. convert_to) else --core.log("Registering alias: " .. name .. " -> " .. convert_to) core.registered_aliases[name] = convert_to register_alias_raw(name, convert_to) end end local register_biome_raw = core.register_biome core.registered_biomes = {} function core.register_biome(biome) core.registered_biomes[biome.name] = biome register_biome_raw(biome) end function core.on_craft(itemstack, player, old_craft_list, craft_inv) for _, func in ipairs(core.registered_on_crafts) do itemstack = func(itemstack, player, old_craft_list, craft_inv) or itemstack end return itemstack end function core.craft_predict(itemstack, player, old_craft_list, craft_inv) for _, func in ipairs(core.registered_craft_predicts) do itemstack = func(itemstack, player, old_craft_list, craft_inv) or itemstack end return itemstack end -- Alias the forbidden item names to "" so they can't be -- created via itemstrings (e.g. /give) local name for name in pairs(forbidden_item_names) do core.registered_aliases[name] = "" register_alias_raw(name, "") end -- Deprecated: -- Aliases for core.register_alias (how ironic...) --core.alias_node = core.register_alias --core.alias_tool = core.register_alias --core.alias_craftitem = core.register_alias -- -- Built-in node definitions. Also defined in C. -- core.register_item(":unknown", { type = "none", description = "Unknown Item", inventory_image = "unknown_item.png", on_place = core.item_place, on_drop = core.item_drop, groups = {not_in_creative_inventory=1}, diggable = true, }) core.register_node(":air", { description = "Air (you hacker you!)", inventory_image = "unknown_node.png", wield_image = "unknown_node.png", drawtype = "airlike", paramtype = "light", sunlight_propagates = true, walkable = false, pointable = false, diggable = false, buildable_to = true, air_equivalent = true, drop = "", groups = {not_in_creative_inventory=1}, }) core.register_node(":ignore", { description = "Ignore (you hacker you!)", inventory_image = "unknown_node.png", wield_image = "unknown_node.png", drawtype = "airlike", paramtype = "none", sunlight_propagates = false, walkable = false, pointable = false, diggable = false, buildable_to = true, -- A way to remove accidentally placed ignores air_equivalent = true, drop = "", groups = {not_in_creative_inventory=1}, }) -- The hand (bare definition) core.register_item(":", { type = "none", groups = {not_in_creative_inventory=1}, }) function core.override_item(name, redefinition) if redefinition.name ~= nil then error("Attempt to redefine name of "..name.." to "..dump(redefinition.name), 2) end if redefinition.type ~= nil then error("Attempt to redefine type of "..name.." to "..dump(redefinition.type), 2) end local item = core.registered_items[name] if not item then error("Attempt to override non-existent item "..name, 2) end for k, v in pairs(redefinition) do rawset(item, k, v) end register_item_raw(item) end function core.run_callbacks(callbacks, mode, ...) assert(type(callbacks) == "table") local cb_len = #callbacks if cb_len == 0 then if mode == 2 or mode == 3 then return true elseif mode == 4 or mode == 5 then return false end end local ret = nil for i = 1, cb_len do local cb_ret = callbacks[i](...) if mode == 0 and i == 1 then ret = cb_ret elseif mode == 1 and i == cb_len then ret = cb_ret elseif mode == 2 then if not cb_ret or i == 1 then ret = cb_ret end elseif mode == 3 then if cb_ret then return cb_ret end ret = cb_ret elseif mode == 4 then if (cb_ret and not ret) or i == 1 then ret = cb_ret end elseif mode == 5 and cb_ret then return cb_ret end end return ret end -- -- Callback registration -- local function make_registration() local t = {} local registerfunc = function(func) table.insert(t, func) end return t, registerfunc end local function make_registration_reverse() local t = {} local registerfunc = function(func) table.insert(t, 1, func) end return t, registerfunc end core.registered_on_chat_messages, core.register_on_chat_message = make_registration() core.registered_globalsteps, core.register_globalstep = make_registration() core.registered_playerevents, core.register_playerevent = make_registration() core.registered_on_mapgen_inits, core.register_on_mapgen_init = make_registration() core.registered_on_shutdown, core.register_on_shutdown = make_registration() core.registered_on_punchnodes, core.register_on_punchnode = make_registration() core.registered_on_placenodes, core.register_on_placenode = make_registration() core.registered_on_dignodes, core.register_on_dignode = make_registration() core.registered_on_generateds, core.register_on_generated = make_registration() core.registered_on_newplayers, core.register_on_newplayer = make_registration() core.registered_on_dieplayers, core.register_on_dieplayer = make_registration() core.registered_on_respawnplayers, core.register_on_respawnplayer = make_registration() core.registered_on_prejoinplayers, core.register_on_prejoinplayer = make_registration() core.registered_on_joinplayers, core.register_on_joinplayer = make_registration() core.registered_on_leaveplayers, core.register_on_leaveplayer = make_registration() core.registered_on_player_receive_fields, core.register_on_player_receive_fields = make_registration_reverse() core.registered_on_cheats, core.register_on_cheat = make_registration() core.registered_on_crafts, core.register_on_craft = make_registration() core.registered_craft_predicts, core.register_craft_predict = make_registration() core.registered_on_protection_violation, core.register_on_protection_violation = make_registration() core.registered_on_item_eats, core.register_on_item_eat = make_registration()