Minetest logo

IRC log for #minetest-dev, 2013-06-20

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:25 ImQ009 joined #minetest-dev
00:51 dexter0 joined #minetest-dev
01:05 Weedy_lappy joined #minetest-dev
01:05 Weedy_lappy joined #minetest-dev
02:01 ecube joined #minetest-dev
02:54 kaeza joined #minetest-dev
03:04 ffoxin joined #minetest-dev
03:41 Weedy_lappy joined #minetest-dev
03:41 Weedy_lappy joined #minetest-dev
04:24 ssieb joined #minetest-dev
04:37 Miner_48er joined #minetest-dev
04:45 neko259 joined #minetest-dev
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
06:52 Weedy joined #minetest-dev
06:52 Weedy joined #minetest-dev
06:59 Calinou joined #minetest-dev
07:06 kahrl hmmmm: does that mean aliases can't be used in structure decorations?
07:07 Zeg9 joined #minetest-dev
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
08:55 darkrose joined #minetest-dev
08:55 darkrose joined #minetest-dev
09:00 Calinou joined #minetest-dev
09:15 PilzAdam joined #minetest-dev
09:50 proller joined #minetest-dev
10:03 Taoki joined #minetest-dev
10:43 Calinou joined #minetest-dev
11:54 proller joined #minetest-dev
12:17 iqualfragile joined #minetest-dev
13:06 celeron55 joined #minetest-dev
13:11 jin_xi joined #minetest-dev
13:44 iqualfragile joined #minetest-dev
13:56 AllegedlyDead joined #minetest-dev
14:07 iqualfragile joined #minetest-dev
14:09 proller joined #minetest-dev
14:19 iqualfragile joined #minetest-dev
14:49 hmmmm joined #minetest-dev
14:50 iqualfragile joined #minetest-dev
15:03 hmmmm how do i get the ModSpec of the currently executing mod?
15:03 rubenwardy joined #minetest-dev
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:29 Jordach joined #minetest-dev
15:38 proller PilzAdam, maybe resolving of v6-only hosts dosnt work
15:38 proller oh, no, my problem
15:43 kosc joined #minetest-dev
15:46 proller no, not my
15:47 proller and cant connect to ipv6 long address
16:05 Zeg9 joined #minetest-dev
16:09 proller getaddrinfo: Invalid value for hints
16:19 Calinou joined #minetest-dev
16:20 proller its FreeBSD error
16:22 kaeza joined #minetest-dev
16:22 proller fixed
16:24 proller next level: Server: peer_id=2: failed to emerge player
16:31 dexter0 joined #minetest-dev
16:32 PilzAdam proller, that failed to emerge player is different bug, not related to ipv6
16:35 proller joined #minetest-dev
16:48 ssieb joined #minetest-dev
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:32 kaeza joined #minetest-dev
17:36 sapier joined #minetest-dev
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:08 kosc left #minetest-dev
18:15 rubenwardy joined #minetest-dev
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:40 BlockMen joined #minetest-dev
18:42 neko259 joined #minetest-dev
18:44 ffoxin joined #minetest-dev
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 ;-)
18:56 kaeza joined #minetest-dev
19:28 diemartin joined #minetest-dev
19:28 BlockMen joined #minetest-dev
19:38 VanessaE joined #minetest-dev
19:41 proller joined #minetest-dev
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:13 BlockMen left #minetest-dev
20:19 iqualfragile joined #minetest-dev
20:22 sapier joined #minetest-dev
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:43 PilzAdam joined #minetest-dev
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
20:56 sapier joined #minetest-dev
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 PilzAdam joined #minetest-dev
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 Anchakor_ joined #minetest-dev
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 joined #minetest-dev
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 kaeza joined #minetest-dev
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 <VanessaE> 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:03 PilzAdam joined #minetest-dev
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 ch98 joined #minetest-dev
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 <ws2tcpip.h>
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:56 BrandonReese joined #minetest-dev
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 <emptty> 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

| Channels | #minetest-dev index | Today | | Google Search | Plaintext