Page 1 of 2

[Mod] Guidebook Library [guidebooks]

Posted: Wed Oct 30, 2019 05:16
by PolySaken
Image
A heavily extended version of an API from ocular_networks, guidebooks is a library mod which allows the creation of in-game documentation in the form of an item.
This item is called a 'book' internally (although it doesn't have to be a book to the user) and will open a formspec when used.
This formspec is easy to create, as you only need a width, height, and background image.
Each book can hold up to 28 'sections' which can hold pages, or subsections.
subsections can only hold pages.
pages are defined using two text fields but also support the use of a custom formspec string.

(This mod doesn't add any content on its own)
Spoiler

Code: Select all

-- API --

- Creating a new book 
guideBooks.Common.register_guideBook("modname:itemname", { --modname is the name of your mod, itemname is whatever you want
	description_short="Book",                              -- The name of your book
	description_long="A book about books",                 -- an optional field to give your book an extra description
	inventory_image="modname_book.png",                    -- The image of the book when in the inventory
	wield_image="modname_book_wield.png",                  -- An optional image of the book when in the hand
	style={                                                -- a table of values that describe how your book looks
		cover={                                            --- The very first page of your book
			w=5,                                           ---- how wide should the cover be?
			h=8,                                           ---- how tall should the cover be? 
			bg="modname_cover.png",                        ---- the file name of an image to use for the cover
			next="modname_next.png"                        ---- the filename of an image to use for the 'next page' button
		},
		page={                                             --- The generic page style
			w=10,                                          ---- How wide is the book? (2*cover width works best)
			h=8,                                           ---- How tall is the book? (usually same as cover height)
			bg="modname_bg.png",                           ---- the background image for the open book
			next="modname_next.png",                       ---- the filename of an image to use for the 'next page' button
			prev="modname_prev.png",                       ---- the filename of an image to use for the 'previous page' button
			start="modname_start.png"                      ---- the filename of an image to use for the 'first page' button
		},
		buttonGeneric="modname_button.png",                --- A generic button image
	}
})


-- Adding a section 
currently a maximum of 28 sections per index is supported, meaning a book can store 784 sections if all of the sections in the main index are masters.
(this can be circumvented by building custom directories using the 'extra' field of a page, but is not recommended)

guideBooks.Common.register_section(
	"modname:itemname",             -- The name of a registered book
	"section_1",                    -- The name to give the section, only string values supported
	{                               -- A list of preset values (you could also put page definitions here.)
		description="Section 1",    --- The display name of the section
		hidden=false,               --- Whether the section is visible in the main index (set to true to hide)
		master=false,               --- Whether this section leads to an index (set to true to create a new index under this section)
		slave=false,                --- Set to false to show in the main index, set to the name of another section to show in that index. cannot be used with master=true
		Pages={                		--- The pages to preload into the section (use only for certain instances when required)
			Index={}                ---- A special page used only by the 'Main' section that loads after the cover
		}
	}
)

The sections 'Hidden' and 'Main' exist in any book by default

-- adding pages
guideBooks.Common.register_page(
	"modname:itemname",                                       -- The name of a registered book
	"section_1",                                              -- The name of a section in the book
	1,                                                        -- the page number (or name in the case of special pages such as Index)
	{                                                         -- content definition
		text1="foo bar",                                      --- the text to display on the first half of the page
		text2="lorem ipsum dolor sit amet",                   --- the text to display on the second half of the page
		extra="background[0,0;5,8;modname_image.png;false]"   --- A minetest formspec string used to add extra content to a page, such as an image
	}
)

The page 'Index' exists in the 'Main' section by default but can be overriden.
Spoiler
Image
Image
Image
Image
Image
Download latest
Github
license of media and source: CC-BY-SA 4.0

no dependencies

Re: [Mod] Guidebook Library [guidebooks]

Posted: Wed Oct 30, 2019 14:12
by runs
Oh, impressive. It reminds me the Bethesda Games books :-)

Re: [Mod] Guidebook Library [guidebooks]

Posted: Wed Oct 30, 2019 15:55
by CalebJ
Very impressive indeed! This looks well done, I'll try it out soon :)

Re: [Mod] Guidebook Library [guidebooks]

Posted: Wed Oct 30, 2019 20:56
by PolySaken
Glad you guys like it! I'm planning to make support for unlockable sections, so that there is a degree of progression to the books.

Re: [Mod] Guidebook Library [guidebooks]

Posted: Wed Oct 30, 2019 22:29
by Sokomine
Looks very nice. Hope this and other book mods get a wider use on servers.

Re: [Mod] Guidebook Library [guidebooks]

Posted: Wed Oct 30, 2019 22:42
by PolySaken
Sokomine wrote:Looks very nice. Hope this and other book mods get a wider use on servers.
I've noticed that people don't seem to use the books in default much or at all in servers, which is pretty much the only place other than maps they might be useful.

Re: [Mod] Guidebook Library [guidebooks]

Posted: Fri Nov 15, 2019 16:15
by Lone_Wolf
Neat! I'll have to try this out...

Re: [Mod] Guidebook Library [guidebooks]

Posted: Fri Nov 15, 2019 22:52
by PolySaken
Lone_Wolf wrote:Neat! I'll have to try this out...
Could you show me your results? I'd like to know what people are using it for in order to tailor it to better suit a broader range of uses.

Re: [Mod] Guidebook Library [guidebooks]

Posted: Sat Nov 16, 2019 02:11
by Lone_Wolf
PolySaken wrote:
Lone_Wolf wrote:Neat! I'll have to try this out...
Could you show me your results? I'd like to know what people are using it for in order to tailor it to better suit a broader range of uses.
Sure, may be a while yet though. I have a few things to code until I get to the point where I'm adding books into the game lol

Re: [Mod] Guidebook Library [guidebooks]

Posted: Sat Nov 16, 2019 02:32
by PolySaken
Lone_Wolf wrote:
PolySaken wrote:
Lone_Wolf wrote:Neat! I'll have to try this out...
Could you show me your results? I'd like to know what people are using it for in order to tailor it to better suit a broader range of uses.
Sure, may be a while yet though. I have a few things to code until I get to the point where I'm adding books into the game lol
That's cool. What are you making?

Re: [Mod] Guidebook Library [guidebooks]

Posted: Sat Nov 16, 2019 02:34
by PolySaken
double post

Re: [Mod] Guidebook Library [guidebooks]

Posted: Sat Nov 16, 2019 02:36
by PolySaken
edit: removed doublepost

Re: [Mod] Guidebook Library [guidebooks]

Posted: Sat Nov 16, 2019 04:03
by PolySaken
The bug causing locked sections to show up when they're not supposed to has been fixed, Along with the ordering system.
Sections will now display in the order of registration rather than size.

Re: [Mod] Guidebook Library [guidebooks]

Posted: Mon Dec 09, 2019 07:41
by PolySaken
Attention: A bug has been discovered that causes crashing and corruption when more than one book is registered. Unless you have a fix, I wouldn't recommend using this mod for now.
(I have no idea why this bug is happening, it seems to be part of the show_formspec code)

Re: [Mod] Guidebook Library [guidebooks]

Posted: Mon Dec 09, 2019 15:52
by Lone_Wolf
PolySaken wrote:Attention: A bug has been discovered that causes crashing and corruption when more than one book is registered. Unless you have a fix, I wouldn't recommend using this mod for now.
(I have no idea why this bug is happening, it seems to be part of the show_formspec code)
What's the error?

Re: [Mod] Guidebook Library [guidebooks]

Posted: Tue Dec 10, 2019 04:06
by PolySaken
Lone_Wolf wrote:
PolySaken wrote:Attention: A bug has been discovered that causes crashing and corruption when more than one book is registered. Unless you have a fix, I wouldn't recommend using this mod for now.
(I have no idea why this bug is happening, it seems to be part of the show_formspec code)
What's the error?
The index page is not showing, despite all of the checks being met. In the rare event that it does, it shows for a few microseconds at most before crashing the game.

Re: [Mod] Guidebook Library [guidebooks]

Posted: Tue Dec 10, 2019 10:05
by Pyrollo
Hypertext formspec element and its markup language can improve your mod's look and feel. It's not yet in stable version, but you can yet test it on dev version.

Re: [Mod] Guidebook Library [guidebooks]

Posted: Tue Dec 10, 2019 22:20
by PolySaken
Pyrollo wrote:Hypertext formspec element and its markup language can improve your mod's look and feel. It's not yet in stable version, but you can yet test it on dev version.
Excuse me if I'm missing something, but this doesn't seem all that relevant. (Unless it's a general suggestion, In which case I'll look into it.)

Re: [Mod] Guidebook Library [guidebooks]

Posted: Tue Dec 10, 2019 22:21
by PolySaken
-removed doublepost-

Re: [Mod] Guidebook Library [guidebooks]

Posted: Thu Dec 19, 2019 01:43
by PolySaken
good news! I managed to fix the bug. (apparently setting the player's wielded item from inside on_player_receive_fields will cause any following code to terminate. i worked around this by using minetest.after(0))

Re: [Mod] Guidebook Library [guidebooks]

Posted: Fri Jan 31, 2020 23:44
by Wuzzy
This reminds me of Documentation System. :D

How does this mod differ?

Re: [Mod] Guidebook Library [guidebooks]

Posted: Sat Feb 01, 2020 01:46
by PolySaken
Wuzzy wrote:This reminds me of Documentation System. :D

How does this mod differ?
All the documentation is stored in and presented as actual in game book items. Also it can be used for lore or anything else, it's just a way to make predefined books with fancy menus and graphics.

Re: [Mod] Guidebook Library [guidebooks]

Posted: Sat Feb 01, 2020 02:37
by Wuzzy
Ah, interesting. This could be useful in other ways as well, for example create in-game lore as well. Nice.

Re: [Mod] Guidebook Library [guidebooks]

Posted: Wed Feb 26, 2020 03:59
by PolySaken
Putting the code ptype=true into your book's definition will now make it ignore the text2 element of every page. Useful for making books that act like digital screens or magic stone tablets.

Re: [Mod] Guidebook Library [guidebooks]

Posted: Sun May 03, 2020 19:25
by Merak
The white text color on a light brown background is difficult to read because of little contrast.