forked from minetest-mods/unified_inventory
		
	Craftguide: Use better tooltips for group buttons
This commit is contained in:
		
							
								
								
									
										23
									
								
								group.lua
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								group.lua
									
									
									
									
									
								
							| @@ -1,3 +1,5 @@ | |||||||
|  | local S = unified_inventory.gettext | ||||||
|  |  | ||||||
| function unified_inventory.canonical_item_spec_matcher(spec) | function unified_inventory.canonical_item_spec_matcher(spec) | ||||||
| 	local specname = ItemStack(spec):get_name() | 	local specname = ItemStack(spec):get_name() | ||||||
| 	if specname:sub(1, 6) == "group:" then | 	if specname:sub(1, 6) == "group:" then | ||||||
| @@ -21,6 +23,27 @@ function unified_inventory.item_matches_spec(item, spec) | |||||||
| 	return unified_inventory.canonical_item_spec_matcher(spec)(itemname) | 	return unified_inventory.canonical_item_spec_matcher(spec)(itemname) | ||||||
| end | end | ||||||
|  |  | ||||||
|  | function unified_inventory.extract_groupnames(groupname) | ||||||
|  | 	local specname = ItemStack(groupname):get_name() | ||||||
|  | 	if specname:sub(1, 6) == "group:" then | ||||||
|  | 		local group_names = specname:sub(7):split(",") | ||||||
|  | 		if #group_names == 1 then | ||||||
|  | 			return group_names[1], 1 | ||||||
|  | 		end | ||||||
|  | 		local s = "" | ||||||
|  | 		for g=1,#group_names do | ||||||
|  | 			if g > 1 then | ||||||
|  | 				-- List connector | ||||||
|  | 				s = s .. S(" and ") | ||||||
|  | 			end | ||||||
|  | 			s = s .. group_names[g] | ||||||
|  | 		end | ||||||
|  | 		return s, #group_names | ||||||
|  | 	else | ||||||
|  | 		return nil, 0 | ||||||
|  | 	end | ||||||
|  | end | ||||||
|  |  | ||||||
| unified_inventory.registered_group_items = { | unified_inventory.registered_group_items = { | ||||||
| 	mesecon_conductor_craftable = "mesecons:wire_00000000_off", | 	mesecon_conductor_craftable = "mesecons:wire_00000000_off", | ||||||
| 	stone = "default:cobble", | 	stone = "default:cobble", | ||||||
|   | |||||||
| @@ -57,6 +57,8 @@ Show next usage = Nächste Verwendung zeigen | |||||||
| Show previous recipe = Vorheriges Rezept zeigen | Show previous recipe = Vorheriges Rezept zeigen | ||||||
| Show previous usage = Vorherige Verwendung zeigen | Show previous usage = Vorherige Verwendung zeigen | ||||||
| This recipe is too\nlarge to be displayed. = Dieses Rezept ist zu\ngroß, um angezeigt\nzu werden. | This recipe is too\nlarge to be displayed. = Dieses Rezept ist zu\ngroß, um angezeigt\nzu werden. | ||||||
|  | Any item belonging to the %s group = Irgendein Gegenstand, der zur Gruppe %s gehört | ||||||
|  | Any item belonging to the groups %s = Irgendein Gegenstand, der zu den Gruppen %s gehört | ||||||
| Recipe %d of %d = Rezept %d von %d | Recipe %d of %d = Rezept %d von %d | ||||||
| Usage %d of %d = Verwendung %d von %d | Usage %d of %d = Verwendung %d von %d | ||||||
| No recipes = Keine Rezepte | No recipes = Keine Rezepte | ||||||
| @@ -71,6 +73,9 @@ Clear inventory = Inventar leeren | |||||||
| Give me: = Gib mir: | Give me: = Gib mir: | ||||||
| To craft grid: = Ins Fertigungsraster: | To craft grid: = Ins Fertigungsraster: | ||||||
|  |  | ||||||
|  | ### group.lua ### | ||||||
|  | \sand\s=\sund\s | ||||||
|  |  | ||||||
| ### waypoints.lua ### | ### waypoints.lua ### | ||||||
| White = Weiß | White = Weiß | ||||||
| Yellow = Gelb | Yellow = Gelb | ||||||
|   | |||||||
| @@ -60,6 +60,10 @@ Show previous recipe = | |||||||
| Show previous usage =  | Show previous usage =  | ||||||
| # Shown for huge crafting recipes; try to keep the line length short and use multiple line breaks as needed | # Shown for huge crafting recipes; try to keep the line length short and use multiple line breaks as needed | ||||||
| This recipe is too\nlarge to be displayed. =  | This recipe is too\nlarge to be displayed. =  | ||||||
|  | # %s = group name (e.g. wool) | ||||||
|  | Any item belonging to the %s group =  | ||||||
|  | # %s = List of “and”-concatenated group names | ||||||
|  | Any item belonging to the groups %s = | ||||||
| Recipe %d of %d =  | Recipe %d of %d =  | ||||||
| Usage %d of %d =  | Usage %d of %d =  | ||||||
| No recipes = | No recipes = | ||||||
| @@ -74,6 +78,10 @@ Clear inventory = | |||||||
| Give me: = | Give me: = | ||||||
| To craft grid: = | To craft grid: = | ||||||
|  |  | ||||||
|  | ### group.lua ### | ||||||
|  | # Logical connective, example: “Any item belonging to the groups foo and bar” | ||||||
|  | \sand\s =  | ||||||
|  |  | ||||||
| ### waypoints.lua ### | ### waypoints.lua ### | ||||||
| White =  | White =  | ||||||
| Yellow =  | Yellow =  | ||||||
|   | |||||||
							
								
								
									
										21
									
								
								register.lua
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								register.lua
									
									
									
									
									
								
							| @@ -188,11 +188,24 @@ local function stack_image_button(x, y, w, h, buttonname_prefix, item) | |||||||
| 		selectitem = group_item.sole and displayitem or name | 		selectitem = group_item.sole and displayitem or name | ||||||
| 	end | 	end | ||||||
| 	local label = show_is_group and "G" or "" | 	local label = show_is_group and "G" or "" | ||||||
| 	return string.format("item_image_button[%f,%f;%f,%f;%s;%s;%s]", | 	local buttonname = minetest.formspec_escape(buttonname_prefix..unified_inventory.mangle_for_formspec(selectitem)) | ||||||
|  | 	local button = string.format("item_image_button[%f,%f;%f,%f;%s;%s;%s]", | ||||||
| 			x, y, w, h, | 			x, y, w, h, | ||||||
| 			minetest.formspec_escape(displayitem), | 			minetest.formspec_escape(displayitem), buttonname, label) | ||||||
| 			minetest.formspec_escape(buttonname_prefix..unified_inventory.mangle_for_formspec(selectitem)), | 	if show_is_group then | ||||||
| 			label) | 		local groupstring, andcount = unified_inventory.extract_groupnames(name) | ||||||
|  | 		local grouptip | ||||||
|  | 		if andcount == 1 then | ||||||
|  | 			grouptip = string.format(S("Any item belonging to the %s group"), groupstring) | ||||||
|  | 		elseif andcount > 1 then | ||||||
|  | 			grouptip = string.format(S("Any item belonging to the groups %s"), groupstring) | ||||||
|  | 		end | ||||||
|  | 		grouptip = minetest.formspec_escape(grouptip) | ||||||
|  | 		if andcount >= 1 then | ||||||
|  | 			button = button  .. string.format("tooltip[%s;%s]", buttonname, grouptip) | ||||||
|  | 		end | ||||||
|  | 	end | ||||||
|  | 	return button | ||||||
| end | end | ||||||
|  |  | ||||||
| local recipe_text = { | local recipe_text = { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user