Time Nick Message 07:10 kahrl #814: "It happens sometimes that the selection in a list follows the mouse (reproduceable by moving the scrollbar slider and then clicking outside of the formspec) (not in win build)" 07:10 kahrl managed to reproduce this using a small irrlicht example http://paste.dy.fi/7nn 07:11 kahrl so it has to do with the formspec disallowing focus change 07:13 kahrl if you change canTakeFocus() to "return true;" the problem goes away 12:18 kahrl PilzAdam: I figured out why the first problem in #814 happens: http://paste.dy.fi/kaj 12:18 kahrl but I can't think of any way to fix it 13:36 PilzAdam kahrl, its not a big problem, dont waste too much time on it 13:46 kahrl I don't think I can even do anything about it unless we use a custom listbox 13:47 kahrl ... which I'm planning right now (but for different reasons) 14:52 kahrl ideas/design/examples for a "table" formspec element: http://paste.dy.fi/BJ9 14:55 nore kahrl, I like it 15:17 celeron55 kahrl: tell us when you've used an equal amount for this that it would've taken to implement a client side lua based menu so we can all cry 15:17 celeron55 anyway yeah it looks fine for a formspec thing 15:18 kahrl I don't think it will take that much work 15:18 kahrl copying CGUIListBox gives a head start 15:18 celeron55 irrlicht has it's table element too; is it useless? 15:18 kahrl I didn't look at it yet 15:19 kahrl but I expect there to be complications :P 15:21 celeron55 sounds like a wise expectation 8) 15:21 kahrl it can't be used as is because it doesn't support images, tooltips, or obviously indents 15:21 kahrl but it might be better code to start from than CGUIListBox 15:23 kahrl dang it, broke the irrlicht online docs 15:23 kahrl Guru Meditation! 15:24 kahrl IGUITable::getRowCount() "Get amount of rows in the tabcontrol." huh? 16:09 proller https://github.com/proller/minetest/compare/heat 16:09 proller https://github.com/proller/minetest/compare/liquid63 16:21 BlockMen because im working on the formspecs atm i thought why not the menus too 16:21 BlockMen what do you guys think of this -> http://i.imgur.com/3kD4HPM.png ? 16:22 ironzorg german is hard 16:22 andersje except for the fact that I can't read German, that's awesome. 16:22 rubenwardy nice 16:22 rubenwardy What about the chat menu? 16:23 BlockMen not done yet 16:23 rubenwardy cool 16:23 BlockMen first wanted hear if it is ok, else it would be work for nothing^^ 16:23 PilzAdam the buttons seem very randomly thrown at the screen 16:24 ironzorg this ↑ 16:24 ironzorg it doesn't look like a menu 16:24 ironzorg just a bunch of buttons 16:24 PilzAdam also where are the default controls and debug info? 16:25 PilzAdam the idea that it should cover the whole screen is good, though 16:25 BlockMen kicked out, instead of that info the controls should be added to menu as setting 16:25 BlockMen like in that pull request 16:26 BlockMen ^IMO 16:32 thexyz yeah of course we need controls and debug info displayed every time user presses [ESC] 16:53 nore about menus I have a suggestion: a Lua function that declares a new button for the menu, that calls a custom callback 16:57 BlockMen are the buttons better this way? -> http://i.imgur.com/D06Sw65.png 16:57 PilzAdam yes 16:57 Calinou "Pause Menu" is obnoxious imo 16:58 Calinou on top of that, it's not even a pause 16:59 BlockMen i guess it would be kinda har to make it pause for real (singleplayer) 16:59 BlockMen *hard 17:05 celeron55 BlockMen: no it wouldn't (and that actually should be made) 17:05 celeron55 but for multiplayer it obviously shouldn't pause anything 17:08 BlockMen celeron55, all the better. but i have no idea where to start 18:06 kahrl what is m_Textures in GUIFormSpecMenu for? 18:07 kahrl it's only ever pushed to but never read 18:07 kahrl if I have to push the used textures to that list when implementing the table that'll make a lot of code ugly 18:21 kahrl also: why are the texture names in image[], background[], image_button[], image_button_exit[] not escaped 18:54 sapier1 as far as I remember m_Textures is used to cleanup background textures on close of main menu 18:56 sapier1 I guess the cleanup is missing resulting in a texture leak 18:57 sapier1 are texture names escaped anywhere? 18:57 sapier1 maybe it's still a bug I cleant up much in formspec but not everything for sure ;-) 18:58 sapier1 kahrl if you do cleanup there could you add 4 to the textlist member cout ? docs allow skipping last two parameters but code doesn't 19:05 kahrl hello sapier1 19:06 kahrl I fixed the missing cleanup by moving formspec's texture management to ITextureSource 19:06 kahrl ISimpleTextureSource to be precise, which implements only getTexture 19:06 sapier1 I guess then it's useless there 19:06 kahrl yeah I removed it in formspec 19:07 kahrl texture names are not escaped, would changing that break anything? 19:08 sapier1 I don't think there are any escape chars used there ... aren't "; , \ \n \r" dissalowed on most fs either? 19:09 kahrl nope 19:09 kahrl at least on linux I think everything but / is allowed 19:09 sapier1 yes but / isn't required to be escaped 19:09 kahrl well sure 19:10 kahrl but what if minetest is in a path that contains ; 19:10 sapier1 ok ok I'm convinced ;-) 19:10 sapier1 it should be escaped too 19:11 kahrl not that other parts of the code are innocent in that respect, there are problems with loading the database when the minetest path contains non-ascii characters 19:12 kahrl seems to be a problem in sqlite 19:12 sapier1 :-) yes the texture names are not unescaped ever since but that's no reason for not fixing it 19:14 sapier1 https://github.com/minetest/minetest/pull/846 any reason why this bugfix isn't merged yet? VanessaE seemd to be quite annoyed by that issue? 19:15 kahrl what should I do about textlist? fix the docs or the code? 19:16 PilzAdam sapier1, whats wrong with mainmenu.lua:505 and 506 in that diff? 19:16 sapier1 doc is wrong in any case as it doesn't mention 5 parameter textlists are allowed too 19:17 sapier1 I guess this is a whitespace fixup not visible correctly in github diff 19:17 PilzAdam have you used tabs there? 19:18 sapier1 I don't have any idea its 20 days old ;-P 19:19 sapier1 as of raw view seems to be tabs yes 19:19 sapier1 8 spaces tabs shown for display argh 19:20 kahrl 8 is the unix default, I use it in vim 19:20 sapier1 whoever invented tabs should be punished to infinity for not specifying number of spaces 19:20 kahrl just use spaces unless at the beginning of the line 19:21 PilzAdam in Minetest a tab is 4 spaces 19:21 sapier1 8 is very very old default as it's almost useless for coding unless you use mixed mode indentions 19:21 kahrl I have no problem with 8 19:21 kahrl but I don't do insane nesting either 19:22 sapier1 ... 8 and 80 char limit is quite challanging ;-) 19:23 celeron55 anyone can use any kind of tabs they please, but line width limitation is calculated with 4 tabs 19:23 celeron55 and tabs should be used so that tab width doesn't affect formatting 19:24 celeron55 4-space tabs* 19:25 sapier1 I use tabs for "table style" initialization of multiple variables too (in lua) ... I know not quite consistent 19:25 celeron55 (in practice that means that if you want to align something in two lines, they should have the same tab indentation and spaces after that as needed 19:25 celeron55 ) 19:29 sapier1 btw I need async lua events ;-) similar to this one https://github.com/sapier/minetest/tree/async_lua_functions 19:33 sapier1 reason is mobf adds a lot of on_mapgen actions done at once those add huge delays to map spawning ... but they don't need to be done instantly thus can be executed later 19:34 hmmmm sapier1, can't you just add the information to some queue and execute them in server steps? 19:34 sapier1 atm I queue them in a global table and make global on_step handle those queued jobs until some time limit is passed ... of course this works but it'd be better if those could use multicore 19:34 sapier1 :-) 19:34 sapier1 already done 19:35 hmmmm i've been thinking about multithreaded lua and i think we should go ahead with multiple interpreters 19:35 sapier1 if I remember correctly the async prototype creates a interpreter for each async job 19:36 hmmmm for some projects in the past i had a dedicated async callback thread 19:36 sapier1 thus all information as well as the function to be executed needs to be serialized prior passing to that interpreter 19:36 hmmmm yes, that isn't really as difficult as we initially made it out to be, though. 19:37 hmmmm nor is it inconvenient 19:37 sapier1 have a look at the proove of concept implementation 19:37 hmmmm besides, with client-side lua, we're going to have to develop a serialization thing anyway 19:37 sapier1 it's already capable of serializing functions 19:37 hmmmm probably your thing is our best shot then 19:38 hmmmm when i say we, i mean you, from the way it's looking i might not be able to work on minetest anymore with the new job unless i negotiate the contract 19:38 kahrl how does it improve performance? thinking about e.g. envlock 19:38 sapier1 it needs some updating of course as it's quite old and most important we need to sort out which calls can be used from async threads and which cant 19:38 hmmmm karhl, computation bound things would benefit from multicore. 19:39 kahrl ah well yeah 19:39 hmmmm well 19:39 kahrl I thought the spawning algorithms had to access the map 19:39 sapier1 but yes kahrl envlock limits benefit quite a lot 19:39 hmmmm those could probably be done outside of an envlock 19:40 sapier1 yes kahrl ut maybe they could just read the part of the map they're interested in and work at that local copy ... not sure if this helps 19:40 sapier1 better option would be map access is locked only 19:41 kahrl not sure how it works at the moment but aren't on_generated callbacks run from the EmergeThread? 19:41 kahrl basically async 19:42 sapier1 if they are they still block main task due to envlock ... hmmm guess this means async threads will have same effect 19:42 hmmmm he wants them to be asyncronous from the emerge thread though 19:42 hmmmm erm 19:43 kahrl they shouldn't have to lock envlock if all they do is use mapgen objects 19:43 sapier1 I want them to not interfere with map creation or mainloop 19:43 hmmmm just FYI, i know you don't like unlocking the environment while in the script but just consider that it'd be safe to assume the data after you unlock doesn't instantly become invalid 19:43 hmmmm it's sort of like map generating 19:44 sapier1 actually they result in huge delays ... but I can't tell for sure by what reason 19:44 hmmmm you have no idea if the area you are currently generating is already there or modified or not, but you carry out the generation anyway and then 'merge' them together when you get back into the lock 19:44 hmmmm and I really doubt the map is going to change in any significant enough way to modify the path or areas to place 19:44 hmmmm within the time you take to computei t 19:44 hmmmm compute it* 19:45 sapier1 and what I can tell too is the variant queuing the spawn algorithms and doing them in on_step loop doesn't result in this big delay (most likely because the main loop doesn't need to call all jobs in a single step) 19:47 sapier1 disadvantage is if your server crashes for some other reason while jobs are queued in lua they're lost forever 19:53 VanessaE kahrl: new bug for you.... 19:54 VanessaE just noticed this today, might be caused by your diagonal flowing fix: http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/Screenshot%20-%2008202013%20-%2003:53:39%20PM.png 19:54 VanessaE I don't think the water's edge is supposed to do that :D 19:54 sapier1 looks like a monster face ;-) 19:55 PilzAdam VanessaE, do you use new_style_water? 19:55 VanessaE yup 19:56 VanessaE I do 19:56 PilzAdam then dont use it 19:56 VanessaE sapier1: haha 19:57 PilzAdam this has nothing to do with the diagonal water 19:57 VanessaE PilzAdam: I'm pretty sure this started with that commit or very recently at least. 19:57 VanessaE it's never done that before that I remember seeing. 19:58 PilzAdam I know it does it since I fixed new_style_water 19:58 VanessaE hm, guess I never noticed it before then 19:59 kahrl something is trying to load the texture "\0" in the main menu 19:59 kahrl strange 19:59 sapier1 no it isn't 19:59 sapier1 ohhh 20:00 sapier1 ok it is ... I should read more precise after answering :) 20:01 kahrl ok well here's why 20:01 sapier1 some empty variable? 20:02 kahrl unescape_string is still not fixed (I found that bug months ago and forgot about it) 20:02 kahrl "i <= s.length()" 20:02 sapier1 :-) 20:18 kahrl committed what I have so far: https://github.com/kahrl/minetest/commit/ae81adbeef9593ca2e68175937c6991207e1f363 20:18 kahrl ^ sapier1, in case you want to look 20:21 kahrl working on the table thing and textlist now 20:21 sapier1 diff is terrible on that I can't even tell whats new and what got moved only 20:21 kahrl hmm, dunno what to do about that 20:22 kahrl basically TextDestGuiEngine and MenuMusicFetcher were moved, the other things are actual changes 20:22 kahrl I moved them because they caused a bunch of headers to be pulled in 20:23 sapier1 ok maybe you should do this in different commits? 20:23 kahrl maybe 20:23 sapier1 it's hard to review those changes if different things are mixed 20:25 kahrl does git have a command "git add --lines X,Y,Z µ.cpp"? 20:25 sapier1 I don't know I'm still new to git 20:26 PilzAdam kahrl, try --interactive 20:26 kahrl PilzAdam, thanks 20:29 kahrl now how do I use this thing 20:29 PilzAdam I never used it 20:30 PilzAdam git add --help, see "Interactive Mode" 20:31 kahrl tl;dr I'll do this by hand 20:46 kahrl sapier1: https://github.com/kahrl/minetest/commits/isimpletexturesource2 20:48 sapier1 way more easy to read yes :-) 21:30 proller https://github.com/proller/minetest/compare/heat 21:30 proller https://github.com/proller/minetest/compare/liquid63 21:30 proller need to make bot for autoposting...