Time Nick Message 04:16 paramat #6352 is ready, feel free to merge if approved 04:16 ShadowBot https://github.com/minetest/minetest/issues/6352 -- Ores: Add stratum ore by paramat 06:07 Hijiri migrate to C++17 06:08 Hijiri btw I'm ready to rebase my PRs when someone is willing to review them 06:08 Hijiri not this instant though I'm about to get ready to sleep 06:09 nerzhul C++17 is pretty useless for MT, only fielsystem part can be useful 08:55 nerzhul hello 08:55 nerzhul merging #6357 in ~5 mins 08:55 ShadowBot https://github.com/minetest/minetest/issues/6357 -- Fix animation frame_speed and blend loosing precision due to incorrec… by sapier 10:32 Wuzzy Please somebody look at this: https://github.com/minetest/minetest/pull/5795 10:36 nerzhul no i don't want 10:36 nerzhul :D 10:37 Wuzzy How do I convert mapblock coordinates back to normal coordinates? 10:38 nerzhul * BS ? 10:38 nerzhul intToFloat and floatToInt({x,y,z}, BS); 10:40 celeron55 define mapblock coordinates and normal coordinates, neither means anything 10:40 celeron55 and nerzhul's answer is most definitely wrong 10:41 Wuzzy mapblock coordinates: the thing you get in error messages lke this: 10:41 Wuzzy "ServerEnvironment::deactivateFarObjects(): id=3984 m_static_exists=true but static data doesn't actually exist in (36,-3,332)" 10:41 Wuzzy normal coornates: what you see in debug screen 10:41 Krock * MAP_BLOCKSIZE or similar 10:42 Wuzzy i.e. 80? 10:42 sfan5 *16 10:42 celeron55 yeah, if you multiply by MAP_BLOCKSIZE, you get the lowest corner of the mapblock in node coordinates 10:42 Krock no, 80 is the mapgen size (chunks?) 10:43 celeron55 the rest of the nodes of the mapblock are +0...(MAP_BLOCKSIZE-1) from there in each coordinate 10:43 celeron55 and MAP_BLOCKSIZE is 16 10:43 Wuzzy hmmm ok let me try 10:45 Krock in C++, we have operator overloading for v3s16/s32, so my_vector * MAP_BLOCKSIZE is valid btw 10:45 Wuzzy so (36, -3, 332) translates to the bounding box between (576, -48, 5312) .. (591, -63, 5297)? 10:45 celeron55 no 10:45 celeron55 -48 + 15 = -33 10:45 Wuzzy lol 10:45 celeron55 and 5312 + 15 = 5327 10:46 Wuzzy oops i went the wrong way 10:46 Wuzzy but ok I see how it works now, thank 10:47 Wuzzy so its really just *16 for each coorinate and I have the lower bound 10:47 celeron55 0,0,0 is the lower bound of a mapblock, and the rest just stack in a 3D grid from there 10:48 celeron55 the lower bound of the 0,0,0 mapblock :P 10:54 Wuzzy How were all schematics in Minetest Game created? did you use tools or something? 10:56 sfan5 i think paramat uses some thing that turns .mts into lua tables and vice versa 10:56 Krock there's also minetest.create_schematic 10:56 Wuzzy that doesn't help me if I also need node probabilities and yslice_prob 10:57 Wuzzy do you know paramat's "thing", by any chance? 10:57 Wuzzy is it WorldEdit? 11:07 sfan5 nah i think it's an utility/mod he wrote himself 11:08 Wuzzy ah, found it! 11:08 Wuzzy https://forum.minetest.net/viewtopic.php?f=9&t=12011&view=unread#unread 11:15 Wuzzy Do you know of any other useful development tools (like saveschems, luacmd, NodeBoxEditor, etc.)? 11:31 nerzhul celeron55, i missed MAP_BLOCKSIZE like a noob in my calcul :( 11:32 nerzhul merging #6358 in ~ 5 mins 11:32 ShadowBot https://github.com/minetest/minetest/issues/6358 -- Remove nodeupdate completely by Rui-Minetest 11:46 Fixer get biome info 12:12 tenplus1 fixed - https://github.com/minetest/minetest_game/pull/1884 12:19 nerzhul Krock, there is no sense to re-send the message to the sender 12:19 nerzhul (passing by the server) 12:20 Krock how come? two CSM mods might listen to the same channel 12:20 nerzhul but if there is a need (i don't see why) we can broadcast to the local instance (SSM to SSM) and CSM to CSM in the same client 12:20 nerzhul then it's a RPC like between mods permitting to standardize inter mod communication in the sandbox 12:20 nerzhul exact ? 12:21 nerzhul i can change the algorithm to add a callback on message sending in clients to handle that case, and send message to server when server sent the message, the problem is the sender will always receive it's message as a callback, and should handle it 12:21 Krock they might would conflict each other when sending on the same channel :/ 12:22 nerzhul i'm not afraid about the conflict 12:22 nerzhul my main concern is the loopback on the same consumer/provider mod, it means each mod developer should handle its own sent message return 12:23 nerzhul we don't have a mean to find we are sending message to the same mod :( 12:23 Krock indeed, they'd have to do so 12:23 Krock but if this feature is requested later, the risk of a loopback is much higher when mods started using it 12:24 nerzhul yes 12:24 nerzhul if someone find a real good usecase we can remove the return-back security later 12:24 nerzhul as mods are on the same sandbox they can talk lua to lua directly instead of translating to core C++ and re translate to lua :) 12:27 nerzhul the only thing i wanted to tune but our registration model doesn't permit it now is remove the channel param from lua callback registration and register to a table with channel name as a key 12:27 nerzhul it prevent any mod to receive non listening channels messages 12:28 Krock indeed 12:28 nerzhul if a good builtin developper can help me to achieve this task it can be nice and prevent copying every event to every listener 12:28 Krock but for now we need a base to build on. improvements can also happen later 12:29 nerzhul yes, this just needs a API break in the same dev, but if it's tolerate in this cycle i can wait 12:29 nerzhul it just needs to be fixed before release 12:29 nerzhul Krock, did you tested it enablind CSM preview and playing on minimal ? 12:43 Krock tested it in an own mod to check whether it works like I expected - and it does. 12:47 nerzhul heh 12:47 nerzhul you have a real use case ? 12:50 Krock not yet. just some ping/pong tests 12:51 nerzhul without the HUD CSM pr it's less useful because you cannot have readable real time informations between clients 12:51 nerzhul i should review it asap to make it merged asap, both are very linked in a real case usage 13:22 nerzhul a question about the message content 13:22 nerzhul is this core engine responsibility to serialize a lua object or lua mod owner to use core.serialize call ? 13:47 celeron55 i'd say make the engine do it 13:47 celeron55 modders would have to do it anyway in the majority if cases and the api is supposed to make things easy 13:47 celeron55 of* 13:54 nerzhul celeron55, okay i add it in the todo list, do we have any other API doing a similar thing ? 13:55 celeron55 possibly none 13:55 nerzhul erf :( 13:55 nerzhul i hope minetest.serialize code is easily transposable heh 13:55 celeron55 call it from C++ 8) 13:56 celeron55 and let someone optimize it later 13:56 celeron55 always a good plan! 13:56 nerzhul lol, i don't like to be crazy like this, i'm not a NodeJS dev :p 13:59 celeron55 what the eff, minetest.deserialize has a "safe" parameter which is set to unsafe by default 13:59 nerzhul lol 16:22 rubenwardy !tell nerzhul why not JSON instead of (de)serialize? 16:22 ShadowBot rubenwardy: O.K. 16:32 paramat Wuzzy use https://github.com/minetest-mods/saveschems instead, that's the latest version 16:33 Wuzzy I am currently writing a small python script to parse and later manipulate schematics more easily. i plan to do enable common tasks like "replace all dirt with stone", etc. 16:33 Wuzzy but thanks 16:34 Wuzzy this lua-to-MTS and back is very tedious... :/ 16:36 Wuzzy btw paramat, I added your mod to the Developer Wiki on the Developer Tools page: http://dev.minetest.net/Development_Tools 16:41 Wuzzy Who is maintaining the Developer Wiki btw? 16:41 Wuzzy I mean who's the admin? 16:42 rubenwardy CalebDavis, 16:42 rubenwardy oops 16:42 rubenwardy Calinou, 16:42 rubenwardy well 16:42 rubenwardy c55 hosts it 16:44 Calinou I don't have access to the hosting, I'm only a wiki admin 16:46 paramat Wuzzy better to link directly to the minetest-mods repo, my forum topic may have some misleading or out of date explanation 16:47 Wuzzy but it links to https://github.com/minetest-mods/saveschems 16:48 Wuzzy i mean your post 16:48 Wuzzy it already links to correct repo 16:48 Wuzzy last commit was in December 2016 and that was by you. xD 16:49 sofar I made him do it :P 16:49 Wuzzy also, the readme is not really useful. forum post seems more complete 17:02 paramat ok i'll update the forum post if there is any wrong information 17:03 paramat maybe the readme too 17:42 Wuzzy thx 17:42 Wuzzy i noticed something strange in MTS files 17:45 Wuzzy apparently many schematics in MTG have a y-slice probability of 127 (0x7F) for all slices instead of 255 (0xFF). WTF? The docs clearly say that 255 is equivalent to 100%. 17:59 sofar interesting, for which ones did you see that? 18:02 sofar yeah, I see it too (aspen tree, for one) 18:03 sofar looks like during saving that ff -> 7f and 7f -> 3f 18:05 sofar Wuzzy: https://github.com/minetest/minetest/blob/master/src/mg_schematic.h 18:05 sofar #define MTSCHEM_PROB_ALWAYS 0x7F 18:05 Wuzzy wtf 18:05 Wuzzy so the docs are wrong. 18:06 sofar 1 bit was reserved for force placement of nodes, so the available mask for probabilities was reduced to omit that range 18:06 Wuzzy but i was talking about y-slices which do not have that force placement bit 18:06 sofar well the thing is that the save code accounts for it 18:07 Wuzzy so... probabilities are actually from 0-127? 18:07 sofar serialize_schematic() handles it 18:08 sofar they're 0-255 if you use serialize_schematic() 18:08 sofar and they're 0-127 from a binary storage perspective 18:08 Wuzzy O_O 18:08 Wuzzy whyyyyy 18:08 Wuzzy this does not make sense 18:08 sofar whoever added force_place flag obviously wanted to make the code consistent 18:09 Wuzzy why allowing 0-255 in lua but only 0-127 in mts? this is not consistent at all 18:10 sofar it keeps old code working the same way, so 18:10 Wuzzy but the docs are still lying, right? 18:10 sofar what docs? 18:11 Wuzzy lua_api.txt, "Schematic specifier" 18:11 Wuzzy nowhere says it anything about 127 18:12 Wuzzy It looks like the Lua API is pretending you can have values between 0 and 255 while they are actually between 0 and 127 18:12 sofar it looks correct, it just omits stating the format of the bits in the mts binary format 18:13 Wuzzy well why pretending you have a precision of 0-255 when you actually lose 1 bit of precision 18:14 Wuzzy so... y-slice probability is also between 0-127. does this mean that y-slice prob of 128-255 is invalid? 18:14 sofar https://github.com/minetest/minetest/blob/master/doc/lua_api.txt#L2979 18:15 Wuzzy but also: 18:15 Wuzzy 1118 * The `yslice_prob` field is a table of {ypos, prob} which sets the `ypos`th vertical slice 18:15 Wuzzy 1119 of the schematic to have a `prob / 256 * 100` chance of occuring. (default: 255) 18:16 Wuzzy ^ this is wrong 18:16 sofar off-by-one error, sure 18:16 paramat the per-node force-place encoding is confusing but the docs are correct, i had this conversation with octacian 18:16 Wuzzy no. off-by-a-factor-of-two error. 18:16 sofar not if you talk about lua table probabilities 18:16 Wuzzy the correct formula should be prob / 128 * 100, right? 18:16 sofar the internal format of MTS is not discussed here 18:17 sofar so, you can't claim it's incorrect, since it does not exist in this document 18:17 Wuzzy hmm strange 18:17 sofar all this tries to explain is the lua table side of the equation 18:17 Wuzzy does this mean a value of 255 (Lua) actually is divided by 2? 18:17 sofar at least, that is how I read it 18:18 Wuzzy i.e. 1 bit of precision is ismply thrown away 18:19 Wuzzy okay. i think i understand it now. its actually the MTS docs (*.h) which needs clarification, then 18:20 paramat hm i didn't realise y-slice used the same encoding although it doesn't need to 18:20 sofar it's certainly not pretty, lol 18:20 Wuzzy and the Lua docs should at least hint at the fact that the probability is internally divided by 2 18:21 Wuzzy its very awkward by the way to "fake" a probability range of 0-255. just my opinion 18:21 Wuzzy by the same logic we could do a 0-100 range in Lua (percentage) 18:21 Wuzzy (not that I would suggest that) 18:22 Wuzzy but ok. its not really important. 18:22 Wuzzy esp. because the "error" is very small 18:22 paramat probability list appears confusing because it has not yet been updated to take per-node force-place into account, so you need to encode manually, that was the source of octacian's confusion 18:23 paramat that's why i added the docs at L2979 to show how to manually encode 18:25 paramat this was discussed here https://github.com/octacian/advschem/issues/1 18:26 paramat there are 128 levels of prob, but it's consistent to present that as 0-255 to modders, because before 'per-node force-place' was added prob really was 256 levels presented as 0-255 18:27 paramat hmmmm's doing 18:27 Wuzzy "'but better for consistency that you ask the mod user to enter 0-255, then divide that by 2 to get 0-127' 18:27 Wuzzy That should be done to avoid much confusion." 18:27 Wuzzy has this been done? 18:29 paramat anyway #6352 is ready, added ore density parameter, see pretty screenshots. Krock rubenwardy sfan5 sofar . ideally i'd like to merge later tonight 18:29 ShadowBot https://github.com/minetest/minetest/issues/6352 -- Ores: Add stratum ore by paramat 18:29 paramat no octacian hasn't updated yet afaik 18:30 Wuzzy awesome. Mese biomes, here we come!! :D 18:31 Wuzzy paramat: In GitHub posts, you can create a pretty line segment by writing "---". add more dashes to make thicker 18:45 paramat ah ok 21:58 paramat i just discovered ore param2 can be set, but this was never documented, will add doc to PR 22:26 paramat done 23:00 paramat #6360 if anyone wants to test 23:00 ShadowBot https://github.com/minetest/minetest/issues/6360 -- Mapgen Carpathian: Reduce influence of 3D noise on mountains by vlapsley 23:28 paramat hm worlds start just a little too early, just a little too dark, i would be ok with the next step in brightness (1 step before full brightness) 23:59 basicer is there anyway to make a full screen formspec?