Time Nick Message 00:00 proller no, with current hardware you can run 1000+ mobs on any map 00:01 sapier only by adding some (more or les sane) constraints 00:01 proller but mobs engine must be c++ 00:01 sapier all mobs have been separated from mobf for some time 00:02 sapier c++ wont help at all as long as map data and calculation has to be done synchronously 00:02 sapier if I could do pathfinding in a separate thread just take result it wouldn't be any issue 00:03 sapier but it has to be done in main game loop ... that's what causes lag 00:03 sapier finding a path for a single mob may just require 20ms for example, but if there are 10 doing this at same time its 200 00:04 sapier bears are 90% complete I just miss a texture ... they will be part of mobf 2.4 00:05 sapier because calculating a path requires map access and map access can only be done within environment lock 00:05 sapier not a mobf issue but a core design issue that is required to be fixed 00:05 sapier of course, that's already possible 00:06 sapier by the time I wrote lua pathfinding vmanip wasn't available 00:07 sapier maybe once async api is available within scriptapi I'll give it a try, I already have map preloading code in that algorithm 00:07 sapier loading all nodes at once was superior to loading on demand ... but still lua was slower then core 00:08 sapier bear would've been part of 2.3 if I had a texture, it's code is completed 00:08 iqualfragile sapier: false: yo do not need to make n^2 lookups to determine the next mob 00:08 iqualfragile otherwise it would be prety much impossible to code anything like a physics library 00:08 iqualfragile there are more efficient algorythms 00:09 sapier I didn't think about a smarter implementation as usually there aren't that much mobs around, any suggestion how to find next one? 00:10 iqualfragile sapier: i am not quite sure anymore how it was exactly, but let me do some research 00:11 iqualfragile ah, right 00:11 sapier ok but you need to consider that there's only a list of objects 00:11 iqualfragile it was about splitting the map into some blocks and then only checking within the blocks and around the borders 00:12 sapier I only fetch mobs within range I'm interested 00:12 iqualfragile is this implemented efficiently inside minetest? 00:12 sapier I could do that incrementaly of course 00:12 iqualfragile if it is: just do some kind of jump search beginning with a realy small radius 00:13 sapier e.g. radius 1 2 3 4 ... end of interest ... but for some things (attraction) I need to do something for all mobs within range 00:13 iqualfragile well, that is per definition not optimizable 00:14 sapier yes but a very usefull feature ... yet a very specific one so I didn't try to get it to core by now 00:14 iqualfragile what exactly do you mean by atraction? 00:15 sapier e.g. if you are within a certain range you increas your attraction value for that mob once you pass a certain threshold actions are done e.g. attack is started 00:16 sapier I know that's a quite heavy feature as of cpu requirement, but it's very usefull for some situations 00:17 iqualfragile hmm… does it? which ones? 00:17 iqualfragile is it used for e.g. zombies? 00:17 sapier e.g. don't attack someone just passing by, but attack him if he's there to stay 00:17 sapier no wolf uses it 00:17 sapier and trader to decide whom to face 00:18 sapier both are meant to be rare mobs ... ok doesn't work for wolf in 2.3 ;-) 00:18 sapier attraction in mobf even distinguishes if someone is in front of wolf or at back 00:20 sapier yes fixed it in 2.4 ... guess I need to backport that fix to stable 00:20 sapier thought it wouldn't happen that often 00:22 sapier thanks for your bugreport I'll fix it in 2.3.4 01:13 VanessaE you know what I'd love to see on Minetest? a secondary dialog to ask the user to enter their password. 01:13 VanessaE i.e. if a server demands one and you forget to enter yours, you get a second chance instead of having to back out, enter it, and reconnect 01:19 ShadowNinja VanessaE: That doesn't seem terribly usefull. But I think that a "Confirm password" field on first connect is a must. 01:19 VanessaE yes 01:20 VanessaE about second-chances, I suggest it because I find myself doing that all too often :) 01:44 iqualfragile can we include the snow mod into the christmas release? 01:49 VanessaE that would be very nice indeed, but it would be awful slow 01:49 VanessaE mapgen v7 can do this natively and very fast but that mapgen is not ready for general use yet 01:54 iqualfragile VanessaE: i think it is, but minetest_game would need to be adapted to it 01:56 VanessaE hmmmm did have some code "out there" that would add all of the biomes normally seen in mapgen v6, to v7 (as a separate mod that would be perhaps included in mt_game), but why that isn't being "published", idk 01:57 iqualfragile well, we should better hurry up finding out, christmas is near 02:01 VanessaE indeed so. 02:01 VanessaE that WOULD be an appropriate christmas release, to finally add the snow biomes mod, but it would need to be rewritten to use vmanip I think 02:01 VanessaE afaik it still uses the old ways with add_node() and the like 02:02 VanessaE but I haven't looked at it in months. 02:04 iqualfragile well, some release was just uploaded to mmdb so it caught my attention 02:05 iqualfragile good night 02:33 ShadowNinja IMO we should add something special for christmas, but it shouldn't add nodes or items so that it can be removed. (christmas textures?) 02:34 VanessaE well the snow mod uses the default snow/ice nodes now, doesn't it? 02:34 VanessaE so if removed, all it would do is cause the engine to stop making new snow biomes 02:35 VanessaE though it does add some fir trees and decorated "christmas" trees too 02:35 VanessaE so those would have to be aliased to air if removed 02:47 hmmmm snowfall can be made fast with voxelmanip 02:48 hmmmm I was thinking about it for a while before, probably our best bet is to hard code a santa hat onto player models 02:49 hmmmm except we'd have to include the santa hat model 02:49 ShadowNinja Hmmm, yes, a air alias would do the trick. 02:50 ShadowNinja hmmmm: That could be done by modifying the texture, but a new model would break custom skins. 02:50 hmmmm see, no matter what we do, we're going to have to include new files along with the release and it'll be totally obvious to anybody what's there 02:50 hmmmm no, the model gets drawn on top of the player model 02:50 hmmmm the santa hat is its own model 02:50 ShadowNinja (And I'd like to get SamII merged. 02:51 ShadowNinja Ah, O.K. 02:51 ShadowNinja That seems good. 02:52 hmmmm we just need somebody to make the model 02:52 Exio4 i think it will still be obvious 02:52 Exio4 the commit log is public; and also the log of this channel is public 02:53 VanessaE Sam II and the split-limb model, please 02:53 hmmmm yeah, no point in trying to hide it 02:54 ShadowNinja Most of Minetest's users don't use this channel and use stable builds. 02:54 hmmmm still 02:54 Exio4 yeah, but i mean about the "and it'll be obvious to anybody what's there"... it would be obvious anyway ;) 02:54 Exio4 you can't change that, so you just do it! 02:54 hmmmm alright so we make a hat model 02:54 VanessaE sapier did a test of converting stu's split-limb model to...um, b3d I think it was. MT loaded it just fine, and it ended up smaller than the default model's .x file (so the argument that it would be bigger, which it would be if kept in its normal .x format, is invalid) 02:55 hmmmm we add that along with a tiny bit of code that displays it during christmas week 02:55 hmmmm then a week after the release and everything goes through we just revert that commit 02:55 hmmmm yes? 02:55 VanessaE yes 02:56 Exio4 and release 0.4.10 then? 02:56 hmmmm we go onto 0.5.0 then 02:56 ShadowNinja Jordach will probably be willing to make the model. 02:56 hmmmm alright well 02:56 Exio4 the 0.5.x? and remove all the compability shit? 02:56 VanessaE 0.4.9 --> 0.5.0? ehm... 02:56 hmmmm exio4, there will be no compatibility issues to begin with 02:57 ShadowNinja Wait, this is rather minor release. 0.4.9? 02:57 Exio4 all the code for mantaining the compability in-0.4.x 02:57 Exio4 you can connect to 0.4.6 servers (and even 0.4.4 iirc) right now with 0.4.8 02:57 ShadowNinja Next we can add bkvl and remove support and all sorts of wacky things. 02:58 hmmmm never really looked into bkvl 02:58 ShadowNinja But this is minor, so 0.4.9. 02:58 Exio4 it is the "fuck the actual way to serialize shit and make it properly" thing was talked about before 02:58 hmmmm I think our way of serializing things is just fine 02:59 Exio4 try to add fields 02:59 Exio4 and still have 'compatibility' with older things 02:59 Exio4 (and newer) 02:59 hmmmm we do what we were doing the whole while 03:00 hmmmm it's better than having to do key lookups every time 03:00 Exio4 the one suggesting this at first was c55 03:00 hmmmm why not just make the protocol use XML 03:00 hmmmm pffffff 03:03 ShadowNinja AFAIK BKVL is a custom implementation of messagepack. 03:05 * VanessaE fear the crazy talk going on in here..... *shudder* 03:06 hmmmm well I'm looking at messagepack right now 03:06 hmmmm I'd say it's cute but I could do better 03:06 VanessaE +s 03:17 hmmmm so what if we had whizzdles 03:18 hmmmm except instead of bloaty XML and bloaty SOAP bullshit, it's sane 03:18 hmmmm right after the initial connection handshake, a description of the protocol is exchanged 03:19 hmmmm and then there, we have the compactness of the current protocol except we have extensibility 03:19 hmmmm you pay a penalty with BKVL and I'd rather pay no size penalty at all 03:24 VanessaE is anyone else seeing sudden, inexplicably large memory usage of the server followed by out-of-memory crashes? 03:24 ShadowNinja hmmmm: whizzdles? But sending a initial description rather than keys in every message sounds good. 03:24 hmmmm WSDL 03:24 hmmmm I got into calling it "whizzdle" 03:26 ShadowNinja I like the idea, but not the XML and SOAP. 03:26 hmmmm I explicitly said "no XML or SOAP" 03:28 ShadowNinja Yes, I saw. What do you intend to replace it with? JSON? BKVL/messagepack? 03:29 hmmmm no 03:29 hmmmm god dammit 03:29 hmmmm I said we send the messages the same exact way we do right now, except the protocol is described right after the initial handshake 03:29 hmmmm e.g. in some binary description it'd say 03:30 hmmmm "for packet 0x47 we have a string followed by a float and then an integer, and these are the offsets to each member inside the struct they're deserialized into" 03:30 thexyz protobuf 03:31 hmmmm sure, protobuf 03:31 ShadowNinja Yes, I got that. 03:31 hmmmm except without the need to compile template code 03:31 thexyz https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.dynamic_message 03:38 hmmmm alright I'm going to get some things psuhed 08:30 xyz|real someone herped a derp here https://github.com/minetest/minetest/blob/master/src/content_cao.cpp#L1650 08:32 VanessaE what's that do? 08:33 xyz|real celeron55: you fine with me fixing it by adding "else readF1000(is)"? 08:34 xyz|real VanessaE: well, the idea is to not update yaw when automatic_rotate is too low it seems 08:34 xyz|real but the problem is that because of how wrong it's done the do_interpolate, is_end_position and update_interval are filled with trash 08:35 xyz|real when automatic_rotate is not too low 08:35 xyz|real for example, this resulted in falling items jerking in space 08:36 xyz|real oh wow this bug is 1.5 years or so 08:36 xyz|real and no one noticed? 08:37 VanessaE welcome to minetest :) 08:37 xyz|real no, wait, it's even older but I'm too lazy to look into it and that's not important 09:10 celeron55 xyz|imaginary: wtf are these nicks 09:11 xyz|imaginary what can i do 09:11 xyz|imaginary all ports blocked in uni 09:11 xyz|imaginary anyway, that's getting offtopic, is the fix correct? 09:12 celeron55 the fix seems to be correct 09:13 xyz|imaginary okay, i'm pushing it then 14:07 Taoki Hi RealBadAngel 14:11 RealBadAngel hi 14:12 Taoki RealBadAngel: Tested the shaders now in master. All working very well... on Mesa / Gallium even. Great work ^^ 14:14 RealBadAngel i suggest to try also other small commit 14:14 Taoki Which? 14:14 RealBadAngel https://github.com/RealBadAngel/minetest/commit/d56214cb097ff0297e479501dd21d6d86c573b6d.patch 14:14 RealBadAngel add it and recompile 14:14 Taoki What's it do? 14:15 RealBadAngel you will see, i will give you a file to test it with 14:15 Taoki What was the GIT command to apply patches? 14:16 RealBadAngel git apply 14:16 RealBadAngel and file name 14:17 Taoki Applied and compiled. What's the file? 14:17 RealBadAngel now create new folder in /textures 14:17 RealBadAngel as for new texture pack 14:18 Taoki done 14:18 RealBadAngel and throw it in: http://www.sendspace.pl/file/1e7afafb6c681bb232d7606/override-normal 14:19 Taoki hah... I see what it's meant to do now. Ok, will test 14:20 Taoki So far it's not working. What should the file name be? 14:20 RealBadAngel override_normal.png 14:20 RealBadAngel shaders enabled, bumpmapping enabled and this texture pack selected 14:20 Taoki Strange, doesn't work with default texture pack (but the texture pack with this file in it selected) 14:21 Taoki Ah wait, works now 14:21 Taoki Had the wrong file 14:22 RealBadAngel and? 14:23 Taoki http://i43.tinypic.com/2j2gpw8.png 14:23 Taoki A discrete bump map could be used to add bumpiness to the default texture pack :) 14:24 RealBadAngel i have such feature ready 14:24 sfan5 Taoki: use imgur, tinypic does not load for me 14:24 RealBadAngel its a sobel 3x3 operator 14:24 Taoki oh? What feature? 14:25 RealBadAngel this is how it looks right now: http://i.imgur.com/ntnJJWm.png 14:25 Taoki Ohh, awesome 14:25 Taoki Will it be added by default? 14:25 Taoki Looks great to me BTW 14:26 RealBadAngel its gonna be an option for default 16x textures 14:26 Taoki Sweet! 14:26 Taoki Can't wait ^_^ 14:26 RealBadAngel it doesnt need anything but just default textures 14:26 Taoki yeah 14:27 RealBadAngel i am working now on another version of sobel that would outline not only small surfaces 14:27 Taoki But option means it won't be included automatically? 14:27 RealBadAngel but as in terasology, blocks of same kind 14:27 Taoki Erm, by default in Minetest 14:27 Taoki nice 14:27 Taoki Yeah... you could perhaps add it per-type. Wood, stone, glass, etc 14:28 Taoki Until then this is good too though 14:28 Taoki Can I have the normal map for that? 14:28 RealBadAngel for what? sobel? 14:28 Taoki Yeah. The one to get the effect in your screenshot 14:28 Taoki Rathger than the lego one you linked 14:29 RealBadAngel there are no normal maps for that 14:29 RealBadAngel ;) 14:29 Taoki Ahh, I see 14:29 RealBadAngel its just code 14:29 Taoki I thought that's just a normal map for the 16x resolution :) 14:29 Taoki cool 14:30 RealBadAngel wait a minute, i will copy you that 14:30 Taoki RealBadAngel: I heard water reflections were discarded from the shaders that got into master. Why do, and will they be fixed? 14:30 Taoki Thanks 14:36 RealBadAngel http://pastebin.com/h85QCxT3 14:36 RealBadAngel replace solids fragment shader with it 14:37 RealBadAngel water will be done later, i need to make some serious changes to rendering first 14:38 Taoki RealBadAngel: Doing that breaks all colors 14:38 RealBadAngel screnshot? 14:38 Taoki hold on 14:39 Taoki http://i42.tinypic.com/2rrarf8.png 14:39 Taoki Willing to bed the verdict will be "because you're using the free video drivers on Linux and / or a Radeon card instead of Nvidia" :P 14:40 RealBadAngel it failed to compile 14:40 RealBadAngel what are the errors? 14:40 Taoki I'll start from console and see 14:40 Taoki http://pastebin.com/raw.php?i=Rmj0y96F 14:41 RealBadAngel i see, hold on 14:42 Taoki Probably need to change something on one line 14:42 Taoki Mesa is more picky about GLSL shaders being written perfectly BTW 14:42 Taoki Inm a sense it's good, I can find more bugs that way :) Which don't show up on proprietary drivers 14:42 RealBadAngel edit line #76 and change "1" to "true" 14:42 ShadowBot https://github.com/minetest/minetest_game/issues/76 14:43 RealBadAngel each duckin version of opengl works differently, thats odd :) 14:43 Taoki RealBadAngel: Awesome, works great now! 14:43 Taoki Getting the same affect as in your screenshot :) 14:44 RealBadAngel how do you find it? 14:44 Taoki RealBadAngel: Will this new shader be added by default soon? 14:45 Taoki BTW. It also works nicely with the 16x textures with filtering enabled. It's less discrete, but realistically follows 14:46 RealBadAngel imho it should be used without filtering 14:46 Taoki Yea, it works best without it. But still ok with it too 14:46 RealBadAngel i would like to add some other operators, not only Sobel's 14:46 Taoki ok 14:47 RealBadAngel sobel is kinda cartoonish, i want to make one thats smooth 14:47 Taoki True too 14:48 RealBadAngel sobel will always produce strong shadows 14:48 RealBadAngel i am lookin for one that will make them smoother 14:51 Taoki Do / will these do parallax too, or only bumping? At this resolution it's hard to tell 15:03 Taoki RealBadAngel: Anyway, when you have a few minutes, please don't forget about my colored fog. Really looking to see that added to master. Can go as-is for now if you agree with it, and of course it can be adapted when you add tone mapping (the gradient texture). 15:04 RealBadAngel Taoki, parallax mapping reqiures way more data than 16x can offer 15:04 Taoki Right. Thinking better, it would be useless on 16x entirely, since there wouldn't be much to offset :) 15:12 Taoki PilzAdam: I was wondering if you're still working on the simple mobs system. Noticed there are no more updates on its GIT. Still following that interested 15:13 PilzAdam Taoki, I dont think this belongs in this channel... 15:13 Taoki Ah 15:20 Megaf Folks, how stuff is sent to clients? 15:20 Megaf I mean, it is FIFO? 15:23 kaeza I think the finite liquids setting should be moved out of the settings page into world configuration 15:23 kaeza it has the potential to break existing worlds 15:23 Megaf yep, it almost broke mine 15:23 PilzAdam kaeza, I suggested that a while ago too 15:24 proller__ or remove finite from core 15:25 kaeza proller__, naw, some users seem to like it 15:25 proller__ who? me? 15:26 proller__ PilzAdam, you? 15:26 RealBadAngel i do 15:27 proller__ but they too slow! 15:31 proller__ no, lua is very fast! sometimes faster than c++ 15:33 thexyz Megaf: what do you mean? 15:35 kaeza proller__, quit with the bitching please, finite liquids are OK in the engine 15:36 kaeza the only thing we are complaining about is the setting being global (i.e. not per-world) 15:38 RealBadAngel thats true, that should be settable only when world is created and not allowed to change it further 15:39 RealBadAngel together with creative and damage 15:39 RealBadAngel once world is created such things should not be changed anymore 15:41 PilzAdam RealBadAngel, what? 15:41 PilzAdam why not change damage or creative in the same world? I do that all the time 15:42 RealBadAngel it is simply wrong 15:42 thexyz how? 15:42 RealBadAngel if the world is creative it should stay so 15:42 thexyz i want the world to have creative so that i can build something something and then take it away so that players don't have it 15:43 thexyz (hunger games or how was that called) 15:43 kaeza creative is under the user's control, that is, if you accidentally turn on creative and do something like give yourself items or build some stuff you can easily revert it 15:43 kaeza and damage does not really affect worlds 15:44 RealBadAngel it affect the idea of survival world 15:44 PilzAdam RealBadAngel, you are wrong 15:44 RealBadAngel am i? 15:45 RealBadAngel look at any other game and tell me which one allows such thing 15:45 PilzAdam we dont want to restrict users in things like this, we just want to prevent "damage" to the map 15:46 PilzAdam games can do that, if they want it (its perfectly doable with the current API) 15:47 RealBadAngel im not forcing it, just pointing that it is nonsense and a cheat in fact 15:47 RealBadAngel but first time propably in gaming cheat in mainmenu ;) 15:48 PilzAdam http://en.wikipedia.org/wiki/Cheating 15:48 PilzAdam this is neither immoral, against the "rules" or an "unfair advantage" 15:48 PilzAdam so its by definition not a cheat 15:49 RealBadAngel if youre playing survival world and have an option to enter creative at any time, its a cheat 15:49 RealBadAngel and i dont have to check wiki for that 15:50 PilzAdam lol 15:50 RealBadAngel choice to cheat 15:51 RealBadAngel but as i said, its my personal opinion 15:56 RealBadAngel no 15:57 RealBadAngel the other folks seems to not like having an option :P 15:58 rubenwardy You should always give the player/server owner a choice 15:59 thexyz https://github.com/minetest/minetest/issues/1048 suggestion: add a new API function to return path to $share textures, use it in the menu instead of the current one 16:00 rubenwardy Do you agree with this? https://forum.minetest.net/viewtopic.php?id=7998 16:08 kaeza I don't think "Games and projects similar to Minetest" qualify for that section 16:08 kaeza but otherwise, seems good 16:16 RealBadAngel hmm, funny thing, why one is able to put cacti nodes sideways? 16:16 RealBadAngel it is intended? 16:27 celeron55 kaeza: yes, that's potentially a huge category that would flood the section entirely 16:27 celeron55 and pointlessly 16:29 celeron55 actually i think it's reasonable to have there for now 16:30 celeron55 let's just keep in mind that there's room for disallowing it if needed 16:32 thexyz https://github.com/minetest/minetest/pull/1027 this should be merged 16:32 celeron55 but it's mostly related to tools that are interoperable with minetest and minetest-inspired games 16:32 celeron55 s/related/intended/ 16:32 celeron55 for* 16:33 * celeron55 can't write valid english 16:37 thexyz kahrl: is the http fetch ready for merge? 16:49 thexyz john_minetest: have you tested it with some remote media server you wrote? 16:49 kahrl I quickly looked over sapier's additions and they look good 16:49 kahrl so it is ready to merge except for one thing 16:50 kahrl apparently some people have a version of curl that doesn't have CURLOPT_PROTOCOLS 16:52 thexyz just comment it out then? 16:52 thexyz not the most important setting I guess 16:52 kahrl maybe #if LIBCURL_VERSION_NUM >= 0x071304 16:54 kahrl looks like other projects do the same thing: http://lists.gnu.org/archive/html/qemu-devel/2013-02/msg01820.html 16:56 thexyz kahrl: will you push it or shall I do this? 16:56 thexyz seems everyone's okay with it 16:56 kahrl I'll do it 16:57 kahrl should I squash any of those commits? 16:58 thexyz dunno, I think it's fine the way it is 16:58 thexyz (I think merges are fine too but that's another story) 16:58 kahrl I'll squash those commits that fix one or two lines 17:07 kahrl oh, I guess I'll remove the curl_global_init from main too 17:13 thexyz finally! 17:16 kahrl I'll close #490 too 17:16 ShadowBot https://github.com/minetest/minetest_game/issues/490 17:16 kahrl no not that one 17:17 kahrl https://github.com/minetest/minetest/pull/490 17:19 kahrl or well, no, not yet, since the lua api for httpfetch wasn't included in what I pushed 17:19 kahrl john_minetest: yeah 17:20 kahrl basically that's done by https://github.com/minetest/minetest/pull/920 17:21 kahrl not the icons themselves but a formspec element that supports showing them 17:21 kahrl indeed, I have them 17:21 kahrl mockup 17:25 kahrl actually I made one real screenshot once: http://i.imgur.com/IPYJ7Xu.png 17:26 PilzAdam hmmmm, https://gist.github.com/PilzAdam/7947904 17:26 kahrl that used GUITable, but with a hardcoded serverlist 17:27 PilzAdam hmmmm, it happens when I start a newly created world with v7 17:28 PilzAdam hmmmm, it seems like it simply failed to create an map_meta.txt 17:32 thexyz I agree, this has to be merged 18:01 ShadowNinja Remove support for optdepends.txt. Does this look good? http://ix.io/9lT 18:06 PilzAdam I havent seen a mod who uses it 18:08 ShadowNinja PilzAdam: It's scheduled for removal right about now. And is that an agreement? 18:08 PilzAdam yes 19:58 iqualfragile_ why is minetest that fucking slow when it comes to transparency 20:04 iqualfragile_ john_minetest: yeah, that, too 21:05 ShadowNinja I'm trying to write minetest.write_json. But I'm getting "ServerError: LuaError: invalid key to 'next'". Any ideas? http://ix.io/9m0 21:06 ShadowNinja PilzAdam, kahrl: ^? 21:06 ShadowNinja (Yes, half of that's debuging code) 21:11 kaeza ShadowNinja, "Pops a key from the stack, and pushes a key-value pair from the table at the given index (the "next" pair after the given key)." 21:11 kaeza you are pushing nil just before lua_next 21:12 kaeza (int get_json_value) 21:14 ShadowNinja kaeza: Yes, that's correct. See the code sample here: http://pgl.yoyo.org/luai/i/lua_next 21:15 ShadowNinja We can't have it pop the table. :-) 21:17 ShadowNinja The current code works when you have only string keys and values... 21:20 kaeza ShadowNinja, does it happen on the first interation? 21:21 kaeza on subsequent iterations? 21:22 kahrl ShadowNinja: "While traversing a table, do not call lua_tolstring directly on a key, unless you know that the key is actually a string. Recall that lua_tolstring changes the value at the given index; this confuses the next call to lua_next." 21:23 kahrl could that be the problem? 21:24 specing Would there be a way for mined ores not to be put in the top inventory row? 21:24 specing its kinda annoying, as you can't do anything with it 21:25 PilzAdam specing, thats a modding problem, thus it doesnt belong in this channel 21:27 PilzAdam ShadowNinja, re: json formspec: if we decided to add a Lua table -> json converter for formspecs, we could as well just add an Lua table -> current formspec format converted and not break compatibility 21:32 ShadowNinja kahrl: It checks if lua_isstring() and uses lua_tostring(). 21:33 ShadowNinja kaeza: Yes, it usually stops at the first. 21:33 ShadowNinja kahrl: And tables with only string keys and values work... 21:33 kaeza ShadowNinja, see the debug stms 21:33 kaeza stmt* 21:34 kaeza + dstream << ... << lua_tostring(L, -2) << ... 21:35 ShadowNinja kaeza: Hmmm, thanks... 21:39 ShadowNinja Still not working: http://pastebin.ubuntu.com/6569062/ 21:44 kahrl ShadowNinja: how does the code look now? 21:46 ShadowNinja kahrl: Same except I changed lua_tostring(L, -2) in the debug code to (lua_isstring(L, -2) ? lua_tostring(L, -2) : "") 21:47 ShadowNinja Commenting it out does the same. 21:51 kaeza ShadowNinja, I think get_json_value may not be cleaning up the stack properly, and since it is called recursively, it may lead to that error 21:52 kaeza the lua_next docs are not explicit about this, but it may be leaving the last key at the top of the stack 21:53 ShadowNinja kaeza: It leaves the value at that index on the stack. But that's intentional. (I may change that) 21:56 kaeza ShadowNinja, second get() level leaves a value at the top on return, which is used as key in the next iteration at the first level 21:56 kaeza or something like that 21:59 ShadowNinja So apparently the type of a number is a string. Rearanging the checks got me a different error... 22:02 kaeza ShadowNinja, http://www.lua.org/manual/5.1/manual.html#lua_isstring 22:03 kahrl lua_isnumber can return true for some strings as well 22:04 kaeza better use lua_type() == LUA_TSTRING 22:09 ShadowNinja So in Javascript you can't mix arrays and objects/tables apparently... 22:12 thexyz celeron55: no reply from google, I guess? 22:15 thexyz i think that if they continue to ignore those requests we can have a good google-hate article 22:17 celeron55 thexyz: i wouldn't expect anything in this short time 22:18 thexyz ah, I guess there are no time frames defined by law 22:29 ShadowNinja This: http://ix.io/9m4 with this: http://pastebin.ubuntu.com/6569291/ produces this: http://pastebin.ubuntu.com/6569289/ 22:30 ShadowNinja Why are the previous numbers dumped? 22:30 ShadowNinja (I should have [1.0, 2.0, 3.0]) 22:43 kaeza root[(Json::ArrayIndex) lua_tonumber(L, -2)] = value; 22:43 kaeza shouldn't that be -1 ? 22:43 kaeza ShadowNinja, ^ 22:58 ShadowNinja kaeza: Erm, yes, thanks. 23:00 ShadowNinja Alright, now you get [ null, 1.0, 2.0, 3.0, 8268.0 ] because of Lua's one-based indexing, but at least you can resore the table properly. 23:01 ShadowNinja This will probably have big issues with {[500]=true} though... 23:02 ShadowNinja And I'll have to check for negative indexes. 23:07 kaeza well, what is the intended goal of this? 23:07 kaeza s/goal of/application for/ 23:07 ShadowNinja kaeza: Just about anything that uses minetest.serialize can be replaced with this. 23:08 kaeza any why is serialize() unneeded now? 23:09 kaeza I'm not saying the feature would be bad, but if it causes too much trouble, maybe it's not worth it 23:15 ShadowNinja It's already done. :-) (Other than documentation) The advantage is that JSON is standard and can be read and written in just about any language, which makes moving data easier. 23:20 ShadowNinja Um, parse_json converts from zero-indexed to one-indexed... kahrl: <-- 23:29 ShadowNinja kahrl: I changed that so that it emmits 0-indexed tables. Is that O.K? (The mainmenu may need modification...) 23:31 ShadowNinja Turns out the serverlist doesn't use parse_json... 23:32 * VanessaE peeks in 23:36 ShadowNinja How's this? Anyone to approve? https://gist.github.com/ShadowNinja/7953481