Time Nick Message 00:24 ShadowNinja https://github.com/minetest/minetest/blob/master/builtin/mainmenu_helper.lua#L59 It seems this replaces newlines with spaces. Why? 09:20 kahrl https://github.com/minetest/minetest/issues/822 09:21 kahrl ^ causes VanessaE's server to be down currently 19:33 sapier ShadowNinja newlines are replaced because there is exactly one gui element that is capable of newlines and that one isn't very often used within mainmenu. In all other gui elements newlines will result in major graphics glitches. Decision is to either let newlines in, resulting in test not beeing drawn at all or replace them so at least the information is preserved. 19:34 sapier ok it's preserved as far as possible if there's no space left it can't be shown anymore 19:34 ShadowNinja sapier: Shouldn't you not convert them and have usrs fix mods if they have newlines? That way you can use that one graphical element. 19:35 sapier the escape function isn't called automaticaly 19:35 sapier but maybe adding a bool value to the escape function would be a nice feature for menu programmers 19:40 ShadowNinja sapier: Also, why mainmenu_helpers.lua and not just helpers.lua? 19:41 sapier actualy I wanted to distinguish between server lua files and mainmenu files but ... yes it's not consistent with modmgr modstore and gamemgr too 19:42 sapier I already thought about renaming those but atm I'm still looking for a better option 19:49 ShadowNinja sapier: dofile(minetest.get_modpath("__builtin").."misc_helpers.lua") In the main mainmenu file. 19:52 sapier yes I guess that's a usefull optmization now after almost all helpers have been added to mainmenu_helper too 19:53 sapier right after the bugfixes ;-) 20:07 sapier https://github.com/minetest/minetest/pull/823 plz check and merge: alphabetic sorting, selection of new created world 20:08 sfan5 sapier: one word: squash 20:09 sapier no 20:09 PilzAdam sfan5, the core dev who merges it can squash it 20:09 PilzAdam sapier, Ill test it 20:09 sapier I won't squash different features anymore as they can't be merged separatly if squashed 20:10 sapier btw the first 2 ones should already be merged to core 20:10 PilzAdam "util/updatepo.s doesnt work anymore is a can't fix" <- this means "I will gladly update all the .po files by hand in the future, since I have broken our utils" 20:11 sapier if you don't want that you'll have to remove formspec menu completely I don't se any way to parse texts from buttons 20:12 sapier i18n is known to be broken since I first proposed formspec menu 20:14 PilzAdam thats not good 20:14 sapier but maybe we can add a core feature to create po files in runtime ... while this could be used by mods too it requires each gui element to be activated to be saved to the file 20:17 PilzAdam "No newline at end of file" be sure to have an empty line at the end of files 20:19 sapier can someone explain to me why this is a problem? ... yes I know some compilers etc complain about it but I still don't undertand why it should be a problem 20:19 PilzAdam its better code style 20:19 PilzAdam it looks too cut-off if there isnt one 20:19 sapier coding style for purpose of coding style isn't a reason 20:20 PilzAdam also since almost everyone does it, you can be sure that your editor doesnt miss a line 20:20 sapier if anyone is happy with nsa surveillance I still wont be ;-) ... but I guess you don't know a real reason too 20:21 PilzAdam I just listed 2 reasons.... 20:22 sapier looks cut of and everyone does it are no reasons and why should a editor miss a line I'm the one writing the lines? ;-) 20:22 proller sapier, did you fix public server description? 20:22 proller with port and flags 20:23 sapier what exactly do you mean? I fixed some things about public server list yesterday ... don't remember anything about flags 20:23 PilzAdam sapier, uniformity is a major reason why we have code style guidelins at all; so "everyone does it" is a completly valid reason 20:24 PilzAdam sapier, https://github.com/PilzAdam/minetest/commit/52beafff5310ae9fd0078af38ac2bb9142ac2cfb 20:24 sapier any good coding style rule has at least some real reason "just because anyone does" it isn't one ... improves readability e.g. is one 20:26 PilzAdam what about using right and left key to switch the game? 20:26 sapier your commit seems do be fine 20:26 sapier interesting idea but I suggest adding this later 20:26 PilzAdam and alt + left/right switching tab or so 20:26 sapier no 20:28 sapier at least not by me :-) modifyer keys are something completely different irrlicht is already unable to cope with doubleclicks ;-) 20:28 kahrl sapier, I often use unix tools (grep, sed, awk, ...) to work on minetest 20:28 kahrl and I don't know if all of them handle a missing newline at the end gracefully 20:29 sapier hmmm as the newline rule seems to be more common on unix that might even be the real reason for it ... thx kahrl 20:29 PilzAdam sapier, updated #814 20:30 thexyz we need lua codestyle guidelines 20:30 sapier what about the "All the mods of modpacks" how do we want to fix it? treelists in lua aren't available right now 20:30 PilzAdam thexyz, just look at what we already have in builtin and minetest_game 20:31 sapier thexyz true but who should write them the c++ coders or the modders? 20:31 PilzAdam sapier, treelists would be a good solution 20:31 sapier but not very intuitive to be built as formspec 20:32 sapier not talking about selection handling 20:32 PilzAdam maybe just show all the sub-mods of modpacks if one of the mods or the modpack is selected 20:33 thexyz sapier: I vote for celeron55 20:33 sapier still quite complex ... what about a similar way I took for game mods? 20:34 sapier a checkbox if selected all modpack mods are shown too (in different color) if not they're hidden 20:34 PilzAdam maybe 20:35 PilzAdam btw, the "Hide Game" looks very missplaced at the bottom 20:35 sapier if you know a better place ;-) 20:35 sapier hmm I already dislike my suggestion ... it'll require a list handling as complex as worldlist handling :-( 20:35 PilzAdam I just noticed that I have 2 "abhängig von" lists 20:36 sapier oops .. one should be named different 20:37 PilzAdam ... and the "Hide Game" switch doesnt even work for me 20:37 sapier do you have game mods? 20:37 PilzAdam minetest_game 20:37 sapier they should be shown in blue 20:37 PilzAdam they arent 20:38 sapier I wonder what broke them again 20:38 PilzAdam it works in Pilztest 20:38 sapier strange 20:39 PilzAdam and there is much debug output printed to console 20:39 sapier debug output by which part? 20:40 PilzAdam e.g. "checkbox nether disabled", "found disabled mod: >nuke<" 20:40 PilzAdam and the "Enable all" button is missing 20:41 sapier :-) plz update 814 20:41 sapier wait 20:41 sapier enable all is available for modpacks only 20:42 PilzAdam there should be one for all mods 20:42 kahrl btw it shouldn't look for depends.txt in modpacks, I don't think the core loads them 20:42 sapier as far as I remember depends.txt is used to decide if it's a modpack or not 20:43 kahrl no, modpack.txt 20:43 sapier ahh yes 20:43 kahrl parseModContents is the exact algorithm 20:44 sapier isn't done in core 20:44 PilzAdam sapier, 814 updated 20:45 kahrl maybe parsing mods and their dependencies should be delegated to the core 20:45 kahrl having it done twice in different ways leads to bugs and inconsistencies 20:45 sapier I'm not sure about the enable all button ... especialy as we want to make users enable mods on per world base 20:46 PilzAdam sapier, added one more point 20:46 sapier it's almost useless if you have different mods downloaded you most likely never will use same time 20:46 sapier and I guess that will be most common case 20:46 PilzAdam there are many people that always use all their mods 20:47 PilzAdam and the button was a good excuse when they whined because of the new per world system 20:47 sapier that is a decision of how you want to design minetest 20:47 sapier should engine be a base for different games or for a single one only 20:47 sapier if you view it from "different games" perspective enable/disable all are useless buttons 20:48 proller sapier, before you servers in list have name and flags 20:48 sapier name and description should be shown 20:48 kahrl maybe for more complex configurations we could add a "copy configuration" button 20:48 PilzAdam sapier, you cant really know how people will use it; and a useless button is not as bad as a missing one 20:48 sapier is this wrong .. flags should be shown too 20:49 kahrl which copies the mod configuration from one world to another 20:49 sapier but yes you're right i remember they arent 20:49 sapier gui just isn't big enough to put all this in on mask 20:49 sapier a crowded gui is as bad as a missing feature 20:51 sapier imho we should decide how we see minetest and create a gui for this. everyone now can create it's own gui so we aren't forced to push two views that never can match into one 20:52 sapier kahrl I'd suggest to add the copy to world creation ... same as game selection add a different dropdown to allow copying mod settings from that world 20:53 kahrl that could be done too 20:53 kahrl but it's also a useful feature for existing worlds 20:54 sapier yes but you have to keep in mind the gui is quite simple 20:54 PilzAdam kahrl, push your voxelarea helpers already :-) 20:54 kahrl PilzAdam: ok :) 20:54 sapier if we would have rightclick context menus and mouseclick events that'd be easy but we havent 20:55 sapier with current menu we almost need a new dialog to make copy at least a little bit intuitive 20:55 kahrl sapier: the idea I had was making the world configuration contain multiple tabs: "Addon Mods" "Game Mods" "World Mods" "Copy" 20:55 sapier interesting idea but lots of work to do 20:56 sapier we don't have tabs in menu 20:56 PilzAdam sapier, updatepo.sh detects all the gettext() calls in .cpp and .h files in src/ AFAIK, how about just "faking" one that isnt compiled that contains all of the messages? 20:56 kahrl can't the main menu tabs be reused somehow? 20:56 sapier no 20:56 kahrl hmm 20:56 sapier tabs in formspecs are just a buttonlist 20:57 sapier you'd need to copy the tab mechanism from mainmenu and switch between those 20:57 sapier possible yes ... but lots of typework and work to get it clean 20:59 sapier remember we only have a tabheader element in formspec ... the whole gui change needs to be done in lua everytime a tabbutton is clicked ... you don't even get the tabname but only the index 21:00 kahrl unrelated: any idea what should be done about https://github.com/minetest/minetest/issues/822? 21:00 kahrl PilzAdam, hmmmmm ^ 21:00 sapier PilzAdam would be at least better than updating by hand still that "fake-file" needs to be written by hand 21:01 sapier 4096 nodes? WOW 21:02 PilzAdam kahrl, do what 791 tried to do 21:03 PilzAdam sapier, do you want to write 1 file by hand or 22? 21:04 sapier as I said better than updating by hand still we could find a better solution ;-) 21:04 PilzAdam maybe add comments with "gettext()" in the .lua files and include them in updatepo.sh? 21:04 hmmmmm [04:19 PM] can someone explain to me why this is a problem? ... yes I know some compilers etc complain about it but I still don't undertand why it should be a problem 21:04 hmmmmm technically it isn't valid C++ if it doesn't have a newline at the end of a file 21:05 sapier it's lua ;-) 21:05 hmmmmm and "newline missing" warnings are very annoying and cannot be supressed 21:05 hmmmmm oh 21:05 hmmmmm yeah, seriously, consistency purposes, just do it. it's not breaking your finger to press the enter key, is it? 21:05 sapier but thexyz alread gave another good explanation command line tools on unix like os 21:05 kahrl would it be possible to change CONTENT_IGNORE and CONTENT_AIR to 0 and 1? 21:06 kahrl does anything in minetest rely on the exact values? 21:06 hmmmmm not really 21:06 hmmmmm why would you do that, though? 21:06 kahrl hmmmmm: changing ContentFeatures array to a vector 21:06 hmmmmm oh right 21:06 hmmmmm yeah, sure, air and ignore could be 0 and 1 just fine 21:06 kahrl any serialization problems? 21:06 hmmmmm nope 21:07 hmmmmm why do i have a feeling that something else is going to break even though it shouldn't 21:08 hmmmmm also i have literally no idea why they're 126 and 127 in the first place. it's so arbitrary 21:08 kahrl a relic from 0.3 21:08 hmmmmm back when 8 bit content_ts were in, there was a reason 21:08 hmmmmm and they were 254 and 255 21:08 PilzAdam hmmmmm, to troll Jordach: https://github.com/minetest/minetest/issues/822#issuecomment-20805844 21:08 hmmmmm but these are...halved? 21:09 hmmmmm "which is probably air" - way to assume 21:09 hmmmmm you know what they say about assuming? it makes an ass out of u and me 21:09 kahrl the top bit specified that the rest of the content_t was stored in param2 21:09 kahrl and that was bad for performance if every air and ignore node had that property 21:09 hmmmmm oh 21:10 kahrl ...afaik, it's been a long time 21:10 hmmmmm yeah, that seems real old 21:10 hmmmmm I sorta like what Blockscape does with their versions of MapNodes 21:10 hmmmmm instead of having just a content_t, they split it up into a block shape and a material 21:11 hmmmmm so you can have only one stairs block and it could be textured in any way you wish 21:46 kahrl changing it to a vector is certainly not as easy as #791 made it out to be 21:47 kahrl for example the client relied on the fact that all unused node IDs have a valid ITexture* for unknown_node.png 21:47 kahrl of course with a vector they don't even exist 21:47 kahrl I'm tempted to make a CONTENT_UNKNOWN = 2 for just this purpose 21:48 hmmmmm i say do it 21:48 hmmmmm also, this would make things a bit cleaner so you can differentiate between "node not found" and "error" 21:49 hmmmmm and "nothing had been placed here" 21:57 kahrl so should I change getId(name) to return CONTENT_UNKNOWN on error? 21:57 kahrl seems like a significant change 21:58 hmmmmm it is.... that ought to stay the same, but for any new interfaces, CONTENT_UNKNOWN should be used if the node is unknown and CONTENT_IGNORE for an error 22:44 * VanessaE_ peeks in 22:45 VanessaE_ oh sure, the conversation dies down an hour before I return home. figures :) 22:57 PilzAdam https://github.com/PilzAdam/minetest/commit/6517377c9be8f83ec9d5ba02c437e802e0ee8fc5 22:57 PilzAdam I found this old issue https://github.com/minetest/minetest/issues/79 and though its a good idea 23:32 kahrl this is what I got so far: http://mysticpaste.com/view/VqoAGphbDQ?3 23:32 kahrl it works (surprisingly) without any problems in singleplayer 23:33 VanessaE_ why hard-code it to 0xfff? 23:33 VanessaE_ nevermind, I'm not reading it clearly. 23:33 kahrl I also tried removing register_node calls and loading the map, adding more than 4096 register_node calls and loading the map, etc. 23:33 kahrl works 23:34 kahrl when I joined a server all air was unknown nodes, as would be expected 23:34 kahrl so this also needs a protocol version bump 23:36 hmmmmm you sure that having getIds return CONTENT_UNKNOWN is a good idea? 23:36 hmmmmm if not found* 23:36 hmmmmm you'd have to change a lot 23:36 hmmmmm getId rather 23:37 kahrl did I do that? 23:37 Exio4 kahrl: how does a client react to that? 23:37 Exio4 (to that = change) 23:37 hmmmmm CNodeDefManager::get() 23:37 Exio4 old client i mean, too :P 23:37 kahrl Exio4: haven't tried hosting a server 23:37 kahrl hmmmmm: not sure 23:37 hmmmmm unless i'm somehow reading it wrong 23:38 hmmmmm in any case, there's a lot of code that relies on getId returning CONTENT_IGNORE on not found 23:38 hmmmmm so it'd break all that 23:38 Exio4 kahrl: and that client to some server? (just wondering, and i'm leaving right now :/) 23:38 kahrl getId still returns CONTENT_IGNORE 23:39 kahrl Exio4: all air is unknown nodes (solid) 23:39 kahrl and I didn't check, but I think whatever is content_t = 0 on the server would be CONTENT_IGNORE on the client 23:39 PilzAdam I am not sure if this huge incompatibility is good, currently you can connect to to a 0.4.4 server without major issues 23:39 Exio4 you said that, nevermind.. 23:40 hmmmmm oh, nevermind, i misread that 23:40 kahrl I thought there were several protocol changes since then 23:40 hmmmmm for some reason that diff is really hard to read 23:40 PilzAdam kahrl, but nothing major 23:42 kahrl I don't think it's possible to change the values of CONTENT_AIR/IGNORE then 23:43 kahrl will be possible to leave them intact I guess, but will make NodeDefManager hard to understand 23:43 PilzAdam cant you just hack in somewhere and swap 0 and 126 when recieving content from an old server? 23:43 Exio4 is there anything that would cause big protocol "changes" like this? 23:44 Exio4 so you pack the changes in "one big change that breaks compatibility" and not more than one? :P 23:44 kahrl PilzAdam: could but that sounds really hacky 23:44 kahrl Exio4: yeah, let's do the move to TCP ;) 23:45 Exio4 hehe 23:45 Exio4 kahrl: where you one with that "request-chunks" branch? 23:45 Exio4 where the client requested mapblocks to the server instead of the server guessing them 23:45 Exio4 s/requested/requests/ 23:46 hmmmmm that was someone else 23:46 hmmmmm that guy doesn't come around anymore..... 23:46 Exio4 i don't recall how that branch was called nor who did that, that is why i asked 23:46 kahrl celeron wrote the TCP socket code and someone (DavidMikeSimon?) wrote the client-request-blocks code 23:47 hmmmmm i think we should continue on with that 23:48 Exio4 kahrl: work for you! ;P 23:50 hmmmmm hmmmmmm i guess it's a good time to try out my idea of sending all the blocks in the radius like minecraft does 23:50 kahrl https://github.com/celeron55/minetest/commits/tcp_blocks_2 I think this is the newest version of that branch 23:50 PilzAdam any comments on https://github.com/PilzAdam/minetest/commit/6517377c9be8f83ec9d5ba02c437e802e0ee8fc5 ? 23:51 kahrl PilzAdam: not sure but are player names case sensitive? 23:52 kahrl other than that it looks good 23:53 PilzAdam yes, they are case sensitive 23:53 kahrl even on windows? 23:54 kahrl how does it use different player files? 23:54 PilzAdam good question 23:55 kahrl this is starting to look like a deeper problem :P 23:55 PilzAdam ... as always ;-) 23:56 kahrl guess you can do a case insensitive comparison in that commit, to be always on the safe side 23:57 Exio4 kahrl: two things, would be possible to reserve like the first 16 ids to "placeholders"? in case in a future MT gets a CONTENT_SOMETHING or so, (i say 16, but i guess it can even be 8?) 23:57 Exio4 and doesn't break the compat with that change, the other thing, will you work with the TCP code? :P 23:58 hmmmmm don't really see any point to that.... 23:58 kahrl ^ yeah, there's not really much reason to add new CONTENT_ codes 23:59 Exio4 i don't see any point right now either