Time Nick Message 01:20 paramat hmmmm concering #3222 is there a reason to disallow setting chunksize using set_mapgen_params()? 01:20 ShadowBot https://github.com/minetest/minetest/issues/3222 -- Allow changing chunksize from lua API, with set_mapgen_params() 01:36 hmmmm there's really not any good reason for setting chunksize 01:37 hmmmm in fact i kinda wish i didn't make it modifiable at all 01:37 paramat i sortof agree 01:39 hmmmm if you change the chunksize of a map that started out as one chunksize, you'll get shapes of blocks that will stay ungenerated 01:40 hmmmm and it'll probably fill the emerge queue with requests for those chunks not knowing that they're not going to get generated 01:40 hmmmm which prevents other blocks from getting queued due to the limit 01:42 paramat ah, making it a param and getting it was added for good reason, that should remain 01:43 paramat very useful, it was on my request 01:43 hmmmm i think it's an artifact of the emerge queue not being very robust 01:44 paramat setting it for a singlenode mapgen would be ok though perhaps 01:44 paramat well i'll ask these modders why they feel they need it 01:44 est31 how is there an additional problem with the emerge queue 01:45 est31 are blocks which dont get generated never removed from the queue? 01:45 hmmmm they just keep getting readded each server step if they aren't generated 01:45 hmmmm hmm actually no 01:46 hmmmm changing the chunksize in an already existing map will just regenerate mostly everything 01:46 hmmmm come to think of it, the current design shouldn't cause any ungenerated gaps 01:46 est31 I guess increas is different from decrease? 01:46 est31 decrease should work?? 01:46 hmmmm both should work 01:47 hmmmm for mapgens that still modify blocks which already have been generated (like v6) this would cover everything with poopy mud 01:47 hmmmm but it should be okay for v5 and v7 01:48 paramat hehe 01:48 hmmmm maybe.. i'm not entirely sure ever since that overgeneration feature got added 01:48 hmmmm rather nevermind that doesn't apply to the map emerged 01:48 hmmmm just the noise generated 01:49 est31 Either way, I'm completely open on whether to expose it via the API, making it an option, or removing it entirely 01:49 * est31 no mapgen pro 01:49 paramat setting it in conf is perhaps good enough 01:49 est31 but what paramat asked on github is a general good tactic 01:50 est31 asking for the usecase 01:50 est31 https://github.com/minetest/minetest/issues/3222#issuecomment-145306267 01:50 est31 then you know what people want, and can try to find a solution for their needs, and not what they think they need. 01:52 est31 about #3221 we really do need a new settings menu setup 01:52 ShadowBot https://github.com/minetest/minetest/issues/3221 -- Add viewing range GUI setting by kilbith 01:52 est31 e.g. multiple settings menus 02:15 est31 opinions on #3219? 02:15 ShadowBot https://github.com/minetest/minetest/issues/3219 -- Add new ContentParamType2 "CPT2_DEGROTATE" by est31 02:18 paramat i don't like the slight slowdown in meshgen, or the plant rotation feature itself, but as long as we have the feature it should be coded correctly and be a separate param2type 02:20 paramat i wonder if we should bother correctly rotating these by adding to rotateNodeAlongYAxis .. 02:21 paramat most uses will be random rotation so no need to rotate 02:29 paramat think i'll wait until someone complains :) 02:37 est31 the slowdown is so minimal, its barely there 02:42 paramat yeah. my objection is more on principle :) feeling we just don't need the feature. anyway i expect it will stay 05:16 paramat hmmmm #3223 improvements to mgv5 getGroundLevelAtPoint 05:16 ShadowBot https://github.com/minetest/minetest/issues/3223 -- Mgv5: getGroundLevelAtPoint searches a larger range by paramat 05:47 hmmmm sure, looks good 05:49 paramat ok thanks 06:56 hmmmm PTAL 06:56 hmmmm https://github.com/kwolekr/minetest/commit/366cf9e4e1754990af8c093abed585be35c35d22 06:56 hmmmm https://github.com/kwolekr/minetest/commit/a8f522cdb4783dab84f1c02d4202e70a21d1fb50 06:56 hmmmm https://github.com/kwolekr/minetest/commit/6d3aea2d750cb543af34c680b050212563484bd8 07:27 paramat hmmmm limit constants looks good, there is also a (u32)-1 in writeParams in mgv5/6/7 07:34 paramat proposed new header image for mtgame https://github.com/minetest/minetest_game/issues/480#issuecomment-145301062 07:44 OldCoder The long serialization error messages and lockups are still occurring with git-current. Is this to be expected? 08:02 hmmmm yup got it 08:03 hmmmm not good 08:03 hmmmm i pushed the wrong branch 08:03 Krock ouch. 08:04 hmmmm fixed 14:28 hmmmm guys 14:28 hmmmm https://github.com/kwolekr/minetest/commit/53ba9a16c086bb5d2da49fdd37ce791f335501e0 PTAL 14:36 OldCoder celeron55, recall our discussion about clumping ABMs. I believe I found the answer in the core code. 14:37 OldCoder - if(aabm.chance == 0) a- if(aabm.chance == 0) aabm.chance = 1; 14:37 OldCoder + if(aabm.chance == 0) aabm.chance = 1000000;abm.chance = 1; 14:37 OldCoder + if(aabm.chance == 0) aabm.chance = 1000000; 14:37 OldCoder Oops 14:37 OldCoder 14:37 OldCoder - if(aabm.chance == 0) aabm.chance = 1; 14:37 OldCoder + if(aabm.chance == 0) aabm.chance = 1000000; 14:37 OldCoder There 14:37 OldCoder If there are blocks in the game not visited for a while 14:38 OldCoder They tend to trigger all ABMs at once 14:38 rubenwardy er what 14:38 OldCoder Yes 14:38 OldCoder I discussed this with celeron55 recently... 14:38 OldCoder I noticed that ABMs have a tendency under some conditions 14:38 OldCoder to trigger all at once on the same node 14:38 OldCoder He wondered if the issue might by in myrand 14:38 OldCoder What actually seems to be happening 14:39 OldCoder Is that if there is large time discrepancy between node time and current time 14:39 OldCoder The large interval triggers 14:39 OldCoder if(aabm.chance == 0) aabm.chance = 1; 14:39 rubenwardy ah 14:39 OldCoder as effective chance is perceived to have reduced to zero 14:39 OldCoder And all the nodes go off at once 14:39 rubenwardy so it's an overflow? 14:39 OldCoder Not quite but sort of 14:40 OldCoder I believe the (two) lines should read 14:40 OldCoder if(aabm.chance == 0) aabm.chance = 1000000; 14:40 OldCoder A better solution 14:40 OldCoder would be to rework the code at a higher level 14:40 rubenwardy does that break leaving out chance in an abm definition? 14:40 OldCoder That computes the large time interval 14:40 OldCoder and cap it 14:40 OldCoder Explain question? 14:41 OldCoder I don't know; if you leave out chance, does it default to 1? 14:41 OldCoder If so, this should not affect it directly 14:41 rubenwardy if you leave out chance in register_abm, it should default to 1 14:41 OldCoder Ninja 14:41 OldCoder Chance in register abm 14:41 OldCoder Seems to get divided 14:41 OldCoder under some conditions 14:41 OldCoder by a time interval computed based on the age of a block 14:42 OldCoder I don't know if chance being 1 to begin with makes a difference 14:42 OldCoder and am falling asleep now so can't check 14:42 OldCoder I will say that that line or the time interval code at a higher level 14:42 OldCoder One or the other needs to be tweaked 14:42 OldCoder As presently you get all sorts of clumps of ABMs 14:42 OldCoder going off at once; done. Is this sufficient to warrant interest? 14:42 OldCoder 14:43 OldCoder The two locations in the code are: 14:43 OldCoder src/environment.cpp circa line 589 where the code diddles with chance 14:43 OldCoder and 14:43 OldCoder void ServerEnvironment::activateBlock 14:43 OldCoder dtime_s = m_game_time - block->getTimestamp(); 14:43 OldCoder That code 14:44 OldCoder dtime_s being large (or is it negative?) causes odd effects 14:44 OldCoder 14:44 OldCoder My temporary patch does seem to eliminate the clumps 14:44 OldCoder 14:46 OldCoder float actual_interval = dtime_s; 14:46 OldCoder float intervals = actual_interval / trigger_interval; 14:46 OldCoder float chance = abm->getTriggerChance(); 14:46 OldCoder aabm.chance = chance / intervals; 14:46 OldCoder trace through that and observe what happens if dtime_s is large 14:46 OldCoder if(aabm.chance == 0) aabm.chance = 1; 14:46 OldCoder 14:47 OldCoder zzz 14:47 celeron55 that code is probably working as intended 14:47 OldCoder OK 14:47 celeron55 but the intention might be wrong 14:47 OldCoder Then what about the clumps? 14:47 OldCoder Ah 14:47 OldCoder Perhaps dtime_s should be capped instead? 14:47 celeron55 what it's doing is making it so that if you leave a block and come back after a long time, for example grass growth will catch up 14:47 OldCoder Yes 14:47 celeron55 but with more complex ABMs it messes things up 14:48 OldCoder indeed 14:48 * OldCoder has piles of deadly Pumpkings and Enderducks 14:48 celeron55 maybe the ABM definition needs a flag for whether that behavior is enabled or not 14:48 OldCoder Hm 14:48 OldCoder Wait 14:48 celeron55 so that grass and others can have it as they benefit from it, but some other things can disable it 14:48 OldCoder If you do go away and come back... 14:48 OldCoder behavior will revert to normal 14:49 OldCoder grass will not immediately catch up 14:49 OldCoder but it will resume growing while you are in the area 14:49 OldCoder Isn't this sufficient? 14:50 celeron55 in my personal opinion? no, it isn't sufficient 14:50 celeron55 i don't know if any actual player wants it though 14:50 OldCoder This means that everything happens at once, though 14:50 OldCoder Which is interesting 14:50 OldCoder "Time is Nature's way of making sure everything doesn't happen at once" 14:51 OldCoder ABM flag is one option. What happens if you cap dtime_s instead? Or simply increase odds? 14:51 celeron55 you can't actually run all ABMs so simulating everything at once is the only solution if that has to happen 14:51 * OldCoder thinks 14:51 OldCoder catchup = false | true -- Hm 14:52 OldCoder Cap dtime_s won't solve the problem you mentioned... 14:52 celeron55 i think adding that flag is the only sensible solution 14:52 OldCoder I tend to agree 14:52 celeron55 maybe it has to default to false 14:52 OldCoder Unless something else comes up 14:53 OldCoder It is backwards compatible; sensible that way 14:53 celeron55 i don't think most modders want, care about nor understand this functionality 14:53 celeron55 true would be backwards compatible 14:53 OldCoder celeron55, I need to sleep; wanted to get back to you. Regardless of modders, default of catchup to false is safer. Yes to your point... 14:53 OldCoder I meant API compatible 14:53 rubenwardy catchup is misleading 14:53 celeron55 false isn't; false is compatible with what modders seem to expect 14:54 OldCoder modders would not expect catchup, I think 14:54 OldCoder rubenwardy, what would best name be? 14:54 rubenwardy because it doesn't run multiple times, it just increases the chance of running 14:54 OldCoder to 100% 14:54 OldCoder Hence catch-up? 14:54 celeron55 if it could run multiple times, the server would practically just hang in many cases :P 14:54 OldCoder If catchup (or other name) is enabled, one gets 100% run of an ABM if there is a long run 14:55 OldCoder Yes I accidentally simulated that 14:55 OldCoder celeron55, I think a flag is a sensible workaround and suggest default false 14:55 OldCoder consensus could determine this 14:55 OldCoder Doesn't break API, makes ABMs trigger as expected (by modders) 14:55 rubenwardy catchup_by_chance_reduction? 14:56 rubenwardy meh 14:56 celeron55 rubenwardy: maybe "simple_catch_up" or something; the purpose is catch-up regardless of how well that works for a general ABM usage 14:56 OldCoder Yep 14:56 OldCoder simple_catch_up is good 14:56 rubenwardy yeah, it's good 14:56 * OldCoder looks forward to worlds not filled with deadly ducks 14:57 OldCoder It was weird for a while; ever see Santa merged with a snowman and a deadly duck plus a bear? 14:57 OldCoder They get stuck together and can't pull apart 14:57 OldCoder celeron55, I lack a better proposal. Most obvious solutions have no advantages. 14:58 * OldCoder really should nap now and sides with the flag and hopes it can be default false 14:58 OldCoder Zzz 16:15 TenPlus1 hi folks 16:16 kilbith MT crashes randomly on launching on that error : http://paste.ubuntu.com/12681172/ 16:16 TenPlus1 could someone answer a code question for me plz 16:16 TenPlus1 what causes this error: "minetest: /build/minetest-PDtZw2/minetest-201509300128/src/util/serialize.h:265: void writeF1000(irr::u8*, irr::f32): Assertion `i >= ((float)(s32)((-0x7FFFFFFF - 1) / 1000.0f)) && i <= ((float)(s32)((0x7FFFFFFF) / 1000.0f))' failed." 16:16 TenPlus1 or should I ask, what WOULD cause this error ? 16:17 nrzkt kilbith: a gdb trace is appreciated 16:18 TenPlus1 I've done one already and pasted it on forum and github for you... 16:18 TenPlus1 but my question is, what would cause such an error to happen in the 1st place ? from the code's perspective 16:18 TenPlus1 am hoping to backtrack it 16:42 hmmmm TenPlus1: I have not seen a single backtrace. At all. Can you point me to this backtrace on the forums or on github you speak of? 16:42 hmmmm This is hilarious and pathetic at the same time... why are so many regular players running debug builds? and none of them seem to know how to run minetest in gdb 16:43 hmmmm definitely not our fault. debug builds are for developers, not regular players. if you don't like the crashing, why use a version that's built for testing/debugging purposes only? 16:44 rubenwardy because when Minetest segfaults so much, you want to be able to make tracebacks so developers can fix it 16:44 rubenwardy It doesn't do that so much anymore 16:44 hmmmm on production servers?? 16:44 rubenwardy but it did just before 0.4.13 16:45 hmmmm that's because I stopped people from shit committing code and focus on bug squashing 16:46 hmmmm but anyway I still don't get it. people want to run debug versions to provide backtraces, yet nobody knows how to get a backtrace 17:00 est31 hmmmm, about https://github.com/kwolekr/minetest/commit/53ba9a16c086bb5d2da49fdd37ce791f335501e0 17:00 est31 cant review it right now, but the general idea is very good like it 17:01 nrzkt hmmmm: can you explain a little bit more what your commit does in the commit desc please ? It's a huge commit to review, many things are trivial to review but we need to have more ideas :) 17:02 hmmmm it's just a huge refactoring 17:02 hmmmm too many things to list honestly 17:02 hmmmm the EmergeManager and EmergeThread now have clean and consistent interfaces 17:03 hmmmm and it also adds the concept of emerge callbacks 17:03 nrzkt this should be added to commit desc :) 17:03 est31 I always do a list of "->"s 17:03 est31 or 1. 2. 3. 17:03 hmmmm those things are already 17:03 est31 either way gtg 17:04 rubenwardy how much testing have you done? 17:05 hmmmm enough 17:05 hmmmm it works 17:07 hmmmm it'd probably be much easier to review using a side-by-side diff instead of a unified version. 17:07 hmmmm much of it is also simply renaming and moving things around too 18:15 rubenwardy I view in side-by-side by default now XD 19:21 est31 about #3221 i'm not sure what to add/not add to the settings menu 19:21 ShadowBot https://github.com/minetest/minetest/issues/3221 -- Add viewing range GUI setting by kilbith 19:21 est31 so I can't really +-1 here. 19:29 hmmmm is there an enumeration of all APIs that place nodes? 19:32 est31 minetest has only one API hmmmm 19:32 est31 its the "minetest" lua table 19:32 est31 or "core" 19:32 hmmmm wow you pedantic fuck 19:32 hmmmm API function :) 19:33 est31 API is just a so general term 19:33 est31 I mean I know what you mean, but perhaps others dont 19:33 est31 and it took a while until I realized what you mean with "API" 19:34 est31 either way, dunno rly 19:34 est31 I just know set_node, the voxelmanip stuff then the schematics, perhaps more. 19:35 est31 and ofc high level stuff like place_node or dig_node 19:35 hmmmm yeah nevermind, i found a better way to phrase it anyway :) 19:37 hmmmm https://github.com/kwolekr/minetest/commit/1f9c5a4a7b15ab49e717d81162fe58e4202c0814 19:37 hmmmm pushing if no objection 19:37 est31 objection! 19:37 * est31 lookin first 19:37 hmmmm what, are you phoenix wright or something 19:38 est31 okay for me 19:38 * T4im nods too 19:39 est31 okay now to the emerge commit 19:39 est31 https://github.com/kwolekr/minetest/commit/53ba9a16c086bb5d2da49fdd37ce791f335501e0 19:39 est31 what was the criterion to reorder the #include s? 19:40 hmmmm alphabetical order? 19:40 est31 okay makes sense 19:40 hmmmm the way I do it anymore is 19:40 hmmmm C headers 19:40 hmmmm C++ headers 19:40 hmmmm headers in subdirectories 19:40 hmmmm regular headers 19:40 hmmmm err the very first header is the .h for the current file 19:41 est31 perhaps it should be documented somewhere 19:41 hmmmm something that nitpicky is not a code rule.. 19:41 est31 well, shrug 19:41 est31 next thing: isn't the m_ prefix only used for private members? 19:41 hmmmm yeah 19:42 est31 these are all public: https://github.com/kwolekr/minetest/commit/53ba9a16c086bb5d2da49fdd37ce791f335501e0#diff-1dc3934293fad6b8769890134ac51c21L66 19:42 est31 better do m_server → server 19:45 est31 yeah seeing that the container for the emerge threads was called "emergethread" really freaked me out great you renamed it 19:51 hmmmm here's the newest version https://github.com/kwolekr/minetest/commit/9d55e86a8d543af202a189574f0548c52ea43586 20:08 est31 why does EmergeManager need pushBlockEmergeData and popBlockEmergeData? 20:08 est31 I mean why can't the BlockEmergeData directly be pushed to the threads 20:09 est31 This would spare the map lookups 20:09 est31 (and additions + deletions) 20:09 hmmmm because it's used for checking uniqueness 20:12 est31 why does pushBlockEmergeData return true even if update_existing == true? 20:13 hmmmm because neither case is a failure 20:20 est31 btw hmmmm why do you replace /**/ with #if 0 ? 20:21 Calinou shouldn't #if 0 be avoided entirely? 20:21 est31 well its neccessary 20:21 hmmmm because #if 0 won't mess up nested block comments 20:21 est31 because /**/ can't be done with multiple levels 20:22 est31 but still, the "lowest" level works for /**/ 20:22 est31 and you can still surround /**/ with #if 0 20:22 hmmmm #if 0 also seems like a more formal way of saying "this piece of code is still relevant and it might be reenabled one day, don't remove very soon" 20:23 paramat c 55 > maybe the ABM definition needs a flag for whether that behavior is enabled or not < optional abm catchup is needed, in all my uses of abms the catchup just caused problems 20:25 est31 hmmmm, there is an indentation problem : https://github.com/kwolekr/minetest/commit/9d55e86a8d543af202a189574f0548c52ea43586#diff-ab005ad9757130721ffb66a09833090aR2387 20:26 hmmmm fixed 20:26 hmmmm also a comment is misplaced in that same function 20:27 hmmmm ironically enough it was like that to begin with.. i was going to move it to the correct location but i had forgotten 20:28 est31 okay, the commit looks good. 20:30 est31 good to merge 20:32 hmmmm yea 20:32 hmmmm ok done 20:37 hmmmm PTAL 20:37 hmmmm https://github.com/kwolekr/minetest/commit/ac527eda21ba7468578841fa24cf54d707b13ee3 20:44 paramat seems a good idea 20:48 paramat from forum: "v6 ok, v7 just why, math wtf, indev what is even diffrent, singlenode ahhh I am falling and I can't get up, or move, or fly or place blocks." 21:01 hmmmm maybe they should've gotten lifealert 21:02 paramat i guess 'include hidden' is for future use 21:03 hmmmm do you think it should be part of the mainmenu api too 21:04 paramat not sure, for use in other subgames? not sure how the bool will be used 21:05 hmmmm dunno just trying to make things as flexible and universal as possible 21:05 hmmmm do you think i should add a "include hidden" boolean to get_mapgen_names()? 21:08 paramat not sure include hidden is needed yet, but i have no objection to it. we will still be able to select singlenode using .conf? 21:08 hmmmm yes, and mods 21:11 paramat well personally i wouldn't bother having include hidden at all, yet 21:12 hmmmm updated version https://github.com/kwolekr/minetest/commit/9f25aba6c2c3a922ebe74c327e275e83fef1f6f6 21:17 paramat looks good 21:26 hmmmm PTAL https://github.com/kwolekr/minetest/commit/5130dbce7b294c392733e93c05e2099786523342 21:27 nrzkt +1 21:28 paramat seems good 21:43 paramat i might attempt to add a catchup bool to abms soon 21:53 est31 hmmmm, since you have time, does #3219 look good to you 21:53 ShadowBot https://github.com/minetest/minetest/issues/3219 -- Add new ContentParamType2 "CPT2_DEGROTATE" by est31 21:56 hmmmm looks good 21:57 hmmmm that's the plant rotation vanessae was talking about? 21:57 hmmmm yeah that is definitely not facedir. 21:57 est31 its only plant rotation 21:57 hmmmm of course rotateAlongYAxis won't support that 21:58 est31 paramat said about this I think that he will implement it but only if people ask for it 21:58 hmmmm sounds fair enough 22:07 est31 seems weblate has a merge conflict due to force pushes 22:07 est31 or so 22:08 est31 it claims to have commit fa53008cae557bad35849144fcfdc723f313e6cf, which doesnt exist anymore 22:08 est31 well... 22:15 est31 seems I'll have to resolve the conflict, and merge the translation updates now 22:15 est31 a week early for this month 23:03 * est31 breaks bot 23:03 * est31 runs away 23:04 OldCoder Is a forums admin present? I'd like to avoid things getting out of hand there 23:05 OldCoder sfan5 is probably asleep and Vanessa is unable to be present as much as before 23:30 paramat will merge fairly trivial fixes game#695 soon 23:30 ShadowBot https://github.com/minetest/minetest_game/issues/695 -- Flowers: Allow placing waterlily on river water by paramat 23:30 est31 celeron55, you around? 23:31 est31 if yes, can you kick MinetestBot from #minetest? 23:31 est31 thanks 23:33 paramat lol 23:34 waressearcher2 why MinetestBot is not here ? 23:55 est31 can anybody review https://github.com/est31/minetest/commit/39f32a3037d7050e9f6a3b1b358f345892584de0 23:56 est31 its a better fix than #3115 23:56 ShadowBot https://github.com/minetest/minetest/issues/3115 -- Split large fgettext call by JakubVanek