Time Nick Message 01:08 cg72 https://github.com/minetest/minetest/pull/1584 << anyone care to tell me if and how i did this one wrong??? i know no one likes me trying to dev ;) 01:13 RealBadAngel openin a folder as a file to read? 01:14 Zeno` That should be ok. Lua directly calls libc fopen() which will open a directory as a stream if it exists (you can't do anything with said stream AFAIK though) 01:14 Zeno` except close it again 01:15 Zeno` Who knows what it does on Windows though... 01:16 Zeno` http://codepad.org/gxE6Iy1M 01:22 Zeno` http://codepad.org/h3lmZBmN 01:23 Zeno` $ ./a.out 01:23 Zeno` Could not read: : Is a directory 01:23 cg72_ ok that was weird 01:50 RentedMule solved my port problem by recompiling from git HEAD. 02:11 Sokomine paramat, hmmmm: the forceplacement parameter is very hepful, yes. as far as extending schematics goes - perhaps it might be useful to make it possible to insert a schematic directly into a luavoxelmanip data structure from withhin lua. it would also be great to have an api function to uncompress (unzip) the schematic's data structure from withhin lua without additional libraries, if possible 03:42 paramat VanessaE, hmmmm, first test of running a 'get node'/'add node' mapgen mod alongside a voxelmanip mapgen mod (canyon mod plus landup mod): no problems. But of course this is just one mod combination 03:45 Zeno` Do both mods affect the same area? 03:46 VanessaE but how are the two mods actually DOING it? 03:46 VanessaE paramat: the problem I think comes from the vmanip mod writing not just the underlying land but the adjacent layer of *air* too 03:47 VanessaE I guess that's what snow mod did before the hack 03:47 VanessaE (either you had grass with air above, or you had dirt-with-snow with more snow above) 03:47 VanessaE but I haven't looked at the code in detail 03:50 paramat Zeno` yes, i tried to replicate the conditions as close as i could 03:51 paramat but im still outvoted 2 to 1 :) more people should test 03:53 paramat to be fair i did try snow mod plus plantlife and indeed had the same problems as you did 03:56 VanessaE paramat: and you saw nothing wrong with plants_lib's code that could cause it? 03:58 paramat correct, but plantslib/plantlife are complex i don't have my head completely around the code 03:58 VanessaE heh 03:59 paramat i need to try more combinations that write to the air above a terrain, so am suspending judgement 04:00 VanessaE well there ain't much to it. it does a register_on_gen in which it reads from the map with a find_nodes_in_area, finds all surfaces therein, runs through the action loop to put stuff on the map, and exits from the callback 04:00 Zeno` my glow worms don't write to air above the terrain 04:00 VanessaE there's two of those (one for where checking for air above the target is needed, and one for where it isn't) 04:01 Zeno` but they do write to air below ground level 04:01 VanessaE Zeno`: ok, so then that theory isn't valid. *shrug* 04:01 Zeno` paramat, https://github.com/Zeno-/minetest_mtz/blob/master/glowworms/init.lua 04:01 VanessaE I have to wonder if find_nodes_in_area() is the problem? 04:01 VanessaE no, that can't be it 04:02 VanessaE because the writes are happening and then being overwritten 04:02 VanessaE (hence the dry grasses in-the-water entities still surviving) 04:04 * paramat looks at glowworms 04:07 paramat and what failed, glowworms or plantslib? 04:07 Zeno` glowworms made the plantslib not work 04:08 Zeno` i.e. plantlibs plants were not staying in the world 04:08 VanessaE Zeno`: didn't you write a little stub of mod that does what plants_lib does? 04:08 VanessaE just as a test I mean 04:08 Zeno` I don't think so. I ended up doing: https://github.com/Zeno-/minetest_mtz/blob/altgworms/glowworms/init.lua 04:08 Zeno` So they'd work together 04:09 Zeno` So I still read the voxelmanip data but use set_node() to modify (yeah I was lazy heh) 04:10 paramat perhaps i will try plantlife and voxelmanip landup 04:11 Zeno` Oh you mean for testing Vanessa? 04:11 VanessaE Zeno`: yeahg 04:11 VanessaE -g 04:11 Zeno` Yeah I wrote a little stub to put plants in random places 04:11 Zeno` let me see if I still have it 04:11 VanessaE point being, I seem to recall you ruled out plants_lib as being the fault here :) 04:12 Zeno` Yeah I do remember doing that now 04:20 Zeno` I can't find it :( 04:20 Zeno` I found some really useful C snippets though... blah.c shit.c test.c 04:21 paramat so far plantlife works alongside landup, but is slow, i recommend rewriting using voxelmanip and not 'find nodes in area' 04:21 VanessaE vmanip won't be any faster 04:21 VanessaE find_nodes_in_area() is capable of filtering the map in one cal 04:21 VanessaE call* 04:21 VanessaE can't do that with vmanip 04:23 VanessaE though I'll consider doing that later 04:24 Zeno` Perhaps I am using voxelmanip incorrectly? 04:25 Zeno` I haven't ruled that out yet 04:25 * paramat finds a mountain range at last 04:25 Zeno` If I am using it incorrectly then of course I could have ruled out plants_lib 04:26 VanessaE Zeno`: yeah but if you are, then SPlizard is also... 04:27 Zeno` Well, I copied someone else's code. Just looking at it now, is vm:write_to_map(data) correct? It seems I could be calling it simply as vm:write_to_map() 04:27 Zeno` Not sure... reading docs 04:27 paramat where landup and plantlife share chunks both work good 04:27 VanessaE Zeno`: it shouldn't matter *what* you do to the map though. 04:27 paramat glowworms code looks okay to me 04:28 Zeno` hmm ok 04:29 paramat i don't trust 'find nodes in area' because i once used 'find nodes near' and it was very slow even for small radii 04:29 VanessaE paramat: it's always worked for me :) 04:29 paramat and this modpack has multiple calls to plantslib 04:29 VanessaE paramat: nope.avi 04:29 paramat oh okay 04:29 VanessaE one single call to that function 04:29 paramat wise 04:30 VanessaE well there are two (one in the legacy don't-check-for-air code) 04:30 VanessaE but it's not like it used to be 04:31 VanessaE register_on_generated [start] --> read the map with one call to find_nodes_in_area() with a list of potential surfaces, search that list for surfaces with air above, pass the result into the action loop which populates the surfaces according to the biome defs (this is where all those calls actually went), loop ends ---> [exit on_generated] 04:32 VanessaE the no-air-check does the same thing, from a separate table and a separate call to find_nodes. 04:32 VanessaE s/search that list/search the returned table/ 04:33 VanessaE the code got only about 2.5x faster when I reduced the number of calls to find_nodes from 123 to 2. 04:33 VanessaE so it's not really slow at all compared to the rest of the code :) 04:35 paramat it's still slow for what it does, i recommend simplifying and using voxelmanip 04:35 VanessaE it's a latency issue more than a speed issue 04:36 VanessaE the mapgen queues up too many blocks all at once and then spits them out in a big glob 04:36 VanessaE but I'll do what I can 04:39 paramat are various experiences are still bemusing though, however, still IMO too early to say there is a bug with voxelmanip 04:39 paramat (our various ...) 04:45 * paramat thus evades having to kick hmmmmm's ass 04:54 hmmmm darn 04:54 hmmmm he left 04:54 hmmmm --; 04:54 hmmmm and one minute ago too 04:54 hmmmm ghghghghghgh 04:55 VanessaE heh 05:35 paramat here hmmmm 05:43 Zeno` hmmmm, do you know why LuaVoxelManip::l_read_from_map() calls vm->initialEmerge() ? 05:44 Zeno` Doesn't that get the map as if it was unmodified mapgen data? Or am I misunderstanding 05:45 Zeno` hi paramat 05:45 paramat o/ 05:57 hmmmm Zeno`: it calls initialEmerge because initialEmerge reads the map 05:58 paramat 'unturned' is a cute new game worth checking out, however the 'sun rays' are irritating, as they are in any game 06:00 Zeno` hmmmm, yes I see that now 06:14 hmmmm paramat, there's a specific combination of mods that has the issue vanessae mentioned 06:14 hmmmm snow biomes and the flower mod 06:15 Zeno` my mod (glowworms) and plantlife as well 06:15 paramat interesting ... 06:15 hmmmm ughhh 06:15 hmmmm i'm gonna have to install mods 06:15 hmmmm i hate having to install mods 06:15 Zeno` fortunately changing my mod to use set_node() makes very little difference performance wise (I still read the map using voxelmanip) so I worked around it 06:23 paramat hmmmm, hope you saw my request for 'force placement' bool to remain in schematics 06:23 hmmmm i would never remove features 06:28 paramat cool, thanks 06:29 Zeno` interesting 06:29 Zeno` https://github.com/minetest/minetest/blob/master/builtin/game/register.lua#L347 06:30 Zeno` If I change that to for i = cb_len, 1, -1 do then my mod and plantlife coexist nicely, so obviously order is important 06:34 paramat order of multiple 'on generated' callbacks? 06:36 Zeno` the order they're called in, yeah 06:36 paramat perhaps the order can be controlled with dependancies 06:36 Zeno` Is there a way to force/prioritise order of on_generated callbacks? 06:37 paramat i was told the order is the order of registration 06:37 Zeno` I think VanessaE tried that, but the problem I have with that is putting plantlife as a dependency when it's not *really* a dependency in the strict sense of the word (IMO) 06:37 Zeno` Yeah that seems to be the case 06:38 paramat okay so that might explain your exception to our findings 06:39 Zeno` possibly yes 06:40 Zeno` There is no other way to control the order of callbacks other than the order mods are loaded? 06:40 Zeno` on_generated callbacks* 06:41 paramat doubt it 06:44 Zeno` paramat, the depends doesn't fix it :/ 06:44 paramat 8/ 06:44 Zeno` I think I would need to add my mod as a dependency to plantlife... which is kind of back to front 06:44 hmmmm stop with the hacks already 06:44 Zeno` I'm not hacking 06:44 Zeno` I'm experimenting 06:44 hmmmm it's a bug, simple 06:44 hmmmm heh 06:45 hmmmm honestly you're not getting too far with experimenting 06:45 Zeno` experimenting to understand is helpful to ME 06:45 hmmmm this is something i am pretty sure i know what's going on about 06:45 paramat so the order isn't determined by order of registration? 06:45 Zeno` well I am, because now I know that order is important and I know how the callbacks are actually called, so I learned something 06:45 hmmmm vanessae insists that somehow set_node calls are overwritten by a voxelmanip object that has already committed its changes 06:46 Zeno` It must be terribly boring to never experiment with things to see how they work :p 06:46 hmmmm i can't say this is false because i haven't even run minetest in months, but it certainly smells like a lot of bullshit 06:47 Zeno` How do you explain that things work if I reverse the order of callbacks? 06:47 hmmmm it's probably that vanessa got confused with the order of the mods running, and set_node callbacks in on_generated are getting run before voxelmanip ones, and the voxelmanip object obviously doesn't get updated from a set_node call 06:47 hmmmm in that case all I'd do is add a new voxelmanip function to check if the area it has loaded is dirty or not 06:47 Zeno` I'm not suggesting that as a SOLUTION 06:48 hmmmm changing order of callbacks is not a solution 06:48 Zeno` I'm not suggesting that as a SOLUTION 06:48 hmmmm i already know how to fix it --; 06:48 Zeno` I did it to confirm that order was important and to aid in my understanding 06:48 hmmmm if it is what i think i tis 06:48 Zeno` sorry for being curious :p 06:48 hmmmm anyway read my explanation from a couple lines up 06:48 hmmmm you realize that a voxelmanip object contains a *copy* of the map, right? 06:49 Zeno` I did. I think it's the reverse of what you said :) 06:49 Zeno` Yes I do 06:49 Zeno` A copy of when the object is created 06:49 hmmmm when the map gets updated independently from the voxelmanip, the voxelmanip memory won't have those things that got changed 06:49 Zeno` It doesn't seem threaded though 06:49 hmmmm so then when you have a mod's on_generated callback get the voxelmanip for that area you just did some set_nodes on, it's going to have the way the map looks just after mapgen generation 06:50 paramat ! 06:50 Zeno` so the data from the voxelmanip is not written back to the map when you call write_to_map()? 06:50 hmmmm then when that voxelmanip memory is committed, it'll effectively "wipe out" changes 06:50 hmmmm it is 06:50 hmmmm it is written back to the map once you call that 06:51 hmmmm but the data being written back is the data the voxelmanip currently has 06:51 hmmmm not what the map has 06:51 Zeno` ok it is. So why doesn't vmanip have a copy of the map in it's state after the previous on_generated callback? 06:51 paramat voxelmanip should read from map the results of the previously run mod's actions 06:51 hmmmm what vanessae contends is that this, in fact, is incorrect, and nonsensically, set_node changes are being wiped out far after the voxelmanip mod has run 06:52 Zeno` It obviously does, otherwise the order of execution wouldn't matter and I've already shown that it does 06:53 hmmmm Zeno`, the actual voxelmanip that was used by the mapgen is being modified whenever you call vm.set_data() 06:53 hmmmm so if you have mod #1 get the voxelmanip object in on_generated and you set_data to all... stone or something 06:53 Zeno` So there needs to be a way to call all the vmanip callbacks first 06:53 hmmmm and then mod #2 on_generated fires, and gets the voxelmanip object... it'll have the stone there 06:54 hmmmm but set_node() is completely different mechanism from voxelmanip 06:54 hmmmm set_node directly modifies map 06:54 hmmmm it does not know about any such voxelmanip objects that may have that area loaded in 06:54 Zeno` ok it is. So why can't vmanip get a copy of the map in it the maps current state after the previous on_generated callback? 06:54 hmmmm so you're saying you want every single on_generated callback to re-read the map? 06:54 hmmmm that would certainly work, but do you realize how inefficient that is? 06:54 Zeno` Probably not 06:54 Zeno` Yes 06:55 hmmmm now like i said 06:55 hmmmm you'd only want to re-read this if the voxelmanip is dirty 06:55 hmmmm i.e. if a node being contained inside the area of a voxelmanip had been modified outside of the voxelmanip 06:55 Zeno` I can follow that, yes 06:55 paramat ah i think i see ... 06:56 Zeno` And that's how I've understood it all along 06:56 Zeno` So a combination of order and some kind of dirty flag would, surely, solve the problem 06:56 Zeno` anyway, bbiab 06:56 Zeno` dinner time 06:56 hmmmm so then i would just modify the get_data() to have a new boolean parameter to control the cache state 06:56 hmmmm by default this would be 'true', as in "yes, re-load the map if the area had been invalidated since the last read" 06:57 hmmmm and then get_data() would look like: 06:57 Zeno` Thanks for explaining what bools are :p 06:57 hmmmm if (this->is_dirty) 06:57 hmmmm this->initialEmerge(p1, p2); 06:57 hmmmm this->is_dirty = false; 06:58 hmmmm or whatever 06:58 hmmmm the difficult part here would be how to decide which voxelmanips are listening for changes to their area 06:58 hmmmm i'd have to keep track of voxelmanips that are currently active on that Map object 06:59 paramat i had assumed each 'on generated' always re-reads the map as it was left by the previous 'on generated' *:/ 06:59 hmmmm so then when Map::setNode() is called, it'll loop through all the voxelmanips and then check if the position of the node being set is contained in a cuboid of one or more of the voxelmanips and then set their dirty flag 07:00 hmmmm as you can already imagine, this is going to require synchronization nonsense 07:00 hmmmm but without a doubt, it is the most efficient solution to the problem 07:01 hmmmm for completeness, i'll have the mark-as-dirty check in voxelmanip blitbacks as well, to take care of the unusual edge case of two active voxelmanips with an intersecting area 07:02 * paramat will probably make that unusual case happen 07:02 hmmmm --; 07:02 Zeno` or you could just add a some kind of priority when registering the callback and if none given put it at the back of the queue, and leave it for modders to decide in the meantime 07:02 hmmmm ..eh 07:03 hmmmm how about i just do my non-hacky solution 07:03 hmmmm grr 07:03 hmmmm fine whatever 07:03 Zeno` yep, ok. I didn't realise priorities were a hack. Most kernels use them. 07:03 hmmmm priority should not matter here 07:04 hmmmm there is no concept of priority for callbacks 07:04 Zeno` In a perfect world, no 07:04 Zeno` make it a concept 07:04 paramat thanks for explaining hmmmmm 07:04 Zeno` How does it hurt? 07:05 hmmmm https://github.com/minetest/minetest/blob/master/builtin/game/register.lua#L378 07:06 Zeno` err, not exactly what I envisioned 07:06 hmmmm change "function (func)" to "function (func, index)" and do table.insert(t, func) 07:06 Zeno` yes 07:06 hmmmm t, index, func rather 07:06 Zeno` or just priority 07:07 Zeno` and insert at the appropriate index 07:07 hmmmm priority = priority or table.size 07:07 Zeno` yes 07:07 hmmmm so that way if the parameter isn't provided it'll just append 07:07 Zeno` so that wouldn't break existing mods 07:13 paramat okay 8am ... i'm off will read logs later 07:13 Zeno` bye bye 07:13 * paramat will sleep easier now 10:31 Zeno` Anything new happening? 11:09 Megaf heh, Minetest is abusing and burning my CPU acording to OS X dmesg, http://paste.debian.net/118344/ 11:53 Zeno`` yikes 12:12 Megaf heh, Minetest is abusing and burning my CPU acording to OS X dmesg, http://paste.debian.net/118344/ 12:16 Zeno` Well, it appears nobody has implemented the simple fix for voxelmanip. I guess we have to wait for the overly complex solution because the more complex it is the less likely it's a hack. 12:18 PenguinDad Zeno`: simple fix for what? 12:19 Zeno` voxelmanip; actuallt, order of on_generated callbacks 12:21 Zeno` hmmmm wants to do some crazy transaction based method when being able to simply specify the order or priority of those callbacks will solve the problem 12:22 Zeno` Because the simple answer is a "bullshit hack" 12:24 Zeno` I have no idea why the more complex a solution is the "better" it is 12:27 Zeno` I guess IRQ priorities are a hardware hack 12:27 Zeno` that don't address the order of execution problem properly :/ 14:32 Sokomine i'm not sure if a dirty flag will help. the villages-code uses voxelmanip for the entire area; yet it has to resort to set_node or similar for metadata. perhaps it might be easier to pass changes done via set_node/add_node/remove_node in on_generated to the voxelmanip data? 14:33 Sokomine but i don't really know the code. if this suggestion is rubbish, just forget about it 14:35 Zeno` Being able to set the order that the on_generated callbacks are called can solve the issue 14:35 Zeno` there is no need to complicated this Sokomine 14:35 Zeno` complicate* 14:36 Zeno` But, I don't thing voxelmanip affects metadata anyway so that's probably a separate issue (from memory the only thing that voxelmanip does is set param0 aka the node id) 14:37 Zeno` content id* 14:37 Zeno` whatever it's called :) 14:42 Sokomine that's right. and that's why - in this special case - further calls are needed additionally to voxelmanip. the main work can be done by voxelmanip though. just the chests etc. need special treatment 14:42 Zeno` What I am annoyed about it hmmm's attitude 14:42 Zeno` interesting 14:42 Zeno` https://github.com/minetest/minetest/blob/master/builtin/game/register.lua#L347 14:42 Zeno` If I change that to for i = cb_len, 1, -1 do then my mod and plantlife coexist nicely, so obviously order is important 14:43 Sokomine there'd be no need to invoke any dirty flags in this case as the nodes themshelves are not changed 14:43 Zeno` stop with the hacks already 14:43 Zeno` I'm not hacking 14:43 Zeno` I'm experimenting 14:43 Zeno` after that I reiterated that what I was doing was not a solution 14:44 Zeno` and he kept going on about how my solution was a hack when it was never meant as a solution, merely an observation 14:44 Sokomine hmmmm is not always easy to get around with. yet he does excellent work. 14:44 Zeno` I agree 14:45 Zeno` but jumping to conclusions about what I was saying is... insulting 14:45 Zeno` putting words in my mouth and not even listening when I try to correct those assumptions 14:45 Zeno` anyway, I'm over it :) 14:46 Zeno` the "proper" way is not always the correct way btw 14:47 Sokomine fine :-) getting along with each other and managing to communicate is sometimes difficult with all those diffrent languages, cultures and personalities out there 14:47 Zeno` yep 14:56 celeron55_ i'm sure all of you know how to discuss things objectively, so just do that with the goal of making stuff that will work years into the future without becoming a PITA 15:00 celeron55_ (the hardest part for me tends to be having to explain complex things to some random people on the internet who are likely to just do nothing and disappear and make the whole discussion a wasted effort; there's no good way of fixing that; every established developer can have that problem) 15:02 celeron55_ (so new guys: yes, you're almost worthless until you prove otherwise and you will always see it in how busy people act towards you; however, it will change at the instant you make something that is accepted into the project) 15:03 Zeno` Ok, well I was being objective 15:03 Zeno` I don't expect to be attacked for making an observation 15:04 Zeno` I don't expect it in real life and I don't expect in on IRC 15:04 Zeno` it* 15:04 celeron55_ yes hmmmm isn't always fair at all; don't take it too personally 15:05 Zeno` Oh, I'm over it now 15:05 celeron55_ me neither 15:05 celeron55_ i just decided to throw some random half-philosophical thoughts in here and that's almost always a bad idea 15:08 Zeno` The strange thing is that I'm asleep right now 15:08 Zeno` I have no idea who's typing this 15:09 celeron55_ i'm being very random but... like, i'm bothered by you having to get over it 8) 15:10 Zeno` I'm sorry for making you bothered 15:10 Zeno` :p 15:10 celeron55_ anyway it looks like you got a lot of answers so that discussion doesn't seem all that bad 15:10 Zeno` In the end it turned out fine, which is why "I'm over it" (perhaps a bad choice of words) 15:11 Sokomine it's good that you're bothered about it :-) apart from all the technical aspects, we sometimes have to remind ourshelves that there are other humans behind the screen - and that missunderstandings are easy and some things sound more harsh. while at the same time devs prefer to get a good solution to a problem 15:11 celeron55_ my point is, always when discussing with someone who originally made a feature, the discussion will be harsh 15:12 celeron55_ more or less such, depending on the personality of the author 15:12 Sokomine (and yes, i know that all those "users" can be very annoying :-) especially if they take a long time to understand what's so obvious to oneshelf) 15:12 Zeno` no no, I was more bothered by the immediate assumption that I was suggesting a solution (when I was not, and I thought I made that clear) 15:12 Zeno` Perhaps I need to brush up on MY communication skills 15:12 celeron55_ oh yeah, making a distinction between an experiment and a proposal is important 15:12 celeron55_ half of MT is a bodge of random experiments that were just left there so that is easy to miss 15:13 Zeno` Anyway, can we move on from this? :) 15:13 realbadangel__ hi 15:13 celeron55_ yes 15:13 PenguinDad Hey RealBadAngel 15:14 Zeno` Thanks. And good night :) 15:14 Zeno` Hi RBA, bye RBA 15:14 RealBadAngel celeron55_, lately i made a commit with main menu music score 15:15 RealBadAngel it was kinda old style, demoscene 15:15 RealBadAngel most of the folks do not like it (why oh why) ;) 15:15 RealBadAngel so i found a new one 15:16 RealBadAngel http://incompetech.com/music/royalty-free/mp3-royaltyfree/The%20Descent.mp3 15:17 RealBadAngel celeron55_, can you try it? 15:18 celeron55_ no we won't have common main menu music 15:19 RealBadAngel you want them per game? 15:19 celeron55_ at most 15:19 RealBadAngel two cons then 15:19 RealBadAngel minimal is default 15:19 celeron55_ but games don't really need main menu music and MT doesn't really need music anywhere anyway 15:19 RealBadAngel and will be chosen at first sight 15:20 celeron55_ minimal should be disabled from the menu by defauult 15:20 celeron55_ -u 15:20 celeron55_ (unless it's the only one available, maybe) 15:20 RealBadAngel thats good idea 15:21 RealBadAngel but my 2nd thought, if music score will be per game, selecting games will make it a jukebox 15:21 RealBadAngel and above all yes, we do need music 15:22 RealBadAngel you may curse me or whatever, but a game need a music 15:25 celeron55_ well, it can improve the experience of a game, which is why i'm okay with having it per-game for that purpose 15:25 PenguinDad RealBadAngel: that song is much better than your previous suggestion imo 15:28 Sokomine many players did indeed complain about lack of music/sound effect quality and asked for improvements on the forum 15:31 RealBadAngel celeron55_, ingame music is up for games 15:32 RealBadAngel we are talkin now bout main score 15:32 RealBadAngel the flagship 15:32 Calinou music playing by default is problematic for users with high OS/hardware volume and people using headphones 15:33 celeron55_ there is no common feeling or anything to try to embrace in the main menu with music 15:33 RealBadAngel stop jokin 15:33 celeron55_ it's not useful at all 15:33 Calinou it leads to people starting the game for the first time, then going all “Argh! My Sennheisers!”… 15:33 RealBadAngel sound playing was problematic in 8-bit age 15:33 celeron55_ instead, games can have such in the menu so game-specific makes sense 15:33 Calinou it's not a matter of sound quality here 15:33 RealBadAngel not 21st century 15:33 Calinou volume is the problem 15:34 celeron55_ Calinou: you can't be serious 15:34 RealBadAngel and before any dare to ask 15:34 celeron55_ if you start a game, you expect it to have sound 15:34 celeron55_ that isn't an issue 15:34 RealBadAngel i tested a few tunes on my sennheisers 15:34 RealBadAngel at work 15:35 RealBadAngel few hours per tune 15:35 RealBadAngel they dont get annoying 15:36 Calinou not really 15:36 Calinou I am serious. 15:36 Calinou it's as problematic as sound-playing sites that play on page load. 15:37 Calinou by the way, Minecraft doesn't play immediatly music when starting it 15:37 RealBadAngel fade in and fade out 15:38 Calinou you need a long fade in, at least 5 seconds 15:38 RealBadAngel (in case we would make them per gme) 15:38 RealBadAngel *game 15:39 RealBadAngel btw technic and dreambuilder scores are also propably picked 15:39 RealBadAngel dreambuilder: http://incompetech.com/music/royalty-free/mp3-royaltyfree/Americana.mp3 15:40 RealBadAngel technic game: http://incompetech.com/music/royalty-free/mp3-royaltyfree/Americana.mp3 15:40 RealBadAngel ooops 15:40 RealBadAngel http://incompetech.com/music/royalty-free/mp3-royaltyfree/Future%20Gladiator.mp3 15:41 RealBadAngel ^^ above is for Technic 15:41 Calinou .mp3? no thanks 15:41 Calinou not even converted 15:41 Calinou royalty-free is not enough 15:42 Calinou also no loaded songs 15:44 RealBadAngel license is good to go 15:44 RealBadAngel convertion is not a problem 15:44 RealBadAngel its cc license 15:44 Calinou it decreases quality in a visible way 15:44 Calinou “Which CC?” 15:44 Calinou modification and commercial use must be allowed 15:45 RealBadAngel we are not commercial 15:45 Calinou … 15:45 Calinou preventing commercial use is non-free: http://freedomdefined.org/Licenses/NC 15:45 RealBadAngel we do not need that 15:45 Calinou we sure do 15:45 RealBadAngel no we dont 15:45 RealBadAngel cc by sa is enough for us 15:45 Calinou forks of Minetest are getting sold right as we speak 8) 15:45 Calinou … 15:45 Calinou whoa 15:46 Calinou you really have no idea what you're talking about 15:46 Calinou CC BY-SA doesn't prevent commercial use 15:46 Calinou what does is CC BY-NC or CC BY-NC-SA 15:46 RealBadAngel The Standard License is available for projects where attribution is not wanted or is otherwise impossible. (radio ad, TV ad, corporate presentation, commercial short, on-hold music, etc.) 15:46 RealBadAngel There is no charge for a Creative Commons license. It does require that you credit the music. 15:47 Calinou if you buy a license, it's exclusive and thus non-free 15:47 RealBadAngel but if you fuckin insist i will buy the license 15:47 RealBadAngel is that ok with you? 15:49 Calinou no. 15:49 RealBadAngel credit is enough in our case 15:50 Calinou do you understand what I say? 15:50 Calinou there are several CC licenses 15:50 Calinou some are free, some aren't 15:50 Calinou (free as in freedom.) 15:51 RealBadAngel There is no charge for a Creative Commons license. It does require that you credit the music. 15:51 RealBadAngel please translate it to english 15:52 Calinou (free as in freedom.) 15:52 Calinou not about price 15:53 RealBadAngel facts please 15:53 VanessaE Calinou: on the site RBA gets that music from, all of the "royalty free" music, the license is CC-by-SA 3.0 unported. No ND or NC clause. 15:53 RealBadAngel usage, pirce, conditions 15:53 Calinou ah 15:53 Calinou still .mp3 and possibly sounds like crap 15:53 VanessaE Calinou: nope, sounds pretty good. 15:54 RealBadAngel why the fuck you are thinkin we gonna use mp3? 15:54 RealBadAngel and even if, so what 15:54 VanessaE RealBadAngel: "Americana" sounds like something by Alan Silvestri.. "Forrest Gump" or similar 15:55 RealBadAngel i picked that because youre female and i kinda know your taste 15:55 RealBadAngel was i right? 15:55 VanessaE mmhmm 15:55 VanessaE pretty close yes 15:55 Calinou conversion decreases quality 15:55 RealBadAngel kinda opposite to technic tribal one yes? ;) 15:56 VanessaE RealBadAngel: yeah 15:56 VanessaE about as opposite as it gets :P 15:56 RealBadAngel calinou for that i can buy aiifs 15:56 VanessaE Calinou: it can if the codecs suck 15:56 VanessaE Calinou: but if you have a high enough bitrate for the source material, then it doesn't matter - if you can't hear the loss of quality, then it's not important that there is one 15:56 * Calinou facepalms 15:57 Calinou VanessaE, yes, if your mp3 is 320 kb/s it'll be fine 15:57 Calinou sadly, most of them are 192 kb/s 15:57 RealBadAngel calinou, you realize that for game usage we have to make it mono 15:57 RealBadAngel and lower the bitrate? 15:57 VanessaE Calinou: that "Americana" was 320 kbps. 15:58 Calinou OK 15:58 troller olly .flac!!! 15:58 troller only 15:58 Calinou making it mono isn't a problem 15:58 Calinou RealBadAngel, you don't have to lower bitrate 15:58 RealBadAngel only troller :P 15:58 Calinou keep it reasonably high 15:58 Calinou I don't think the music is even sent in multiplayer 15:58 RealBadAngel i know what i wanna do with main menu 15:58 VanessaE Future Gladiator is also 320 kbps. 15:58 troller all music lower 1mbps - noisy shit!!! 15:59 RealBadAngel i want the scene, with player in the middle 15:59 RealBadAngel and 360degs panorama 15:59 RealBadAngel and fuckin music for that 15:59 RealBadAngel cinematic 15:59 * Calinou facepalm 15:59 Calinou I stopped reading at “panorama” 15:59 VanessaE troller: double-blind studies have already ruled that even the best audiophiles can't tell the difference between FLAC and anything over roughly 256 kbps. 15:59 Calinou stop imitating Minecraft stuff 16:00 Calinou VanessaE, high-quality OGG is still useful 16:00 RealBadAngel lol 16:00 VanessaE Calinou: indeed, good for a "master" format 16:00 VanessaE sorta like the 2k and higher files I use for HDX 16:00 RealBadAngel calinou, i was demoscene coder before notch started to shit in his pants 16:00 Calinou no, for listening 16:01 VanessaE Calinou: for listening only if the quality is above your personal threshold, yes 16:01 Calinou not everyone has the same threshold 16:01 VanessaE I know 16:01 VanessaE but as I said, double-blind studies already worked this out. 16:01 RealBadAngel if i mean main menu score i mean whole the effect 16:01 RealBadAngel movie plus music 16:02 VanessaE most people in a silent, sound-controlled environment can't tell the difference between 256 kbps and an uncompressed source. 16:02 RealBadAngel the way how it should look like 16:02 VanessaE hell most can't tell 128 kpbs from an uncompressed source if the codec is good enough and the speakers/headphones are "just okay" 16:02 VanessaE and that's like 90% of the listening public. 16:02 RealBadAngel to attract the folks and bring them to their knees 16:03 VanessaE (and I say this as someone who always uses the highest quality settings or opts for FLAC whenever possible in her own music library) 16:03 RealBadAngel game doesnt need loseless formats 16:03 RealBadAngel ogg is enougn 16:04 VanessaE ogg is fine as long as the source material is well-mastered, noise-free, and a good codec is used to create the ogg 16:04 RealBadAngel decent music i managed to play on RS latches 16:04 RealBadAngel on Z80 16:05 RealBadAngel and i made and soldered all of them 16:08 VanessaE I'll do you one better - I did it with an R-2R ladder on the C64 user port :D 16:09 RealBadAngel latches were first, to hold the signal 16:09 RealBadAngel ladders were after them 16:10 Calinou and you whine about audiophiles… 16:12 VanessaE Calinou: this was before MP3 existed :P 16:13 RealBadAngel im not audiophile, im technocrate 16:13 VanessaE neither am I an audiophile. :) 16:13 VanessaE a music lover listens to the music. an audiophile listens to the noise :P 16:14 RealBadAngel vinyl noise is rare and precious 16:38 casimir For main menu music this is a good source: http://opengameart.org/art-search-advanced?keys=loop&field_art_type_tid[]=12 16:54 RealBadAngel from what i can see, whatever i will choose and make, there will be always a hater there 16:54 RealBadAngel so i will just do my best to make it shine 16:56 RealBadAngel game main menu should be a visit card of the game 16:56 RealBadAngel not pull down submenu of the system 17:00 Calinou make it have a better theme first 17:00 Calinou more readable buttons, larger font 17:04 VanessaE Calinou: sapier's working on that. 17:04 VanessaE and zefram_fysh 17:04 Calinou textures are not necessarily a better choice. 17:05 Calinou procedural generation is preferable 17:05 Calinou hello, high-DPI screens… 17:46 paramat 320mp3 sounds okay, but i notice a difference to FLAC. The game engine is neutral so can't have music, it's a game thing. Music in menus is a waste of memory because players only spend a few seconds there. Music files are super-heavy, it's far better for players to provide their own music than doubling/tripling the size of a MT download for music most will tire of quickly, i'd rather download additional subgames. 17:53 Calinou ^ 17:53 Calinou theme-less games can't really have music 17:53 Calinou or very neutral, classical one 17:54 paramat Would music be downloaded to clients? seems to me media download would become unbearable. 17:55 Calinou unlikely 17:57 paramat If players ask for music it's because they're used to mainstream games, we should give them a refreshing change and encourage them to provide their own choice of music. 17:59 paramat Also, i'm impresses that RBA can listen to a tune on repeat for hours without getting tired of it, who else could do that? ;) 18:00 paramat (impressed) 18:00 Calinou our issue list is long enough 18:00 Calinou how about we instead tackle it? 18:04 VanessaE Calinou: what? are you crazy? 18:04 VanessaE FIX ISSUES? 18:04 * VanessaE gasps at the horror 18:04 Calinou eg. https://github.com/minetest/minetest_game/pull/312 18:08 paramat We'ew so lucky to have the top devs we do, this game would be such a mess otherwise 18:08 paramat (we're) 18:10 Calinou top devs?! 18:10 Calinou developers are mostly bad 18:10 Calinou we have a lunatic, a Minecraft emulator, a troll, a mathematician… 18:11 PenguinDad What's bad about mathematicians? 18:13 Calinou they spend their time making stupid mapgens that look pretty :/ 18:13 Calinou we've clearly seen this last year 18:13 Calinou but they're unplayable 18:14 paramat Zeno`, if you see this, hmmmmm would have been sleeping straight after our chat so could not have worked on voxelmanip 18:23 paramat anyway bbl 18:29 Jordach Calinou, if someone fucking asked I'd make MGV7 mapgens a thing 18:30 Calinou meh, just look at small issues, fix them 18:30 Jordach and i noticed the -dev attachment again 18:33 * Jordach purrs at Calinou 18:33 Jordach again 18:36 * sfan5 meows at Calinou 18:53 RentedMule does anyone know the name of the prefered deb/ubuntu package for redis library support? 18:55 RentedMule ah, it's hiredis. 19:34 Sokomine if you want to fix bugs, there's still https://github.com/minetest/minetest/issues/944 19:34 * Sokomine looks hopefully 19:35 Sokomine upon celerons suggestion, i've added more documentation regarding the bug and a simple mod that makes testing regarding potential bugfixes easier: https://github.com/Sokomine/experimental 19:38 Sokomine the documentation of the bug and the steps to reproduce it can be found in the README.txt of said mod 19:47 celeron55_ Sokomine: i don't think the api needs any extensions for this 19:47 celeron55_ what should happen is that both of the slots get called allow_put and allow_take, and then that happens if all of those four things are allowed 19:51 Sokomine if all four calls where done, that'd be fine, yes. 2 calls may do already - player inventory is usally of less intrest/does not have those limitations 19:51 celeron55_ it's a bit weird though, i'm not sure if it causes ambiguous situations 19:51 Sokomine although...a function that checks when a player gets or looses inventory might also be useful as an api fucntcion 19:52 celeron55_ well there can be other inventories than the player's inventory 19:52 Sokomine perhaps the swapping parameter might be easier to implement. it would solve the current problem 19:52 Sokomine hm. you're right. it's just that we somehow always have the player's inventory at the bottom half of the screen. it's so common players may even get confused if it where otherwise 19:53 celeron55_ well, you can put them side by side or something to make the distinction; in any case, it's entirely possible 19:53 celeron55_ anyway, that extra will_swap parameter doesn't give control for what the item to be swapped into the place is, which could be bad for some purpose 19:54 celeron55_ i guess extending the api could be done by adding an entirely new allow_swap call for this, IF extending it is needed 19:55 Sokomine no, it doesn't give control. the only thing which could be done then would be to deny the move - which would be better than the current state 19:55 celeron55_ any decision made here will certainly shape the feel of the system to both players and modders 19:55 Sokomine i thought about providing information about the destination stack, but that seemed more complicated 19:57 celeron55_ i think i could accept the will_swap parameter if more modders agree that it will work for enough purposes 19:58 Sokomine not necessarily. if we choose your patch, it would have a lot of impact and be rather impractical, although it does fix the bug. trouble is: in most cases, the swapping is a good/convenient solution for the player 19:58 celeron55_ then checking the move will require just two allow_take calls with that parameter set 19:59 Sokomine good question. i don't know how many ran into this problem. i'm not sure there's any other mod out there which might have that issue; for most inventories, it might be a slight inconvenience to have input in an output-only slot, but it does not matter (i.e. furnaces - who really cares if they get input in their output slots?) 20:04 Megaf what do you think about this? 20:04 Megaf process minetest[3462] thread 200631 caught burning CPU!; EXC_RESOURCE supressed due to audio playback 20:04 Megaf That’s what my OS X’s dmesg says 20:59 hmmmm Zeno`: I did not say that priorities were a hack, my point was that using priorities to solve this particular problem is a hack 21:00 hmmmm like for example how many CPUs do you know order multiple loads/stores across different threads in order to save on cache invalidation/flush logic? none 21:01 hmmmm i didn't implement that load order thing last night because it was past 3 AM and i thought i sufficiently explained what needed to be done so somebody else (like you) could do it... 21:02 hmmmm it might take 5 seconds to code but you still have to test it to make sure it works and that's what will take longer to do 21:02 hmmmm so i can't do that at 3 AM in the morning 21:02 hmmmm s/load order/callback order/ 21:03 VanessaE I wanted to ask...exactly what IS the order of callbacks? determined by dependency resolving, alpha order otherwise? or something else? 21:03 hmmmm the most recently registered callback gets added last 21:04 hmmmm so if mod A is a dependency of mod B, and mod A has an on_generated as well as mod B, mod A's callback will be called first followed by mod B 21:04 VanessaE ok, that's what I figured. 21:05 hmmmm all this morning i've been doing family stuff and cleaning the house, and soon I'm going to some festival with my gf, so I don't know how much work I can put in 21:05 hmmmm see I only get the weekends to do this 21:05 hmmmm =/ 21:05 VanessaE I know. 21:06 hmmmm and I'm only basing my solution to this issue off of what it sounds like from people talking and my knowledge of the code 21:06 hmmmm you maintain that i'm incorrect though 21:06 hmmmm i can only know for sure if i try it independently 21:07 VanessaE the only thing I maintain being incorrect is that you can't pass the same map data to two or more callbacks. it's nonsensical. Somewhere, one of them has to be able to get the results of the other so that it can modify that data. 21:08 hmmmm did you read the log of last night 21:08 hmmmm i explained exactly what the issue is if mod A does set_node() and mod B does voxelmanip 21:08 VanessaE I did, but I'm not entirely sure I understand what the solution will end up being,. 21:08 hmmmm you say that the problem exists if mod A does voxelmanip and mod B does set_node() which makes nosense 21:09 hmmmm (the order of execution being A, then B, to be precise) 21:09 VanessaE yes and you also explained that you still have yet to actually install mods and *try* it. 21:09 VanessaE whereas Zeno, paramat, SPlizard, jp and I have all done so to one degree or another. 21:09 hmmmm don't know who jp is 21:10 * VanessaE grumbles. 21:10 VanessaE you didn't read what I wrote then. 21:10 VanessaE [08-29 01:33] is *anyone* gonna look into it? it's been a problem since last February. 21:10 VanessaE [08-29 01:35] https://forum.minetest.net/viewtopic.php?p=129941#p129941 <---- first report I recall seeing of this issue. 21:11 VanessaE I understand perfect about not having time to look into stuff. 21:11 VanessaE I get that. 21:11 VanessaE but ^^^^^ that, I don't get. 21:11 VanessaE no reasonable person would. 21:13 VanessaE since I wrote that within 1 minute of your last statement to the same effect, and you never responded, I assumed you had me on /ignore at that point, so I just left for the night. 21:13 hmmmm i don't ignore people 21:13 hmmmm i find that rather juvenile 21:13 VanessaE same here. 21:13 hmmmm compiling the most recent minetest now 21:14 hmmmm so what two mods do I need to replicate the problem? 21:14 VanessaE SPLizard's snow mod and my plantlife modpack. 21:14 VanessaE https://github.com/Splizard/minetest-mod-snow/ 21:14 VanessaE https://github.com/VanessaE/plantlife_modpack 21:15 hmmmm is there a reason why splizzard's name is capitalized in that manner? 21:15 VanessaE you will have to disable SPlizard's compatibility "hack" - edit snow mod's src/mapgen_v6.lua and comment out lines 307 and 324 21:15 hmmmm lol exit to menu crashes minetest 21:16 hmmmm hooray 21:16 VanessaE the capitalization? I think that's how he writes it in the forum. 21:16 hmmmm S.P. Lizard 21:16 VanessaE *checks*... actually it's Splizard 21:17 VanessaE (also I have a rollover glitch between my hands and this piece of shit keyboard, so stuff comes out with excess caps) 21:17 hmmmm just drag & drop the mod directory into minetest/mods? 21:18 VanessaE for plkntlife, yeah 21:18 hmmmm so the directory layout is like minetest/mods/minetest-mod-snow-master/init.lua? 21:18 VanessaE plantlife* 21:18 hmmmm does the directory name matter? 21:18 VanessaE for snow mod, I think it has to be named "snow" 21:18 hmmmm how about yours 21:18 VanessaE directory name matters for mods, but not for modpacks. 21:18 VanessaE mine can be anything; the existing name should be fine 21:19 hmmmm jesus christ 21:20 hmmmm i don't mean to knock splizard, but doesn't he realize the importance of breaking up functions into smaller chunks? 21:20 VanessaE heh 21:20 hmmmm if you have more than 4 levels of indentation, you're doing it wrong 21:20 VanessaE well I'm not much better though I have some changes to make in plantlife (for that very reason) 21:21 * VanessaE inserts a missing comma where needed. 21:21 hmmmm agh shoot did i need to do something special to enable the mods on map creation 21:21 VanessaE yes 21:21 hmmmm s/map/world/ 21:21 VanessaE click the map name, hit "Configure" 21:22 hmmmm yeah found it 21:22 hmmmm i don't recall needing to do that... 21:22 VanessaE click the mod in the list, check the "enable" checkbox at the top, and for the modpack, click the top level of the modpack name and click "Enable MP" 21:22 VanessaE yeah, been that way for a while 21:22 VanessaE this is why I keep telling you guys to actually *play* now and then ;) 21:22 hmmmm wow map generation is so slow 21:22 VanessaE you mean with plantlife + snow? 21:23 hmmmm yeah but i'm not seeing any snow areas yet 21:23 hmmmm did I need to enable MP? 21:23 hmmmm i don't play on MP ever 21:23 VanessaE MP for modpack 21:24 VanessaE so yeah, find the top level of plantlife in the list, click "EnableMP" to turn it on, then delete the map and try again 21:24 VanessaE (or just find some new land) 21:24 VanessaE expect it to take a while, 15-20 seconds 21:25 VanessaE big lag there because it queues up a whole bunch of mapblocks all at once for some reason 21:25 VanessaE (I have a plan to mitigate that somewhat) 21:26 hmmmm how far do i typically need to look in order to find a snowy area 21:26 VanessaE I'm not sure, around 50-100 nodes should be adequate 21:26 VanessaE you should see at least *something* pretty readily 21:27 hmmmm well i'm seeing tons of plantlife but no snow 21:27 VanessaE for plantlife, you'll know right away due to seeing a bunch of new stuff all over the map 21:27 VanessaE ok 21:28 VanessaE now, did you disable the hack I mentioned? 21:28 hmmmm yes 21:28 hmmmm still not seeing any snow at all 21:29 hmmmm with this issue, what am I supposed to be seeing exactly? 21:29 VanessaE actually you're seeing... if you'll excuse the pun... the polar opposite problem. 21:29 VanessaE you should *also* be seeing snow here and there 21:29 hmmmm i smiled 21:30 VanessaE snow biomes are only around 100 nodes or so in size if Splizard's map in the first post is still valid 21:30 hmmmm this is taking longer to find than i thought 21:30 VanessaE http://img802.imageshack.us/img802/3824/mapabu.png 21:30 hmmmm i need to do this later 21:31 hmmmm what is the seed for that? 21:31 hmmmm and coordinates 21:31 VanessaE none given in the first post 21:31 VanessaE however you can see that that particular map is old as fuck too 21:31 VanessaE it still has pre-mudflow trenches 21:32 hmmmm is snow not working because moreblocks isn't installed 21:32 hmmmm I see it has "moreblocks?" as a dependency 21:32 VanessaE nope. 21:32 hmmmm hrmm okay 21:32 VanessaE ? means it's optional. 21:32 hmmmm bbl 21:32 hmmmm i'll look more into it 21:32 VanessaE ok. 21:47 hmmmm alright i have a little more time 21:47 hmmmm vanessae: are you still around? 21:47 VanessaE yeah 21:47 * VanessaE hides 21:47 VanessaE should I be worried? 21:47 hmmmm just to verify, the modpack 'plantlife' is dark green and has a lot of indented subentries that are lime green 21:47 hmmmm and snow is green as well 21:48 VanessaE lemme check that 21:48 hmmmm it looks like a poor attempt to make a TreeView =/ 21:48 hmmmm the irrlicht toolkit is wholy unsuitable for a gui 21:48 VanessaE for plantlife, that's correct 21:48 hmmmm and then all the rest are blue 21:48 VanessaE I'm not sure if snow should that too - probably yet. been a while since I last ran it (because of this issue) 21:48 VanessaE blue = a regular mod 21:49 VanessaE (and a poor choice of color) 21:49 VanessaE jesus, my typing sucks. 21:49 VanessaE I'm not sure if snow should do that too - probably yes. been a while since I last ran it (because of this issue) 21:49 VanessaE that's better. 21:49 hmmmm hmmmmmm I am still not seeing any snow 21:50 hmmmm http://pastebin.com/E47UxCr4 i don't see Snow in here... bad? 21:51 VanessaE yeah, I'm pretty sure the snow mod prints a notification that it is enabled. 21:51 * VanessaE checks the code 21:52 VanessaE hm, it's a regular mod so it'll be among the blue ones.... 21:52 hmmmm vanessae, are you sure I didn't comment out the critical part of the code 21:52 hmmmm you told me to comment out lines 307 to 324 21:52 VanessaE positive. 21:52 hmmmm but voxelmanip data is never being written if i do that.... 21:52 VanessaE by doing that you're forcing it to always write its vmanip 21:52 hmmmm umm, are you sure you didn't mean to comment out lines 307 and 324? 21:53 VanessaE that's what I said to do. 21:53 hmmmm you said "to" 21:53 VanessaE [08-30 17:16] you will have to disable SPlizard's compatibility "hack" - edit snow mod's src/mapgen_v6.lua and comment out lines 307 and 324 21:53 VanessaE nope.avi 21:53 VanessaE I said "and". 21:53 hmmmm mm okay 21:53 hmmmm misread that 21:53 VanessaE you suck :) 21:54 VanessaE now, delete the map and start clean 21:54 VanessaE you'll find snow, and no plantlife stuff 21:54 VanessaE with that hack, plantlife will be able to run in the non-snow areas but only because he obviously doesn't run the vmanip then 21:54 hmmmm i see reedmace 21:54 hmmmm what is that 21:55 VanessaE it's one of plantlife's mods 21:55 VanessaE but I guess you only see part of it? 21:55 VanessaE the part in the water 21:55 hmmmm well i do see some reedmace 21:55 VanessaE yeah, reedmace is a special case, it's part entity. 21:56 VanessaE what you should see it a metric assload of...well what you saw before. 21:56 hmmmm hmm okay I see the issue you're describing 21:56 VanessaE yes 21:56 VanessaE *nods* 21:56 hmmmm snow things, and almost no plantlife 21:56 VanessaE yup 21:57 VanessaE THIS is what we've been banging our heads against the wall over :) 21:57 VanessaE same thing happened with zeno's MTZ mod, with those glowworms 21:57 VanessaE it used vmanip to place them, and so plants were no-go 21:58 VanessaE soon as he ditched the vmanip's, the plants were able to grow 22:02 hmmmm so let's see this 22:02 hmmmm splizzard's mod is the one being able to function properly and it uses voxelmanip 22:02 hmmmm your mod is the thing getting broken, which uses set_node 22:02 VanessaE yup 22:02 hmmmm does your mod get run before splizzard's mod? 22:03 VanessaE I am unsure what runs first, but putting snow into plants_lib's depends.txt doesn't always work - it's been tried in the past and didn't work. 22:03 VanessaE paramat also tried and was not successful 22:03 hmmmm how are you unsure what runs first 22:03 hmmmm the entire mystery here is based on you being "certain" that splizzard's mod ran first 22:03 VanessaE because neither snow mod nor plants_lib have each other as depends 22:04 hmmmm you fought with me tooth & nail that splizzard's mod ran first in fact 22:04 VanessaE but the only thing that makes sense to me is that snow is running first. 22:04 hmmmm that wouldn't make sense 22:04 VanessaE well, 22:04 hmmmm that's what i was arguing against because it just makes no logical sense 22:04 VanessaE if plants_lib were running first, wouldn't snow mod be starting with a plantlife- populated map? 22:04 hmmmm how can your mod's output get overwritten if splizzard's mod runs first 22:04 hmmmm what? 22:04 VanessaE s/map/mapblock/ 22:04 hmmmm are you kidding me 22:04 * hmmmm falls out of chair 22:05 hmmmm you CLEARLY didn't read what i have been explaining is the problem for the past 4, no 5 times we discussed this 22:05 hmmmm oh god 22:05 hmmmm just read the conversation i was having with paramat and zeno` last night, i'm not going to repeat myself 22:06 VanessaE I *did* read, but now you're coming back to whether execution order matters. If execution order matters, then that means that map data can change between on_gen callbacks. 22:06 hmmmm MAP data can change between on_generate callbacks 22:06 VanessaE yes 22:06 VanessaE and vmanip data doesn't 22:06 hmmmm VOXELMANIP data is different from MAP data 22:06 VanessaE I get that 22:06 VanessaE I know this 22:06 hmmmm wtf then 22:06 hmmmm where is the mystery 22:07 hmmmm i knew precisely what the issue was, within 5 minutes of first hearing about the problem 22:07 VanessaE so how then am I, in plants_lib, supposed to be able to tell $RANDOM_MAPGEN_MOD that what it read from the map is not in fact valid? 22:07 hmmmm and you kept on going "NO NO NO NO YOU'RE WRONG" 22:07 hmmmm you cannot 22:07 hmmmm I however, can 22:07 VanessaE ok, 22:07 VanessaE I didn't think so. 22:07 hmmmm yes 22:08 VanessaE see, we're on the same page here. 22:08 hmmmm you weren't for a long while 22:08 VanessaE it's just that you tend to explain with a shotgun approach, and you know it. 22:08 VanessaE blam! here's a whole bunch of explanations all at once 22:08 hmmmm now if I add "print "hello there 1" in your mod and "print "hello there 2"" in splizzard's mod, is it going to say "hello there 1 hello there 2"? 22:08 VanessaE intermixed with links to code that you know I don't understand as ell as you do 22:09 VanessaE well* 22:09 hmmmm you obviously have a lot of free time on your hands.... what's wrong with learning the code 22:10 VanessaE hah 22:10 VanessaE you try diving into a project as complex as this one with no prior knowledge. 22:11 VanessaE I took C in college. about 20 years ago, when it was still K&R. that's as close to C++ as I can get. 22:11 VanessaE passed the class, then moved on to stuff I could actually *use* at the time 22:11 hmmmm ... 22:11 hmmmm it doesn't take a genius to learn how2C++ 22:12 VanessaE learning the language may not be all that hard, but learning Minetest's codebase would be a real bitch and you KNOW that. 22:13 VanessaE plus, this: 22:13 hmmmm i got used to it fairly quickly 22:13 hmmmm you started playing minetest way before i have 22:13 VanessaE [08-30 11:02] (so new guys: yes, you're almost worthless until you prove otherwise and you will always see it in how busy people act towards you; however, it will change at the instant you make something that is accepted into the project) 22:13 VanessaE Why should I even try to learn and contribute to the core codebase with an attitude like this? 22:14 VanessaE (and this is *after* I've already done so) 22:14 hmmmm because it's rewarding as hell 22:14 hmmmm there's something you don't like with the engine? bam you can change it just like that 22:14 hmmmm no nagging 500 people 22:14 hmmmm for weeks and weeks 22:14 VanessaE HAH! 22:14 VanessaE you're funny 22:15 VanessaE change it? sure. 22:15 hmmmm I just see excuses 22:15 VanessaE theoretically true. 22:15 VanessaE then change it again, and again, and repeat every time some upstream change breaks my patch 22:15 VanessaE not nag 500 people? no, nag half a dozen to get said change merged. 22:15 VanessaE I've seen the process here. 22:16 hmmmm well, you do what you want then. 22:16 VanessaE it is NOT conducive to "get it working right and right now". 22:18 hmmmm ugh 22:18 hmmmm i'm gonna have to add a mutex to voxelmanips 22:19 celeron55_ that's ugly 22:19 hmmmm i know.. 22:19 celeron55_ originally they were intended to be mostly pure data objects 22:19 hmmmm map is going to need a mutex that isn't an envlock 22:19 hmmmm well 22:19 blaise hey guys, check this out.. https://github.com/mnagel/clustergit 22:20 hmmmm set_node gets called, locks non-envlock mutex, updates list of registered voxelmanip areas 22:20 hmmmm so alright 22:20 * blaise waves to paramat 22:21 hmmmm when MapVoxelManipulator does an initialEmerge, it'll lock a Map::vmanip_area_lock, and add its active area to the list of active voxelmanips 22:21 celeron55_ yeah obviously you need it if you're feeding back something to them, but that's... ehm... well, it might be needed then 22:21 paramat hiya :) i tried to make snow mod run before plantlife using dependancies but still no plantlife except underwater reedmace which is an entity 22:21 hmmmm then when set_node() gets called, lock, check the node is contained in any areas active with vmanips, then if so mark as dirty 22:21 celeron55_ it's not like VMs are used for their original purpose much at all now 22:21 hmmmm unlock 22:21 hmmmm what was their original purpose 22:22 blaise heh 22:22 hmmmm the purpose i see is just some nearly-direct-access fast way to do map operations 22:22 celeron55_ their original purpose was to be fast buffers for map data 22:22 hmmmm yeah 22:22 hmmmm except now when you have this kind of situation you need to be able to tell if it's dirty or not 22:23 celeron55_ well it still is kind of the same usage 22:24 celeron55_ adding locks and dirty flags like that can cause very painful slowness in some cases 22:24 celeron55_ goes against KISS 22:24 hmmmm got any better ideas 22:25 celeron55_ just... don't do dirty flags? 8) 22:25 celeron55_ it's not like people can't understand what using a separate buffer implies 22:25 hmmmm how can this be slow? the only way this could ever cause slowness is if futexes start having lots of overhead (they don't - they never go into kernel mode) or there are like millions of active voxelmanips 22:26 hmmmm just scan a list, compare some numbers, set a flag 22:26 hmmmm okay, be back later 22:27 hmmmm celeron55_: one really dirty solution would be to tell people to call initialEmerge every time the voxelmanip object gets acquired 22:28 celeron55_ i guess the question is, how of then it would be a useless call then 22:28 celeron55_ often* 22:29 celeron55_ (i need to sleep) 22:32 celeron55_ are you intending on locking the mutex every time any operation is done on the VM? 22:32 paramat so i understood last night's discussion: that each on generated doesn't necessarily read the resulting map of the previous one, so it's essential to run the voxelmanip mod before the add_node mod, so i tried correctly ordering snow and plantlife using dependancies but with no success, weird 8/ 22:33 celeron55_ i have very much not read the discussion, but is that because the VM changes are applied to the map only after all the on_generated calls have been run? 22:34 * VanessaE hands hmmmm a towen to clean up his exploded brains 22:34 VanessaE towel* 22:35 VanessaE celeron55_: it's because all on_generated callbacks are given the same map content, and if a vmanip callback runs last, it writes out the clean map + its changes, because the set_node() stuff wasn't included into the vmanip object it received. 22:36 celeron55_ well that explanation doesn't fully explain what paramat said 22:36 celeron55_ mine would 22:37 celeron55_ (what i said is just an addition of an important detail to that) 22:37 paramat apparently multiple vms do read the result of each previous vm 22:37 VanessaE indeed - thing is, I guess something very much like your explanation a little while back 22:37 paramat the problem is mixing vm with add_node 22:37 VanessaE but my guess was quickly ... invalidated, shall we say 22:38 paramat note i tried replicating this situation with 2 of my own mods, no bug 22:38 paramat this may be specific to plantlife plus snow, or either of those plus some other mod 22:39 VanessaE paramat: zeno duplicated the issue without involving either plantlife nor snow 22:39 VanessaE neither* 22:40 paramat yeah 22:40 celeron55_ hmmmm: isn't your automated dirty flag list also going to have to be checked through in all VM operations so that VMs are synchronized with each other? 22:41 celeron55_ hmmmm: or how do you intend to do that? it's going to require rather much extra handling 22:42 celeron55_ i wonder if it would be possible to special case map generation and redirect set_node calls only then 8) 22:43 celeron55_ (probably not without issues) 22:43 paramat VE: "it's because all on_generated callbacks are given the same map content ..." < celeron55, what VE said in that line 22:44 paramat at least that's my understanding, i may be wrong 22:45 VanessaE zeno came to the same conclusion when he started reading through the code. 22:46 paramat however even the correct order of snow then plantlife didn't help 22:46 paramat which makes me suspect something to do with the slowness of plantlife, perhaps the use of 'find nodes in area' on a large volume (whole chunk) 22:47 paramat i'll do more testing with my own mods in various orders 22:49 celeron55_ the same VM is shared between the map generator and all the get_mapgen_object("voxelmanip") calls 22:50 celeron55_ but the stuff in the VM is written to the map before the on_generated calls are made 22:50 celeron55_ but not between them 22:51 celeron55_ except that... the on_generated implementations call vm:write_to_map it by themselves 22:52 celeron55_ this is quite clear 22:53 paramat best i don't try to explain, best to read logs. still too early IMO to say there's a bug 22:53 celeron55_ there's no bug 22:53 celeron55_ it just wasn't designed with direct map access in mind 22:54 Sokomine how was it designed/intended? 22:54 celeron55_ well, design bug 22:54 paramat yeah i suspect its a case of modders pushing things to breaking point again 22:54 * paramat is good at this 22:54 * VanessaE hides 22:54 celeron55_ Sokomine: hmmmm probably intended that lua mapgens would use either way but not both at the same time 22:54 VanessaE paramat: I plead the 5th 22:56 celeron55_ i don't understand why this wouldn't work when the direct map access mods are run after the VM mods though 22:56 celeron55_ there seems to be nothing preventing that from working 22:57 celeron55_ as long as the VM isn't written by any mod anymore after any set_node()s are made by other mods, it should work 22:57 celeron55_ but paramat just described that this doesn't work 22:57 celeron55_ paramat: are you sure this doesn't work? 23:06 paramat yeah correct order of snow then plantlife doesnt work 23:07 paramat except for reedmace entity 23:07 VanessaE .....which proves that plantlife's calls are being run. 23:07 paramat which i suspect survives because it is an entity 23:08 paramat so i suspect plantlife's code is the cause for that bizarre result 23:08 celeron55_ does plantlife use VM? 23:08 VanessaE no. 23:08 VanessaE only set_node() (and those entities for the reedmase) 23:09 VanessaE reedmace* 23:09 celeron55_ if it would at all, it would break itself when run after a full map generating VM mod 23:09 paramat i'll try my own mods: mixing vm with add_node, and i'll try both orders 23:09 celeron55_ (or... maybe would) 23:10 paramat and snow mod is the vm mod 23:11 paramat btw does a modpacneed it's own depends.txt to order it correctly? i put snow in each mod's depends.txt 23:11 paramat (modpack) 23:11 celeron55_ no 23:12 celeron55_ at least shouldn't 23:12 paramat *phew* 23:12 paramat plantlife is as slow as watershed 8/ 23:15 VanessaE :P