Time Nick Message 00:10 ThreePac hello 12:24 kahrl Pull Request of the day: #645 Math fractal mapgen with external lib (10+ fractals) -- https://github.com/minetest/minetest/pull/645 12:24 kahrl I think either this or https://github.com/minetest/minetest/pull/659 should be closed 12:26 kahrl assuming the technical issues get fixed (unrelated commits, merge commits, code style differences, json in minetest.conf) should the math mapgen be added to core? 17:54 aracnus Hi! I'm needing a information about translating Minetest. This is the right channel? 17:55 Calinou yes 17:55 Calinou there's a weblate, aracnus 17:55 Calinou http://translate.minetest.ru/widgets/minetest/ 17:55 PilzAdam aracnus, http://translate.minetest.ru/projects/minetest/core/ 17:55 aracnus Yes, I used it to translate Minetest to pt-BR. 17:55 aracnus But I didn't find any items there. 17:55 Calinou :-O some lines in french are not translated, gonna translate them. 17:56 aracnus (tools, stones, weapons, etc...) 17:56 aracnus The interface is 100% translated, but I would like to translate itens too. Is it possible? 17:56 PilzAdam aracnus, yes, you cant translate them currently 17:57 Calinou with a mod, you can do that but it is server-side 17:58 aracnus That's something. I want to include Minetest on our educational distribution and it's very important that it is translated. 17:58 aracnus It will be use by children. :-) 17:58 aracnus And what module, Calinou? 17:58 PilzAdam you can directly go into the init.lua of mods and translate it there 17:59 Calinou no, use intllib 17:59 Calinou http://forum.minetest.net/viewtopic.php?id=4929 17:59 Calinou it isn't in any module 17:59 Calinou you use .txt files to translate 17:59 Calinou but again, it is server-side 17:59 Calinou so it only works on singleplayer pretty much 18:00 sfan5 "yes, you cant translate them currently" <- what? 18:00 aracnus But if I mount a server and other people access it, they'll see the translation, Calinou? 18:00 L4ndM1ne Calinou why did you kick me? 18:00 L4ndM1ne lol 18:00 sfan5 aracnus: yes 18:00 Calinou they will, but they will all see the same language 18:00 Calinou L4ndM1ne: for being an idiot and insulting people 18:00 Calinou how about you grow up? 18:01 L4ndM1ne i said nothing retard 18:01 aracnus Ok. That's what I want. :-) 18:01 Calinou newphag 18:01 L4ndM1ne well he is 18:01 Jordach Calinou, kick him 18:01 L4ndM1ne and he started being smart first 18:01 aracnus Thank you for the help, Calinou. :-) 18:01 L4ndM1ne jordach stfu albino fat fuck 18:01 Calinou nope, I can't here 18:01 sfan5 aracnus: you could also use my localisation mod, it uses .po files 18:01 sfan5 and can automatically generate templates for them 18:02 aracnus Hey, that would be great, sfan5. Where can I find it? 18:02 L4ndM1ne calinou you really didnt do anyhting 18:02 sfan5 aracnus: https://dl.dropboxusercontent.com/u/30267315/Minetest/localisationmod-mt.tar 18:02 L4ndM1ne im running on that HMA lol 18:02 L4ndM1ne i can get back in in 1 min 18:02 L4ndM1ne but i choose not too 18:02 PilzAdam thexyz, can you throw me +o? 18:03 aracnus Downloading it now. Thank you sfan5. 18:03 celeron55 ...too slow 8) 18:03 celeron55 only got myself identified by now 18:04 celeron55 thexyz: do you have privileges to give +o to people here? 18:04 celeron55 in chanserv 18:04 thexyz yes 18:04 Calinou you don't auto-identify? you can put your nickserv pass as server pass :P 18:04 celeron55 you could give to some active ones 18:04 thexyz i've given +ov to PilzAdam and Calinou 18:04 thexyz anybody else? 18:04 celeron55 Calinou: i don't see the point; i like anonymity 18:04 sfan5 aracnus: to use template-generating you need to create a /po directory and set a variable in init.lua, but make sure to set it to false after you're done 18:05 sfan5 aracnus: if you have questions ask me 18:05 sfan5 celeron55: /msg ChanServer access #minetest-dev list 18:05 sfan5 -er 18:07 aracnus sfan5: can I contact you by e-mail if I have questions? Or do you prefer here on IRC? 18:08 sfan5 aracnus: I can respond on IRC instantly 18:08 sfan5 IRC's better 18:09 aracnus Ok. I'll make some tests here and tomorrow maybe I have some results. 18:09 rubenwardy thexyz: #minetest-mods 18:09 Jordach why does anyone use minetest-mods 18:10 PilzAdam rubenwardy, minetest-mods is not registered IIRC 18:10 thexyz right 18:10 rubenwardy ah 18:10 rubenwardy so no kickban 18:11 PilzAdam /ignore should do the job 18:12 * sfan5 just tested http://www.exploit-db.com/exploits/25444/ -> kernel crashed 18:12 Calinou lol 18:13 sfan5 I shouldn't trust code that has "void sheep(uint32_t off) {" in it 18:13 hmmmm ummm 18:13 hmmmm do you realize what the point of that code is... 18:13 hmmmm why would you run it 18:15 sfan5 because .... 18:15 sfan5 that code is a local root exploit 18:15 PilzAdam you should always run code that you find in the internet 18:15 hmmmm are you not running amd64? 18:16 * sfan5 runs Linux 3.8.0-19-generic #30-Ubuntu SMP Wed May 1 16:35:23 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 18:17 * Calinou runs Linux calinou-desktop 3.8.0-19-generic #30-Ubuntu SMP Wed May 1 16:35:23 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 18:17 Calinou heh, it's a bit different 18:18 sfan5 its exactly the same, you just didn't remove your hostname from the output 18:18 Calinou ah 18:42 aracnus sfan5: just downloaded your mod and untared it on mods/minetest. What do I do next? 18:42 sfan5 install all mods you want to have translated 18:42 sfan5 create a "po" folder in every mod folder 18:43 sfan5 set the appropiate language in init.lua of mods/minetest/localisation 18:43 sfan5 oh and make all mods depend on "localisation" 18:43 sfan5 also add "localisation" to games/common/mods/default/depends.txt 18:44 PilzAdam common mods cant depend on normally installed mods 18:45 aracnus Ok. How can I make all mods depend on "localisation"? (sorry but I'm very newbie on lua and minetest internals) 18:45 rubenwardy sfan5: You could add localisation to common_mods in game.conf, and it will be loaded first. 18:45 rubenwardy cant you? 18:45 sfan5 rubenwardy: you should be able to 18:45 sfan5 <rubenwardy> sfan5: You could add localisation to common_mods in game.conf, and it will be loaded first. 18:45 sfan5 ^ try this aracnus 18:46 rubenwardy You have to put "localisation" into games/common 18:46 rubenwardy and "localisation" must be the first in the list of common mods 18:46 rubenwardy ie: 18:46 rubenwardy common_mods = localisation, default, bucket 18:47 aracnus Ok, I'll try it (but, in fact, I have any mods installed yet). One more question, sfan5, I saw a "translations.txt" file on your package. I'm guessing it is the "default" items of the game. Where do I put it? On mods/minetest? And it is automatically regenerated? 18:48 sfan5 the translations.txt file is not important for you unless you want german translations 18:49 aracnus No, I don't want it. :-) So, how do I generate default (not mod) items translation? 18:49 sfan5 have you did what rubenwardy said? 18:49 sfan5 *done 18:50 aracnus Just a minute. I think I did something wrong here. 18:50 sfan5 ok 18:55 aracnus All right. Did it. I have to put this set on every "game", right? (build, minimal, survival, minetest_game) 18:56 aracnus (if I want to generate any of them, of course) 18:57 PilzAdam aracnus, sfan5, can you move this discussion to a different channel? 18:57 sfan5 ok 18:57 aracnus ok 20:18 sapier https://github.com/minetest/minetest/pull/724 formspec based mainmenu feature complete and ready for final review 20:19 sfan5 thats a lot of commits 20:19 sapier I've done small changes most of time ... some are even bugfixes only 20:20 sapier as I mentioned I'm gonna squelch it once all remaining bugs are fixed 20:20 PilzAdam sapier, doc of tables should be in table format 20:21 PilzAdam i.e. {field1, field2} instead of table.field1; table.field2 20:22 sapier sorry don't understand what do you mean? 20:22 PilzAdam this https://github.com/minetest/minetest/pull/724/files#L2R26 should be like this:https://github.com/minetest/minetest/blob/master/doc/lua_api.txt#L1882 20:23 sapier ok I'll change 20:23 PilzAdam it should generally be more like lua-api.txt 20:24 sapier I tried to use same style as lua-api.txt ;-) 20:25 sapier what do you think is not lua-api.txt like except the tables descriptions? 20:25 PilzAdam lemme change it to what I think it should be 20:26 sapier of course do what you like it to be :-) 20:27 sapier but plz don't forget to test functionality ;-) 20:28 PilzAdam game.buttonhandler is not described at all 20:28 sapier it is 20:28 sapier line 19 ... but event_handler is missing 20:30 PilzAdam sapier, is selected_world = 0 needed for client mode? 20:31 sapier I think so yes 20:31 sapier indices are lua style 20:31 PilzAdam it would be better if just adress ~= "" specifies if its a client or not 20:32 PilzAdam are there some kind of default values for gamedata? 20:32 sapier i did change as less as possible in main.cpp 20:32 sapier no there aren't 20:34 sapier I've added the missing event documentation 20:34 PilzAdam is game.set_clouds(true/false) for the menu clouds? 20:34 sapier yes 20:35 PilzAdam why not just pass the gamedata to game.start()? 20:36 sapier cause I would have to check what to set or not set in game.start then 20:37 sapier main.cpp already does some plausibility checking I didn't want to add same thing over and over again 20:37 PilzAdam whats the format of game.get_game()[gamemods_path]? 20:39 sapier get_game returns a detailed game description as descriped right below function description 20:39 PilzAdam is gamemods_path just a string? 20:40 sapier oh you mean the field ... yes it's a string but I don't have any idea what this string means 20:40 sapier it's just everything known about the game 20:46 PilzAdam whats the format of get_worlds()? 20:47 sapier just a string list to be used in world listboxes 20:47 PilzAdam is it ["name"] = gameid? 20:47 sapier no 20:48 sapier it returns exactly what you see in textlist 20:48 sapier at least atm 20:48 PilzAdam "returns list of worldnames including gameid" 20:48 sapier I think about removing get_game and get_world and replace get_worlds by a table of detail informations 20:48 MinerOfLands you know that is useless calinou 20:48 MinerOfLands i can just come back 20:48 MinerOfLands :D 20:48 sapier yes "worldname " 20:49 MinerOfLands Oh, come on. Everyone has thoughts like this; it's only fucked up if you actually do them. Like thinking up the perfect crime or the perfect murder. What's the most deliciously atrocious way way to torture or break someone? Take me: I imagine a father and his teenage daughter, preferably around age 14. Abduct and lock them in separate, sound-proofe 20:49 MinerOfLands d rooms. Tell the father that either he has sexual intercourse with his daughter - forcibly if necessary - or I torture her to death slowly in front of his eyes. I have given him sufficient pharmaceutical aid that his 'faculties' are unimpaired by his emotional state. 20:49 sapier [ ] are not allowed for formspecs ;-) 20:50 sapier this is one of the differences to current mainmenu I can't fix 20:54 PilzAdam sapier, whats a listbox? 20:55 sapier hmm the irrlicht name of a "textlist" field ... naming should be consistent ture 20:55 sapier I'll fix this 20:58 PilzAdam is game.buttonhandler() called when a button is pressed? 20:58 sapier yes 20:59 PilzAdam without params? 20:59 sapier fields as in formspec handler but no form name 21:10 PilzAdam sapier, https://github.com/PilzAdam/minetest/commits/next_gen_main_menu 21:10 PilzAdam ummm, I suggest to not look at the diff but the actual file :-) 21:14 sapier I've fixed the last "listbox" occurence and pushed it 21:15 sapier thx for your help 21:22 PilzAdam sapier, I already get merge confilcts when rebasing against master :-( 21:23 sapier I'm not surprised rebasing multi commits did never work for me 21:23 sapier first this needs to be squelched to a single commit 21:24 sapier there are some reverted changes within this commit line too 21:24 PilzAdam it acutally doesnt matter how many commits there are 21:24 PilzAdam can you rebase it? Ill just fetch your branch again 21:24 sapier don't know what exactly is the reason it's just what I realized 21:25 sapier I'd prefere to have the fixes added prior squelching 21:25 PilzAdam well, if you rebase it now then we wont push any commits to master that effect the code you want to change 21:26 PilzAdam so a second rebase is not needed 21:26 sapier it's almost midnight ;-) wouldn't be a good idea to start now 21:27 PilzAdam its best working time now! 21:27 sapier not if you have to work tomorrow ;-P 21:27 PilzAdam hah! /me just finished his Abitur today 21:28 sapier congratulations ;-) 21:28 PilzAdam I have like 7 months free now :D 21:28 sapier ok there's a full game.cpp to be rewritten ;-) 21:29 sapier and of course doxygen documentation is missing almost everywhere ;-) 21:30 PilzAdam oh god, that will just bloat the code 21:30 PilzAdam its perfectly understandable as it is currently 21:30 sapier you're kidding? 21:31 PilzAdam no 21:32 sapier sorry pilzadam you may have a lot to learn about documentation yet ;-) 21:33 sapier documentation may seem to be additional work only ... but once you switch developers it's the only thing preventing the new ones from rewriting everything doing same mistakes again 21:38 hmmmm doxygen comments bloat up the code 21:38 sapier I don't deny that 21:38 hmmmm i'd rather put all the comments in a separate place, or at least just document the things that really actually need documenting that aren't completely obvious 21:38 sapier that's why they only are added to headers 21:38 sapier lol 21:39 sapier separate documentation ... 21:39 sapier creating this is wasted work 21:39 hmmmm i'm not opposed to it if you put it in the headers only 21:39 sapier that's what I wanted to suggest 21:40 sapier full doxygen function and parameter description in headers 21:40 PilzAdam /* Sets the x value @param int the x value to be set @return nothing, since it only sets the x value */ void setx(int x); 21:41 sapier usefull descriptions pilzadam 21:42 sapier and yes for some functions this is redundant but those are normaly < 1/10th of all functions ... help provided by other 9 compensates additional work of those 21:43 PilzAdam docuemntation in a different place would be actually quite useful 21:43 sapier no it isn't 21:43 PilzAdam like a web interface or so 21:43 sapier separate documentation is always out of date 21:43 sapier and out of date documentation is useless 21:44 PilzAdam http://docs.oracle.com/javase/7/docs/api/ 21:44 sapier is done with something at least doxygenlike 21:44 PilzAdam yea, but why need the docs in code _and_ in a web interface? 21:44 sapier and java api is quite stable ... a thing you can't tell about minetest api 21:45 sapier web doc is just rendered from code doc 21:45 PilzAdam you just say people are too lazy/stupid to keep the doc up to date 21:45 sapier they are but doxygen will tell you what's missing 21:46 sapier you don't get any assistance if your doc is separated from code 21:48 sapier it's just a suggestion ... currently there's no usable documentation at all once doxygen would be added doc could be automaticaly updated on each stable release 21:51 ShadowNinja Doxygen documentation would be nice. Seeing the comment reminds you to update it. 21:51 kahrl personally I noticed I don't gain much from doxygen-like comments 21:51 kahrl that's not to say they shouldn't be added 21:51 kahrl I gain more from stuff like this: http://c55.me/minetest2/wiki/doku.php?id=code:object_storage 21:51 sapier yes and could be autogenerated on each commit to showing commits not following conventions 21:52 sapier kahrl thats usefull too ... just it will be outdated and useless very soon ... and you can add comments like that wihin doxygen too 21:52 sapier and of course noone will ever find this without knowing it's there 21:53 kahrl well doxygen comments are more local than that I think 21:53 sapier everyone can create the doc on the fly and stable versions doc could be added to minetest website 21:54 sapier but of course I know about the amount of work to be done to get even near to finishing that task 21:54 kahrl why stable version? most people who work on the core will start from current git 21:55 sapier it's quite difficult to keep it actual if you don't want to update every day you have to define some intervals 21:55 kahrl just a cronjob that generates it daily 21:55 kahrl or would that add too much load? 21:55 sapier could be done too of course 21:56 sapier don't know how much load this would cause for full minetest documentation 21:57 sapier but if it's already checked for each pull request it shouldn't be a problem to update on commit too 21:57 ShadowNinja Every commit with a GitHub web hook and a limit. 21:57 ShadowNinja So a miximum of say once a day. 21:58 sapier yes but thats details if we really want to have this be aware that adding documentation (header only) is about 1 month of work (just a rough guess) 21:59 kahrl I would say add documentation while rewriting old stuff. Plus some documentation sprints perhaps 22:00 sapier forcing everyone adding new functions to add proper documentation prior merge ... 22:00 sapier hmm I think I have to do some work :-) 22:00 kahrl don't force it 22:00 sapier if it's not mandatory it's not done 22:00 kahrl doesn't make sense to doxygenize everything 22:01 sapier doesn't make sense to have any doxygen docu if it's not complete 22:01 sapier you'll lose lots of it's benefits 22:01 kahrl I dunno 22:01 kahrl there's a lot of simple function with arguments with self documenting names 22:02 kahrl functions* 22:02 sapier I know you can drive doxygen to insane levels but some minimum yet complete documentation is reducing overhead and is quite feasable 22:03 sapier I don't know how often I've been anoyed by functions like setX() not telling me what that damn X is 22:03 PilzAdam doesn't make sense to have any doxygen docu if it's not complete <- this is exactly why I dont want to start with it 22:03 PilzAdam we will have exactly this: /* Sets the x value @param int the x value to be set @return nothing, since it only sets the x value */ void setx(int x); 22:04 sapier pilzadam it's just a matter of decision waste time over and over and over again searching what some function is doing or using a big bunch of time to fix it once for all times 22:04 kahrl if you force people they will document stuff in the way PilzAdam showed 22:04 kahrl and they will say "sets X" and not say what X is 22:04 sapier yes but at least they will 22:05 kahrl why is that good? 22:05 sapier it's up to those ppl adding the commits to ensure a reasonable documentation ... if core developers don't support doxygenizing code it'll fail 22:06 ShadowNinja Can't doxygen list those functions without having a comment? 22:06 sapier no 22:06 ShadowNinja Hmmm, that should be added. 22:06 kahrl I support doxygenizing complex functions but not trivial ones 22:06 sapier at least it will show an error for each of it ... having so much trivial errors you can't use the error log to find the real ones 22:07 ShadowNinja Self-explanatory ones shouldn't require comments, but I think they should be listed. 22:07 sapier it's same as memory leaks ... I had to fix most of it (lots of trivial ones) to finde the ones beeing realy critical 22:07 sapier you often don't realize what "self-explanatory" is and what not 22:08 kahrl if I don't realize I won't write good comments... 22:08 sapier the often cited setX() for example 22:08 sapier it's not that usefull you may think 22:09 ShadowNinja Well that would be obvious in the context of a object in 3D space. 22:09 sapier but at least you'll have to think about it increasing chance you'll realize by 100% 22:09 sapier no it wouldn't shadowninja 22:09 ShadowNinja (Although setPos() would be better) 22:10 sapier setX may be X part of acceleration, velocity, coordinate, extent 22:10 ShadowNinja Hmmm, well yes. 22:10 sapier it doesn't tell if x is absolute or relative 22:11 ShadowNinja Although IMO the function should just be renamed is that obscure. 22:11 sapier once you think about it you realize there often is some information that specifies more exact what a function does 22:12 sapier sometimes you prefere short function names to avoid having lines like: 22:12 kahrl then someone changes it from absolute to relative and forgets to update the doxygen :P 22:13 sapier bsdfbsdg.dsdds().hsadifghg.hsdigfhsaighaighdg.(gsadgusdu.(),ajbfjasd()); 22:13 sapier kahrl of course you can always do mistakes ;-) 22:14 ShadowNinja Yes, some functions need documentation, but I don't think it should be mandatory. 22:14 sapier still it's just a suggestion if you don't like it I won't bother adding doxygen comments 22:14 sapier I still won't waste time if there's no chance to get some complete documentation anytime in future 22:15 kahrl well I'm not really a core dev, just happen to have push access 22:15 kahrl so my opinion doesn't really count 22:15 sapier I don't even have push access ;-) 22:15 kahrl maybe there should a poll for all core devs? 22:16 sapier good idea 22:16 kahrl s/should/should be/ 22:16 sapier hopefully developers don't only see the additional work required to do so 22:17 PilzAdam sapier, no, we also see the file bloat 22:17 PilzAdam ;-) 22:17 sapier if you stopp writing 1k liner files there won't be a bloat ;-) 22:17 kahrl actually I'm listed as a core dev so I guess I am ;) 22:18 sapier and headers with >200 lines are crazy adding 200 additional lines won't drive them even near to 1k 22:19 kahrl huh 22:19 kahrl C++ headers get larger than 200 lines quickly 22:19 sapier but I know it's a lot of additional work and requires developers to kick their own asses to do it ... it's same to me 22:20 sapier without documentation they don't ... if they do you're design most likely requires some rework 22:21 kahrl pathfinder.h is an example :P 22:21 sapier it's with complete documentation ;-) 22:22 kahrl ok fair enough :) 22:22 sapier and even with full documentation it's < 400 lines 22:22 sapier and 100 lines are debug code too ;-) 22:24 sapier and if you have a look at this file you may even realize worth of parameter documentation 22:24 kahrl but for example craftdef.h is 400 lines without documentation already 22:25 kahrl and I don't really see how it would be sanely made shorter 22:25 PilzAdam remove all "\n"? :-p 22:26 sapier craftdef.h is a collection of everything craft related ... you could argue about if this even should be all in same file 22:26 kahrl /** default constructor */ /** copy constructor */ /** assignment operator */ <-- I don't see the point of those 22:26 sapier makes sense once you have multiple constructors 22:26 kahrl but you can see what they are from the prototype 22:27 sapier no you can't 22:27 kahrl err 22:27 sapier e.g I don't have any idea what a IGameDef is 22:27 kahrl what does that have to do with anything? 22:27 sapier I just know it's a element for guiFormSpecMenu required for almost nothing 22:28 kahrl if you have a class called Class and you see Class(const Class&); you know it's a default constructor 22:28 kahrl copy* 22:28 sapier there are about 3 formspec fields requireing this so it seams to be optional in most cases ... adding a second constructor not requireing this parameter would show this oprionality 22:29 sapier it's just a matter of completeness 22:29 kahrl this is a case where I feel making it complete just adds bloat 22:30 sapier yes this is sometimes anoying ... but if you do something everytime chances you'll forget it will be less than if you happen to do it every once and then 22:30 kahrl I guess we'll have to agree to disagree about this 22:30 sapier have a look at my guiFormSpec cleanup ... especialy the parser functions ... header setting speaking names for parameters is completely redundant 22:30 sapier still it's way better to understand 22:31 sapier I even accept some performance penalty to do so as formspecs aren't generated thousands of times per second 22:32 sapier but lets ask others too what they think about it