Time Nick Message 01:04 paramat will merge game#681 soon 01:04 ShadowBot https://github.com/minetest/minetest_game/issues/681 -- Fire: Add eternal flame node for creative and mod use by paramat 01:08 VanessaE wait 01:09 VanessaE there are at least two or three mods that provide never-ending flames 01:09 VanessaE (homedecor has the fake fire mod, maptools has a fake fire, and there are surely others) 01:11 paramat okay, what's the problem with adding this? 01:13 VanessaE nothing in particular, but you will want to consider what the other fake fire mods do with their flames, so that there won't be any problems overriding/extending your node 01:14 VanessaE for example, maptools' fire node does nothing special, so it would be easy to alias to your node, while the ones in homedecor's fake fire mod has smoke particles and a blue "ice flame" version. 01:14 VanessaE have* 01:17 paramat okay 01:20 VanessaE besides, you may want to...ahem... borrow some of those features ;) 01:22 paramat hm perhaps, i had a look at fake fire and smoke seems unsuitably complex 01:22 VanessaE it needs redone. 01:22 VanessaE I seem to recall the one in homedecor is abm-driven instead of using a particle spawner. 01:42 paramat i'll look at these mods and consider the features 01:43 VanessaE ok. 02:21 est31 wow the yandex translator is bad 02:22 waressearcher2 in file main.cpp there is a class: "class SimpleTimeGetter: public TimeGetter { public: u32 getTime(TimePrecision prec) return porting::getTime(prec); } };" and comments are saying: "// Not so precise one which works without irrlicht" but what does that mean "without irrlicht" ? how do you use minetest without irrlicht ? 02:22 est31 waressearcher2, for example, you can compile the server without irrlicht 02:23 est31 while the yandex translator knows that "Árboles detallados" means "Detailed trees", it thinks that "Hojas elegantes" means "Elegant leaf" 02:23 est31 its not singular, its plural 02:26 VanessaE google translate gives "hojas de lujo" for "fancy leaves" 02:26 VanessaE (assuming spanish) 02:26 VanessaE heh, which translates back to english as "luxury sheets" :D 02:26 VanessaE at least it's plural :) 02:32 est31 google translate doesnt give free API access (anymore) 02:32 est31 not nice 02:33 VanessaE that sucks 02:33 est31 only remaining are m$ and yandex 02:46 est31 I only translate into the english direction not back. 02:47 est31 (when reviewing translation changes for minetest) 02:53 est31 yandex really seems to need language knowledge. it thinks "OEMクリア" is english lol 02:53 est31 not japanese 02:53 VanessaE heh 02:54 est31 if i say yandex "this is japanese" it recognizes it 05:05 est31 finally it works https://github.com/est31/podiff-review/commit/c16235b16a9d776448173e422937f675201cea42 07:52 hmmmm humm 07:53 hmmmm it's the first time in a long time i've been drawing minetest's object structure on paper 07:53 hmmmm looks like things can be done a bit better 07:54 hmmmm Mapgen is probably going to become a local variable for each EmergeThread 07:54 hmmmm MapgenParams should probably go into Map 07:54 hmmmm i think there was a technical reason why it wasn't this way to begin with 08:05 est31 lua mapgen still isnt threaded is it 08:05 Calinou it isn't 08:07 hmmmm how could it be? 08:07 hmmmm it is technically threaded, that is, the lua callback is executed inside of different threads. 08:07 hmmmm it's just that they all wait on the envlock 08:08 est31 why do they, and the cpp mapgen doesnt 08:09 hmmmm because lua has access to a lot of naughty things 08:09 Niebieski Why there is a lag while placing objects into a furnace ? playing locally. 08:09 est31 cpp hasnt? 08:10 hmmmm at one point I dared to suggest that smart modders should have the ability to unlock envlock 08:10 hmmmm exactly for this sort of situation 08:10 hmmmm it's simply too dangerous 08:10 hmmmm modders do not understand about race conditions 08:10 hmmmm hiebieski, beats me 08:11 Niebieski Excuse me ? 08:13 VanessaE hmmmm: they can learn. 08:13 VanessaE let the modders and the users decide whether a project handles MT threading properly. 08:14 hmmmm as if minetest isn't buggy enough thanks to mods 08:15 hmmmm the last thing minetest needs are heisenbugs caused by mods that appear as engine bugs 08:17 nrzkt hmmmm: agree. Mod area should be restrained to not trigger race conditions 08:17 est31 agreed the minetest environment is not thread safe 08:17 neti_netwalker currently testing minetest with ssdb as a redis replacement. SSDB (redis frontend / leveldb backend) currently working very well. 08:17 est31 mods need a safe sandbox to play in 08:17 est31 including range checking of lua voxel manips 08:18 hmmmm ? 08:19 est31 cant find the issue 08:19 est31 nvm 08:19 est31 what about the following: every mod which wants to do threaded mapgen provides next to their init.lua an init_mapgen.lua 08:19 est31 that second one gets loaded by every emerge thread 08:19 est31 and run in its very own environment 08:19 est31 it can communicate via string messages with the main mod 08:20 est31 it has an api limited to map editing and noise functions 08:20 est31 no player coord setting or mob spawning needed 08:20 hmmmm I have a better idea 08:24 hmmmm but I need to be able to add a wrapper func around lua apis 08:24 est31 whats your idea 08:24 hmmmm luajit already does do this with an extension, but not so for regular lua 08:24 hmmmm to workaround this, i thought about it, i could make all the lua apis be a single function 08:25 hmmmm and then I look up sort of a syscall code or whatever from a cclosure upvalue 08:25 hmmmm then dispatch the actual lua api from within this common entry point 08:25 hmmmm so now that i have a common entry point, i can do things like... 08:26 hmmmm - log statistics 08:26 hmmmm - check for proper locking 08:26 hmmmm - access control 08:26 hmmmm etc. 08:26 hmmmm the alternative is to add lock checking to every. single. goddamn api that requires environment access 08:26 hmmmm so gross 08:26 est31 first what is _a_ "lua api" for you 08:27 est31 the lua thing called by c or the c thing called by lua 08:27 hmmmm c thing called by lua 08:27 hmmmm Lua API is the api *for* the lua scripts 08:27 hmmmm Script API is the api for minetest on how to use the mods 08:28 hmmmm aka callbacks 08:28 est31 ok 08:28 hmmmm everybody always conflates them 08:28 hmmmm night 08:28 est31 the problem with this is in my opinion that there can be still all common problems 08:28 est31 what if two threads want to set a shared variable 08:28 est31 night 08:30 VanessaE then let them both set it, whichever finishes last wins? 08:30 VanessaE (classic race condition, sure) 08:32 VanessaE it's really no different than the situation we had before when mods kept overwriting each others' global variables. 08:34 est31 well, that sounds ok as well, but it can create all these threading issues for mods. the true sandbox approach would be safer 08:35 VanessaE perhaps, but "perfect is the enemy of good" 08:35 VanessaE something like this is gonna have risks in its use no matter how locked-down you make it 08:35 VanessaE (and the more locked down, the less useful it may become) 08:35 est31 its not locked down 08:36 est31 the mapgen threads can do everything as they wanted before 08:36 VanessaE I misunderstood then 08:36 est31 they just have to send appropriate messages to the mod in the main thread 08:36 est31 and then the next server step, the list of queued messages are read, and an apropriate callback is called 08:36 est31 that callback can do anything the normal mod can do 08:36 est31 you can even send lua code as string, and then parse and execute it 08:37 est31 if you want to 08:37 VanessaE sounds fair 08:39 VanessaE in any case, all I'm trying to say is don't assume the modder is stupid. 08:39 Niebieski Parsing is slow right ? 08:39 est31 and first aquiring a lock then freeing again sounds like a hack 08:39 VanessaE users are stupid, but modders generally aren't. 08:39 est31 Niebieski, yes, therefore I've said "if you want to" 08:40 est31 VanessaE, its enough if you are unfamiliar with minetest internals no need to be stupid 08:40 VanessaE just using hmmmm's words. 09:19 VanessaE all that aside, I really think the focus needs to be on performance improvements and bugfixes, not new features. 09:20 est31 isnt threaded mapgen a performance improvement 09:20 est31 threaded lua mapgen 09:23 VanessaE not reallyt. 09:23 VanessaE I could that as a feature. 09:29 est31 perhaps you want to install a lua mapgen on one of your servers xD 09:30 VanessaE the only "lua mapgen" I use anywhere is biome_lib and it's already threaded (after a fashion) 10:05 nrzkt where does those PlayerXX comes from ... 15:10 Calinou MultiCraft, nrzkt 15:17 nrzkt Calinou, thanks, i added Player regexp to ban them like guests. 15:53 nanepiwo I'm getting this error: 15:53 nanepiwo 2015-09-27 11:50:51: ERROR[Main]: Error loading mod "minetest-caverealms": mod_name does not follow naming conventions: Only chararacters [a-z0-9_] are allowed. 15:53 nanepiwo 2015-09-27 11:50:51: ERROR[Main]: ERROR: An unhandled exception occurred: ModError: Error loading mod "minetest-caverealms": mod_name does not follow naming conventions: Only chararacters [a-z0-9_] are allowed. 15:53 nanepiwo are dashes not allowed? 15:55 T4im no :) 15:55 nrzkt reread the regex and tell me 15:55 T4im you need to rename it to "caverealms" 15:56 nanepiwo thanks 15:56 nanepiwo but how come mods like minetest-3d_armor work as a name? 15:56 T4im they are renamed to 3d_armor then 15:56 nanepiwo ah, ok 15:57 nanepiwo huh, modpacks can have dashes, that's why 15:58 T4im mod packs are not "loaded" they just group multiple mods 15:58 T4im like any subdirectory would