Time Nick Message 05:00 hmmmm @_@ l_register_decoration is starting to become a real terror 05:01 VanessaE uh oh 05:01 hmmmm i like to keep my lua api wrappers small, this managed to come out to ~130 lines so far 05:10 Exio hmmmm: well, 130 lines of code OR code+comments+spaces+useless stuff? 05:10 hmmmm all of it is solid code, written in my comparatively compressed format too 05:11 hmmmm written celeron style it might be twice as big 05:20 Exio how heavy is the cos in isBlockInSight? 05:20 Exio as that function is used everywhere; and for lots of stuff 05:20 hmmmm should be pretty fast since there's an SSE instruction for it 05:21 Exio i'll "timetake" it here *netbook/intel atom* 05:33 kahrl minetest.add_to_creative_inventory(itemstring) <-- should this be removed from lua_api.txt? 05:33 VanessaE yeah 05:34 VanessaE that's been deprecated for like, forever 05:34 kahrl or, actually, moved to "Deprecated but defined for backwards compatibility" 05:35 VanessaE what would be the point of keeping it? 05:36 VanessaE I mean, something like that is pretty much dead anyway and should be NOP'd anyway 05:36 VanessaE (since the default is to add to creative anyway) 05:36 kahrl then should the list of digprop_* functions be removed too? 05:37 VanessaE now that I'm not sure of 05:37 VanessaE (I haven't really familiarized myself with how digging groups work) 05:37 kahrl they don't do anything either other than logging something 05:38 VanessaE imho, if it has been explicitly made not to work, or has been replaced with something better, it should just be removed from the main API, and *maybe* moved to a second document 05:38 VanessaE that way a general search of the API doesn't return stuff the coder can't actually use. 05:39 kahrl I agree 05:39 kahrl especially since the document currently only lists them but does not say what should be used instead 05:39 VanessaE yeah 05:41 hmmmm grr where's sapier 05:41 VanessaE shiding :P 05:41 VanessaE hiding, too. 05:42 hmmmm sapier, i have a specific kind of table that i read multiple times, and i'd like to make a read_schematic() function, but where does that get put? 05:42 hmmmm it's certainly not common, it's specific to the lua api only 05:43 hmmmm it's not related to content, so it doesn't go in c_content.cpp 05:43 kahrl okay if no one objects I'll push this: https://gist.github.com/kahrl/5820555 05:47 Exio one call to isBlockInSight here is between 2 to 4 ms here 05:48 kahrl hmmmm: aside from some register_craft related functions all read* functions are in common 05:49 hmmmm in common what though 05:49 kahrl c_content.cpp/h or c_converter.cpp/h 05:49 hmmmm oh wait a scond 05:49 hmmmm why is read_server_sound_params there too 05:49 hmmmm that's not related to content.... 05:50 hmmmm alright, c_content it goes into then 05:50 kahrl everyone seems to have a different idea what "content" encompasses 05:50 kahrl I'm not quite sure myself 06:37 hmmmm arghh 06:38 hmmmm readnode() requires ndef, which means people can't register structure decorations using the raw format before registering all their 06:38 hmmmm nodes 06:39 hmmmm this is not easy to fix 06:39 hmmmm welp, my advice is that they just suck it up. 06:40 hmmmm if they want to be able to be able to do obscure trick #45 before registering some nodes, the project's open source, so they can fix it themselves 07:06 kahrl hmmmm: does that mean aliases can't be used in structure decorations? 07:07 hmmmm they can't be used if the structures are being used as decorations and they're being defined raw, not in a file 07:08 kahrl maybe just tell everyone that raw definitions are unsupported? 07:08 hmmmm well i don't support them in the first place 07:08 hmmmm i'm just putting it in because it wasn't too hard to do and it'd make things way more flexible for the modder 07:12 kahrl the use case for it is allowing a mod to make their own structure format parser? 07:12 kahrl or a parser for a different format 07:12 hmmmm that's one possibility, yeah. 07:13 hmmmm in that particular situation 07:13 kahrl sounds fine to make the caller handle stuff like aliases then 15:03 hmmmm how do i get the ModSpec of the currently executing mod? 15:04 hmmmm ah nevermind i got it, getServer(L)->getModSpec(modname); 15:10 proller correct command in linux to test listening udp server: ss -anpu 15:10 proller and ipv6 branch works! 15:11 PilzAdam the updated one? 15:17 proller now compiling client to connect.. 15:17 proller yes, updated 15:38 proller PilzAdam, maybe resolving of v6-only hosts dosnt work 15:38 proller oh, no, my problem 15:46 proller no, not my 15:47 proller and cant connect to ipv6 long address 16:09 proller getaddrinfo: Invalid value for hints 16:20 proller its FreeBSD error 16:22 proller fixed 16:24 proller next level: Server: peer_id=2: failed to emerge player 16:32 PilzAdam proller, that failed to emerge player is different bug, not related to ipv6 16:53 proller дщсфд цщклы щл 16:53 proller ::1 works! 16:58 kosc proller: Are you russian? 16:58 proller yes 16:59 kosc What is дщсфд цщклы щл? 17:00 proller local works ok on my keybord layout 17:00 proller "local works ok" 17:00 kosc Oh, OK. 17:05 Exio what would be the best way to do https://github.com/EXio4/minetest/commit/abfc50f31e32f542220cb9abe53137a7e1050c48 ? 17:07 Zeg9 Exio: bool damage = g_settings->getBool(...) then just use this bool (this should be faster than reading settings every time) 17:15 Exio test it with a server and a client 17:15 Exio and different enable_damage settings 17:16 Exio should it check for the hp? 17:39 hmmmm erm 17:39 hmmmm Exio, it does that? 17:39 Exio what? 17:39 hmmmm i was under the impression that enable_damage sets the player's HP to 0, damageLocalPlayer wouldn't register it as damage if it's already at 0 17:40 hmmmm i'm saying, i'm not sure your patch is needed... have you actually tried it, and drowning still damages you? 17:40 Exio no, i mean the bar 17:40 PilzAdam hmmmm, its about the bubbles, they are still displayed 17:41 hmmmm oh, so what? 17:41 sapier hmmmm common es meant as "common functions used from different files of skript api" 17:41 sapier at least that was my intention 17:41 hmmmm hide the bubblebar hud 17:42 hmmmm sapier, i read it as "what's common between lua_api and cpp_api" 17:42 hmmmm also c_content.cpp is where everything seems to be put, but my impression was that it was for things related to content 17:42 sapier that's one special case yes but also between different files 17:42 hmmmm (e.g. nodes, items, contentfeatures, tiledef) 17:43 sapier yes I used converter for basic datatypes and content for minetest specific datatypes ... maybe names aren't perfect but I didn't find a better yet short name 17:43 Exio so, just hide it if hp is 0? 17:44 hmmmm exio, or hide it if enable_damage is false 17:44 hmmmm i would do this in the localplayer ctor. 17:44 Exio but, isn't enable_damage "local"? 17:45 hmmmm erm 17:45 hmmmm good question 17:45 PilzAdam of course its not 17:45 PilzAdam the client doesnt know about the setting 17:45 PilzAdam only hint is that HP = 0 all the time 17:45 hmmmm to the local player, right? 17:46 hmmmm is setHP sent right after the player emerge? 17:46 hmmmm indeed 17:47 hmmmm so if a set hp is never sent, then damage is never enabled 17:49 hmmmm erm.. if hp == 0, breath == 0 17:49 hmmmm there, solved. 17:49 PilzAdam breath = 11 17:49 hmmmm what? 17:50 PilzAdam if breath > 10 then its not displayed, 11 is used as "not show" 17:50 hmmmm nevermind any of this 17:50 hmmmm Exio, change those g_settings->getBool("enable_damage") to player->hp 17:51 hmmmm lplayer->hp rather 17:51 Exio ok 18:07 hmmmm anywya, i need to extend worldedit in order to properly test the new schematic api. for setting probabilities, i'd like to be able to punch a node and a formspec pops up where you enter the probability value, does it already have some functionality like this? 18:24 proller maybe merge https://github.com/minetest/minetest/pull/776 ? 18:29 sapier +1 for content but -1 for some cleanup missing 18:29 sapier e.g. setAddress(a,b,c,d) that function signature is plain wrong actually it doesn't take int but byte/u8 only 18:30 sapier yes I know this was wrong before this commit but why not fix it if you already change almost everything there 18:35 sapier Address(const unsigned char * ipv6_bytes, unsigned short port) isn't quite good style either you pass a pointer to a non null terminated string implicitly assuming internal function knows size of this pointer 18:47 proller maybe merge and than fix ? 18:47 sapier no one ever fixes such errors 18:48 sapier they don't cause immediate failure so there's no pressure to fix 18:49 proller waiting one more year to collect all network fixes in this merge - bad idea 18:50 sapier I guess the one commiting this should clean it up prior adding it's just code in bad shape it's not difficult to fix but of cours it's an hour or two to get it done properly 18:51 proller maybe write comment to pull? 18:51 proller and matttpt can fix it fast? 18:53 sapier I'll do but I won't write any single issue ;-) 20:03 proller https://github.com/minetest/minetest/pull/659 - is anybody against json params in config ? (exept PilzAdam) 20:03 VanessaE json for a config? fuck no 20:04 proller only for some long params 20:04 proller https://github.com/minetest/minetest/pull/659/files#L0R359 20:05 proller with {} by default 20:06 Jordach and fuck tjat 20:06 Jordach that* 20:06 Jordach Lua + JSON = HELL 20:07 proller maybe make api for configuring from lua 20:08 proller but its much more to write 20:25 sapier I'm against json in config too for same reasons as pilzadam it breaks format and makes config a nightmare to read (not by a single parameter of course but it won't be as less as a single parameter over time) 20:33 kaeza once there's client-side scripting, that stuff can be completely moved to Lua 20:33 kaeza you could even ditch minetest.conf and have e.g. config.lua :P 20:45 proller kaeza, but reading structure from lua is hell 20:46 kaeza it's not so hard, but the ":P" suggested it was a joke 20:46 PilzAdam kaeza, client side Lua is not intended to run scripts that are on the client 20:46 PilzAdam its rather for executing predict functions send by the server 20:48 kaeza whatevs 20:49 proller kaeza, its fully server side mapgen thing 21:21 Taoki Mmh. I'm glad drowning was added to Minetest. But why would something so simple not be added to Lua instead x_x 21:21 Taoki I was hoping we could eventually completely remove health from the code, and make damage and health entirely a Lua thing 21:21 Taoki Especially now that HUD elements can be drawn from Lua 21:22 sapier taoki drowning needs to permanently check position of player without api changes that operation cant be done in a performant way from lua 21:22 Taoki sapier: What if there was a Lua function to only return the position of the player when it changed? 21:23 sapier is still heavy load 21:23 sapier it's a lua call triggered on each step while a player moves 21:24 VanessaE what really begs the question isn't why it isn't in Lua, but why it requires a Lua mod to *disable* the function 21:24 VanessaE as opposed to a checkbox in the menu or some such. 21:24 hmmmm hey guys 21:24 VanessaE (or a config option anyway) 21:24 sapier best possible solution I can think of is a lua call triggered once center of player changes node 21:24 VanessaE afternoon, hmm 21:24 hmmmm why would for k,v in pairs(table) do print(k,v) end only print out the key and not the value? 21:24 Taoki It's just that I'm more of a fan of the idea to only add hooks and functions usable for ideas in the code, and have Lua do all of the actually logical stuff 21:25 VanessaE hmmmm: can print() take comma-separated arguments? 21:25 Taoki eg: Code should be concerned with networking, rendering, how things work, etc. Lua should know what drowning or health even mean as concepts :P 21:25 sapier taoki generally I'm with you but lua for environmental checks is quite slow 21:25 hmmmm i don't know, it says so in the official lua tutorial 21:25 Taoki True too 21:25 VanessaE hm, guess so 21:25 hmmmm it must be the print with a comma 21:26 sapier that's not a lua problem itself but a problem how environment/map is done in minetest 21:26 VanessaE PiL says that should work 21:26 sapier vanessae it never worked for me 21:26 sapier I only got first element and others have been ignored 21:27 VanessaE odd 21:27 hmmmm word 21:27 hmmmm well w/e 21:27 VanessaE we're not intercepting the standard print function are we? 21:27 hmmmm ahh we might be 21:27 hmmmm i think we do, cba to check though 21:28 sapier great ... I guess I should write a bad email to apc ... a ups beein responsible for power fail isn't exactly what's purpose of a ups 21:30 VanessaE sapier: CyberPower makes a good UPS. 21:30 sapier that's been told of apc too ;-) 21:30 VanessaE heh 21:30 VanessaE oh wait, random chit-chat again. 21:30 VanessaE ->#minetest 21:31 sapier the really annoying thing is it did handle the net power fail but crashed and shutdown server after power was restored 21:32 kaeza hmmmm, isn't print() redefined by minetest to redirect to log file? 21:32 kahrl yep, print = minetest.debug 21:32 sapier https://github.com/minetest/minetest/pull/774 any opinions about the api change of set_animations? 21:33 sapier to be implemented if accepted ;-) 21:33 hmmmm yeah, well that explains why i was seeing that odd behavior 21:33 hmmmm no biggie, just something to be aware of anymore 21:34 kahrl guess it should be changed to behave like normal lua print() 21:34 kahrl principle of least surprise 21:35 sapier +1 but I don't have any idea how to do that ;) 21:35 PilzAdam Taoki, no way to get drowning properly done in Lua without client side Lua 21:35 PilzAdam VanessaE, a mod _is_ a checkbox in the GUI 21:36 Taoki PilzAdam: I see. Same for health I imagine? 21:36 PilzAdam yep 21:36 Taoki I have actually started wondering if client side Lua would have an use. Though I initially thought it would be a waste, I think it would really 21:37 sapier taoki don't expect to much compared to server side client side will be extremely limited 21:37 PilzAdam client side Lua would be most useful to predict stuff like doors 21:37 Taoki Yeah. Would mostly work for effects and the like I imagine 21:37 ShadowNinja Jeija has a proof-of-concept client-side Lua branch. 21:38 sapier do you have a link? 21:38 VanessaE PilzAdam: that isn't what I meant and you know it. 21:39 sapier found it 21:40 sapier shadowninja that's not what pilzadam and i understand by clientside lua 21:41 sapier what we're talking about is lua code beeing sent to client by server on connect to be executed by a client side lua enginge (that's what jejia started there) 21:42 sapier but jeijas code looks more like client only lua modding 21:42 ShadowNinja Ah, but it might be helpfull. 21:43 sapier at first glance yes but it'll result in very strange effects 21:44 sapier prediction code needs to be transmitted by server ... but if any code is sent to client by a server the client lua engine has to be sandboxed very very carefully 21:47 sapier pilzadam,kharl, hmmmm whats you oppinion on changeing signature of set_animation to specify an additional value "base_animation_speed" ? this obviously needs a protocol change too 21:47 hmmmm no opinion here =/ 21:47 hmmmm do whatever you need to do for the animation things 21:47 PilzAdam if it doesnt break the current API 21:47 sapier it will even break client compatibility 21:48 hmmmm ouch 21:48 Exio are there any things 21:48 sapier the other option is do it the way I did it now ... add a new message but thats ugly 21:48 Exio that may break client compatability "in a TODO list"? 21:48 Exio compatibility* 21:50 Taoki PilzAdam: About the drowning thing. What if for example, when the player is drowning each impulse is sent to a Lua function (in which you can put anything you want). In that Lua function you'd put a damage call by default. It would prolly be a tiny lua call every 1 second when you update the damage, so how slow would it get? 21:50 sapier maybe using some exception handling client/server will be able to cope with it but I can't promise 21:50 Taoki eg: minetest.on_drown { player.damage(0.5) } 21:51 sapier is there any use for this call except drowning? 21:51 Taoki minetest.on_drown being called every 1 second while the player is drowning 21:51 Taoki sapier: People could find inventive thins to add, so I'd say sure 21:51 Taoki *things 21:52 sapier if you have any idea I'm with you ;-) 21:52 Taoki Another way which could be more useful: Have a function which runs when a player / entity is in water. You can simply add a timer which checks for how long you've been below water surface 21:52 Exio Taoki: what about client-side prediction 21:53 Exio that is why it is coded in C++ and not lua 21:53 Taoki What would prediction have to do with damage? 21:53 Taoki Ah... 21:53 sapier why in water? not i lava? liquid concrete ... 21:53 Taoki Yeah, to simulate the effect more quickly 21:53 Exio Taoki: and the red effect 21:53 Taoki Well, that would go away. I think Minecraft doesn't have prediction for drawning (not to say it's an excuse :P) 21:54 Exio can't MT be better than MC? 21:54 Taoki That yes :P 21:54 sapier client side lua is on my schedule for late summer/early autumn ... so don't expect it until then ;-) 21:54 Taoki ok 21:54 Exio we will wait for other 10k commit of sapier 21:54 Taoki Yeah, overall I'm getting so support client side lua 21:54 Exio :P 21:54 sapier I hope it won't be 10k again ;-) 21:54 Exio 9.5k then ;P 21:54 Taoki When it's added though, I hope health and drowning can be moved fully to Lua then 21:55 sapier could be it's not that easy to handle 21:55 sapier but I'm only guessing atm I haven't done much more than thinking about basic concepts 21:56 kahrl I looked up what lua's print() does and reimplemented it in minetest.debug 21:57 kahrl https://gist.github.com/kahrl/5827069 21:57 PilzAdam Taoki, no -> server lag 21:57 emptty Hello there. 21:58 emptty I'm trying to update the debian package to 0.4.7, and I see that the common mod was not tagged as 0.4.7 21:58 emptty should I take the 0.4.6 or drop it completely? 21:58 PilzAdam emptty, common, survival and build are dropped 21:58 Exio now all the "changes" are managed by mods 21:58 PilzAdam only pack the minetest_game game 21:58 emptty oki, I'll do so 22:00 kahrl should I push the minetest.debug fix? or does it need testing? (I tested it here, of course) 22:00 PilzAdam kahrl, seems good 22:00 ShadowNinja ^ 22:01 kahrl hmm, the result of lua_getglobal isn't popped 22:01 kahrl but that should happen automatically 22:01 PilzAdam it also fixes the print(nil) crash if you call tostring() 22:02 kahrl ah, that's nice 22:03 Exio you fixed two bugs when trying to fix one 22:03 Exio nice! :P 22:03 PilzAdam another award for kahrl ;-) 22:05 kahrl hooray! :D 22:05 VanessaE what, I gotta make yet *another* build now? ;) 22:05 VanessaE PilzAdam: can you push that hacky liquid fix to master before it gets "lost"? 22:05 Exio hacky to master? what? 22:06 VanessaE Exio: it limits the CPU load of flowing liquids. 22:06 Exio i mean, something hacky to master? 22:06 Exio it already has a lot of black magic :P 22:06 VanessaE lol 22:06 kahrl which I made it perform less often ;) 22:06 PilzAdam VanessaE means basically these two commits: https://github.com/PilzAdam/minetest/commit/8256f28105c5523cf1c9307ff66618a3c821ebfc https://github.com/PilzAdam/minetest/commit/92aefdf2466a23b3a8d503fd3e27def98a9a4d8b 22:06 VanessaE yes 22:07 Exio the liquid setting, if i recall correctly 22:08 kahrl why does the second commit read from g_settings inside the loop? 22:08 PilzAdam the first one is just a hacky workaround 22:09 PilzAdam kahrl, as you can see from the commit message and the setting name it was done in 2 seconds ;-) 22:09 VanessaE there is a caveat though: 22:10 VanessaE that hacky fix doesn't stop the TODO list from overflowing 22:10 Exio why should it 22:10 kahrl PilzAdam: that's at least 240 wpm 22:10 kahrl not bad ;) 22:10 proller PilzAdam, bad name 'liquid' 22:10 proller liquid_queue 22:10 VanessaE Exio: because if it gets backed up, *all* liquids stop flowing entirely. 22:11 PilzAdam Ill rename the setting to liquid_loop_max or something similiar 22:11 VanessaE it needs to throw away old events or randomize how they're put into the queue so that liquids never stop flowing but merely get slower. 22:11 VanessaE I had it reach 500k TODO events before I stopped it, once :) 22:11 PilzAdam VanessaE, I already told you that randomizing it is not useful at all 22:12 proller PilzAdam, and make same in https://github.com/PilzAdam/minetest/blob/92aefdf2466a23b3a8d503fd3e27def98a9a4d8b/src/map.cpp#L1657 22:12 VanessaE PilzAdam: sure it is 22:12 Exio VanessaE: i know, but the thing is, it should be faster enough to not have that "limit" 22:12 proller PilzAdam, for finite* 22:12 PilzAdam proller, k 22:12 VanessaE Exio: true, but as that isn't the case now, something else needs done 22:12 VanessaE PilzAdam: either you populate the queue in some mathematical manner, like lowest-coordinate-first or some such, or you populate it randomly. 22:13 VanessaE if you do the former, then all the events that belong to far-way blocks that someone else is looking at won't get any CPU time at all 22:13 proller PilzAdam, and via temp var, for speed 22:13 VanessaE do it randomly and everyone gets at least some time. 22:13 VanessaE s/one/ area/ 22:14 proller PilzAdam, and default 1000 is ok 22:14 PilzAdam do it randomly and everyone gets at least some time. <- you get same by popping the front always (like we do currently) 22:15 VanessaE PilzAdam: then it isn't working as you predicted. 22:16 PilzAdam stuff is always enqueued at the end, so the loop doesnt stay at the same spot 22:16 VanessaE I've been testing it out, and the only way to make liquids flow everywhere after the queue starts to get backed up is to briefly set the value fairly high (10k is enough), wait a few seconds, and then back it back down to 500 or so. 22:17 VanessaE the fact that the code exists is incredibly beneficial, don't get me wrong, enough so that it needs to be pushed out as a temp fix for 0.4.8, but there's something about it that doesn't work quite as desired 22:18 proller VanessaE, just start using finite* 8) 22:18 VanessaE proller: finite water is broken in other ways plus it's not really compatible with how people on my server tend to use water. 22:18 kahrl do some nodes occur multiple times in the queue? 22:18 VanessaE (and pipeworks isn't, yet) 22:19 proller VanessaE, broken? 22:19 VanessaE proller: after the water spreads down a hill and starts to evaporate, it leaves pieces behind 22:19 proller people not usin water, they using blue marmelade blocks 22:19 VanessaE pieces that neither spread nor dissipate. 22:19 VanessaE haha 22:20 Exio kahrl: seems so 22:20 proller VanessaE, somw pieces was fixed ~week+ ago via abm 22:20 kahrl maybe at some point there are enough duplicate nodes in the queue that they block everything else from updating 22:20 VanessaE ah, I last tried a bit over a week ago, that's why I never saw that 22:20 VanessaE but isn't an abm the wrong way to fix such? 22:22 kahrl VanessaE, btw, popping randomly would break things (pushing, not as much, but possibly too) 22:22 proller VanessaE, not very bad, maybe best way 22:23 kahrl some functions (e.g. removeNodeAndUpdate) rely on the fact that the nodes are updated in the order they were added to the queue 22:23 VanessaE kahrl: I'm actually proposing random-ordered pushing, but I'm talking specifically about whatever queue is used for the water flowing code. 22:23 VanessaE proller: I dunno, that seems ...hacky :) 22:25 PilzAdam kahrl, maybe do a simple search on every 10th element or so before adding new things to the queue? 22:26 PilzAdam heres the updated commit: https://github.com/PilzAdam/minetest/commit/3335e0df775e86c11d0e098bc710687c2eafd12f 22:26 proller VanessaE, look at Map::transformLiquidsFinite , its 80% hacky, but works good and fast, exept rare small bugs like your 22:27 proller PilzAdam, okay now 22:28 proller my future wish is make 8->64 levels of liquids 22:29 proller for smoother flows 22:30 PilzAdam does everyone agree to push that commit to master now? 22:30 proller push! 22:38 proller VanessaE, liquid_update = 0.1 - for faster update 22:38 proller to return old update speed but without lagging server 22:39 kahrl so does loop_max = 1000 work in the standard case? 22:39 kahrl that value was tweaked from 1000 to 10000 a year ago (commit 3e754382) 22:40 PilzAdam kahrl, VanessaE had major problems with 10000 in her server 22:40 PilzAdam and in singleplayer you dont really get that high 22:40 Exio because huge fountain + lua 22:41 Exio i'm pretty sure the abm was one of the things that killed it 22:41 Exio abm + lots of liquid updates 22:41 PilzAdam Exio, VanessaE has a different ABM for her water+lava reactions than default, right? 22:41 proller 10000 too much, it can take 1 second 22:42 Exio yep PilzAdam 22:42 VanessaE PilzAdam: no, same ABM, just that I hooked into it to produce a different set of blocks 22:42 Exio and iirc it does some basic cheks 22:42 Exio checks* 22:42 VanessaE (remember those two hooks you added?) 22:42 Exio VanessaE: what ABMs? exactly the same but generating other nodes? 22:43 Exio iirc they are something with a if node_up; something; if under; other and so 22:43 VanessaE Exio: gloopblocks hooks into the lavacooling abm per PilzAdam's methd 22:43 VanessaE method 22:43 kahrl /etc/init.d/methd start 22:43 PilzAdam VanessaE, with same ABM I mean exactly same code, not same "register_abm" call 22:44 VanessaE PilzAdam: https://github.com/VanessaE/gloopblocks/blob/master/init.lua#L418 22:45 VanessaE nearly identical to the default abm if I remember right. 22:46 PilzAdam VanessaE, ehm, you have 6 get_node calls there, default has 0 22:46 Exio 12 you mean 22:46 PilzAdam ohm yea 22:46 Exio 6 is the best case 22:46 PilzAdam - 22:46 PilzAdam -m 22:47 PilzAdam VanessaE, thats why I dont check if the water nodes touch lava directly in the default code 22:47 Exio well, in the best case it is just one call 22:47 Exio the worse is 12 :P 22:47 Exio and VanessaE; for the first, you can remove the checks 22:47 VanessaE well this is more of a backward-compatibility thing anyway - gloopblocks has always made the combo of nodes seen there, so it was either hook into the new lavacooling abm or lose a feature 22:47 PilzAdam Exio, mostly its triggered by flowing water in a fountain, so 6 to 12 average 22:48 Exio VanessaE: one thing, remove the checks in the cool_lava_source 22:48 Exio if that function called, that is because the water IS near 22:49 Exio PilzAdam: even if it was just 2 calls, it is a lot 22:49 PilzAdam VanessaE, in cool_lava_flowing, do the water_flowing check first 22:49 VanessaE Exio: can't - it needs to be exactly that code or it changes the pattern and I wasn't about to do that to neko's code 22:49 VanessaE besides, abms aren't expensive on my box 22:49 Exio generating one mesh isn't expensive 22:50 Exio generating 50k is expensive 22:50 Exio the same here 22:50 VanessaE maybe later I'll change it 22:50 VanessaE can't be bothered to right now 22:51 PilzAdam VanessaE, the default code only runs once for a node, because it always replaces the node; your code will trigger the ABM over and over again, and do the 12 checks every single second for each water and lava nodes that are diagonal to each other 22:51 PilzAdam this isnt cheap on any box 22:52 VanessaE um...look at the set_node() call. I replace the node that triggered the ABM. 22:53 VanessaE but only if it's immediately adjacent 22:53 VanessaE abms don't care for face-adjacent 22:53 VanessaE they check for corner-/edge-adjacent also 22:53 PilzAdam if both gloopblocks_search_nearby_nodes() checks fail, you dont replace the node 22:53 PilzAdam so its triggered again 22:54 VanessaE well the only other way to make it work the way it always used to (and it's been this way for months and months) is to add a field to the ABM def to let me explicitly specify "only on neighboring *faces*" 22:55 VanessaE and that still doesn't allow me to take a different action depending on exactly *which* neighbor the trigger node has 22:55 kahrl how would you override the abm in default? 22:56 VanessaE kahrl: I suppose if I were to override the whole ABM I'd try to modify the global table where it's stored. 22:56 VanessaE assuming that would work anyway 22:56 PilzAdam if we get this functionality in the engine then I would use it in default too 22:58 kahrl that would break a lot of existing maps 22:58 kahrl like cobble generators and other machines 22:58 VanessaE kahrl: it already did. 22:58 VanessaE lavacooling went into default a while back, this change to gloopblocks went in a week later after those hooks were added. 22:59 VanessaE I argued against it on the grounds that it would break mods. 23:04 Exio kahrl: util/container.h:48 23:04 Exio if i understand correctly, there shouldn't be duplicated nodes in the queue 23:04 kahrl oh, it's a UniqueQueue 23:05 Exio :P 23:07 proller maybe merge ipv6? 23:09 PilzAdam I have tested ipv6 on my ipv4 machine and it doesnt break anything 23:10 proller windows ? 23:10 kahrl would it be okay to remove the setting ipv6_server later? 23:11 VanessaE bbl 23:11 proller kahrl, yes 23:11 Exio does it listen to ipv4 and ipv6 23:11 proller yes 23:11 Exio or just one of them? 23:11 proller 4 6 23:11 kahrl Exio, that's why I want to do it a different way 23:11 kahrl "listen = 0.0.0.0" <-- only IPv4 23:11 PilzAdam Exio, depends on your OS configuration 23:12 kahrl "listen = ::0" <-- only IPv6 23:12 kahrl "listen = 0.0.0.0, ::0" <-- both 23:12 PilzAdam uh, oh, mingw build fails 23:13 PilzAdam https://gist.github.com/PilzAdam/5827608 23:13 proller kahrl, "listen = ::0" <-- 46 socket, it can recieve ipv4 connections as ::ffff:80.240.216.1 23:14 proller * in normal OS 23:14 kahrl most people don't use a normal OS 23:15 kahrl PilzAdam: it requires _WIN32_WINNT 0x501 23:15 kahrl but the value of that is only 0x500 afaik 23:15 PilzAdam socket.cpp:27 23:16 kahrl it is possible to use getaddrinfo etc. on w2k but it requires a horrible hack 23:16 proller http://stackoverflow.com/questions/12765743/getaddrinfo-on-win32 23:16 kahrl PilzAdam: maybe something else defines it? 23:17 kahrl like debug.h? 23:17 PilzAdam its defined in several places 23:17 PilzAdam 3 times as 0500 and 2 times as 0501 23:17 kahrl ugh 23:17 kahrl someone fix this please? :) 23:18 PilzAdam is it safe to just set them all to 501? 23:18 kahrl I suppose 23:25 PilzAdam jmutex.h defines it as 500 too, should that be changed? 23:25 kahrl yeah, that file has been changed a lot already anyway 23:25 PilzAdam ummmm... it still fails with the same error message 23:25 hmmmm agh someday when i get around to it, i'll fix jmutex so it never attempts to use the system version 23:26 hmmmm or if someone else wants to do that, they should, because some distros treat jthread as its own library 23:27 kahrl PilzAdam: try adding #include 23:27 hmmmm hmm, when i call lua_getfield(L, LUA_REGISTRYINDEX, "minetest_current_modname"); it seems to push something that's not a string onto the stack (probably nil...) 23:28 hmmmm erm, doesn't winsock2.h already include that? 23:28 PilzAdam kahrl, is already there, line 32 23:29 kahrl hrm... 23:29 kahrl does something include it before _WIN32_WINNT is set? 23:29 PilzAdam nope 23:29 kahrl hmmmm, looks like it doesn't 23:30 kahrl why does everything on windows have to be horrible? :P 23:31 PilzAdam nope 23:31 PilzAdam ooops 23:31 PilzAdam (window focus fail) 23:32 hmmmm great, okay.. so that one thing is nil 23:32 hmmmm what does this mean, and how do i get the path to the current mod? 23:33 hmmmm anybody know? 23:34 kahrl hmmmm: how do you call it? 23:34 kahrl because it really should work 23:35 hmmmm just like that... http://pastebin.com/58WMcVdc 23:36 proller PilzAdam, maybe define _WIN32_WINNT everywhere before windows.h? like in gettext.h 23:36 kahrl hmmmm: and how is the whole function called from lua? 23:37 hmmmm how? it's in a lua api that's called after initialization 23:37 proller PilzAdam, only in gettext.h 23:37 kahrl you mean from a callback? 23:37 hmmmm not a callback 23:37 hmmmm the mod calls it 23:37 kahrl the modname only exists during the registration phase 23:37 hmmmm figures 23:38 hmmmm great, so now how do i get the mod path? 23:38 kahrl maybe let the mod specify the path? 23:38 hmmmm hm okay 23:38 PilzAdam proller, nice, that worked! 23:39 kahrl that would also allow mod X to use schematic Y from mod Z != X 23:39 PilzAdam proller, I have added it in socket.h, porting.h and gettext.h 23:39 hmmmm I guess 23:40 hmmmm i'm not sure why i wanted to limit it to that one directory anyway in the first place 23:41 PilzAdam so, here are all changes that I made: https://gist.github.com/PilzAdam/5827742 23:43 kahrl PilzAdam: looks good 23:45 PilzAdam posted it on the pull request 23:47 emptty Ok, 0.4.7 is on the debian servers 23:47 emptty every pages will eventually get regenerated 23:48 emptty could someone please remove the word "outdated" alongside debian on http://minetest.net/download ? 23:48 PilzAdam emptty, the license is LGPL 23:49 emptty PilzAdam: I know 23:49 emptty PilzAdam: what do you say so? 23:49 emptty *why 23:49 PilzAdam http://packages.debian.org/sid/minetest still says "GPL" 23:50 emptty ah, yeah 23:50 emptty the package description is wrong 23:50 emptty let me fix it 23:50 emptty do you want to rewrite this description completely? 23:51 PilzAdam it seems fine 23:52 PilzAdam what is the "minetest-common" package? 23:53 PilzAdam oh, nvm 23:54 PilzAdam emptty, "outdated" removed: http://minetest.net/download 23:54 emptty thanks 23:55 emptty is there a list to which I should subscribe to get pinged when a new release comes out? 23:56 PilzAdam releases are usually announced here: http://forum.minetest.net/viewforum.php?id=18 23:56 PilzAdam (there is a RSS feed) 23:57 PilzAdam emptty, I also added you here: http://dev.minetest.net/Releasing_Minetest#Notify_other_known_package_maintainers so people dont forget about you ;-) 23:58 emptty thanks ! 23:58 emptty that's very convinient because I tend to avoid RSS 23:58 emptty there's too much to read on the net and too few time 23:58 PilzAdam we will throw you a /msg when a new release comes out 23:59 celeron55 what 23:59 celeron55 Package: minetest (0.4.6+repack-6 and others) 23:59 celeron55 how is 0.4.6 "new"? 23:59 emptty the page is not regenerated yet 23:59 PilzAdam every pages will eventually get regenerated 23:59 emptty but 0.4.7 is in 23:59 hmmmm anything made in the past 5 years is new by debian standards. 23:59 emptty the good old troll