Time Nick Message 01:38 scr267 hello got a bug with a npb mod, anyone can help? seems the textures are positioned 50% higher than the npc box 01:38 scr267 "npb mod = npc mod" 05:09 sovetskiy hello everybody 05:09 sovetskiy how to track the event when inventory is full and nothing is added to it after attempt to take/dig something? 05:49 JayTheNinja23 hi 11:47 deltasquared I've got a query about the efficiency of ABMs when used with a neighbours specifier. looking at the code for the dynamic_liquid mod, the readme claims that the ABM is efficient because it "re-uses the engine's built-in liquid flow detection" - is this correct? I was hoping to do some ABM stuff and I'm hoping that I could make it a bit more efficient polling-based triggering 11:48 deltasquared in particular, I'm curious if such an adjacency ABM is only triggered on a "node update" of sorts within the engine, or if it's started on such an update and then triggered once per second (or whatever time period the ABM specifies) thereafter 11:49 deltasquared call it premature optimisation if you want, but let's just say that I want to ensure it remains lightweight and scalable 11:51 deltasquared if anyone wants to know the context, it's for something abusing the pipeworks mod to move liquid as items, and I kinda wanted the "absorber" node to have code run in an event-triggered manner when water source moves next to it (with the dynamic_liquids mod enabled, so this can happen) 12:28 deltasquared to give an example of the concern here (slightly degenerate but still), I would imagine that the engine is more intelligent than checking every single block of a given type continuously for an ABM trigger - if this were not the case, then an ABM on stone would bring a server to it's knees 12:29 deltasquared so say the engine notices that another block is next to stone, satisfying the ABM, and that it would make a note of that and only check again if something happened near a stone block - as blocks satisfying the condition (when neighbours are specified) can't possibly change unless a block near them changes 12:52 Krock where's wuzzy when you need him? 12:52 Krock ..or her 12:52 deltasquared Krock: what, for your thing or my thing 12:53 Krock not related to your thing 12:54 Krock the problem with ABMs is, that they should be executed whenever possible. And it's true that triggering it on "air" or "default:stone" will cause some additional load 12:55 Krock caching the affected nodes would use way too much memory per mapblock 12:55 asl97 deltasquared: abm aren't smart afaik, you can check the source here: https://github.com/minetest/minetest/blob/808ada11db2877576641380b9406756e347ce7f1/src/serverenvironment.cpp#L782 12:55 asl97 there are a number of threads and issue report relating to the slowness of abm. 12:55 Krock so, try using node timers instead of ABMs 12:56 deltasquared Krock: node timers... that's a new one. though they might suffer the same issue unless there was some way, again, to fire *something* in an event triggered many when and only when one specific block touches another specific block 12:56 deltasquared *new one to me anyway 12:56 deltasquared s/many// 12:57 Krock so.. 6 additional node checks and lua callbacks when digging, placing or erasing a node with the voxel manip? 12:58 deltasquared Krock: sans the last one, because I was under the impression voxel manip just doesn't update other things anyway 13:00 Krock s/sans/without/ 13:00 deltasquared Krock: the only other thing I could think of is an exponential (or possibly randomised) backoff between checks when the check comes up empty, and stagger the starts with a random time in a LBM, and arrange to re-invoke the callback at the random time via minetest.after 13:01 deltasquared which admittedly would possibly incur extra memory usage for all those timer events and closures 13:02 Krock do we have an issue about this already? 13:02 deltasquared Krock: about which bit sorry 13:02 deltasquared though I tend to find any such issues are worded rather differently to how I would phrase it 13:02 Krock the trigger idea. 13:03 deltasquared guess I'll go digging through the issues tracker 13:03 Krock I mean an issue on GitHub, whether we have one there already 13:04 deltasquared hmm, it does not seem so. 13:06 deltasquared I'm just looking a bit closer at the linked engine code 13:07 asl97 minetest.after don't persist, (not to mention all the other issue with it), meaning you would need to set lbm to rerun everytime the server restart, i wouldn't recommend it 13:07 asl97 instead of recreating a timer implementation, you would be better off using node timer 13:07 asl97 however, since we are talking about triggering on another mod function, it would be better to implement an hook in that function. 13:09 deltasquared asl97: "triggering on another mod function" actually the thing I would write here would have to be the initiator. 13:09 deltasquared specifically, calling pipeworks.tube_add_item() after it absorbed water blocks 13:10 deltasquared asl97: also I was under the impression LBMs triggered on a mapblock load containing the associated node every time by default 13:12 deltasquared asl97: that said, per-node timers and on_timer do look interesting, I will look into it 13:13 deltasquared I would still need some kind of "on_load" to arm the timer of course, so I'll go looking in the API for that next 13:16 asl97 daltasquard: minetest.after is different from node timer, don't confuse the two. 13:16 asl97 the last time i check, lbm don't run on newly created block, only on loading already created block which dated older than the lbm. 13:20 asl97 and it will only run once on each block unless specify otherwise 13:28 deltasquared note to self: do not sleep system while connected to IRC 13:36 deltasquared again. rip. 13:38 deltasquared Krock, asl97: it occurs to me in any case if one to implement some kind of block update mechanism, it is unclear that the gains for the efficiency of callback execution would be worth it considering the slowdown potentially incurred by such a "hot path" in the engine having to check some kind of map "these blocks need update callbacks" 13:38 deltasquared it would almost certainly have to be in the core code for node changing, and everyone would lose there if that was slowed down. 13:40 deltasquared asl97: cheers for the hints in what I missed. darn about the LBM thing though. 13:41 deltasquared in any case, I still think gradually increasing the timer delay when the block is "idle" will help, I'm just trying to figure out how I can arm the timer on map load now 13:42 deltasquared regardless of said timer backoff 13:51 deltasquared asl97: actually looking at the lbm definition in my local lua_api.txt, it does seem there is a run_at_every_load entry, so I guess I'll try that (the comment does say that if false it's only run if the map is older than LBMs are) 13:52 deltasquared print("A wild cobblestone appeared!") hehe 15:04 rdococ yay 15:15 MinetestBot 02[git] 04sfan5 -> 03minetest/minetest: Fix blocks written by vmanip not being marked as modified 13d5a97e0 https://git.io/vdUGe (152017-09-23T15:09:11Z) 16:44 Taose Hi all 16:44 Taose Map Generators... 16:44 Taose what selection do we have lately? 16:44 Taose (I lost all my minetest stuff in a format -_-, damned ubuntu corrupted everything) 16:45 Taose Also... 16:45 Taose what's the chances of generating a map from a black'n'white height map? 16:46 Krock v5,6,7,valleys,carpathian and singlenode 16:46 Krock +fractals 16:46 Krock 100% chance if you have the heightmap as bitmap to read 16:47 Taose Eh I can convert it to bitmap, any size restrictions? 16:47 Krock but it would result in a boring landscape with only two levels 16:47 Taose (This map is 64kx32k png so....) 16:48 Taose ¬_¬ 16:48 Taose It has grey in their too 16:48 Krock well, HDD size if it matters 16:48 Taose ... 16:48 * Taose picks up a grammar dictionary 16:48 Krock graytone bitmap, then 16:48 asl97 Taose: the wiki has info on those kind of things, https://wiki.minetest.net/Map_Generator 16:48 Taose O.o 16:49 Taose handy, I was checking the website and the forums, forgot about the wiki 16:49 Taose Thanks both 16:50 Krock !next 16:50 MinetestBot Another satisfied customer. Next! 16:50 Taose Do I put minetest_game inside games? 16:50 Taose (On ubuntu so had to compile from source) 16:51 Krock yes. *_game indicates that 16:51 Taose Right o, thanks very much 16:52 rdococ hi 16:52 rdococ infinite precision :P 16:52 Out`Of`Control Hi 16:53 Krock !c 0.3 - 0.2 == 0.1 16:53 MinetestBot False 16:53 rdococ heh 16:53 rdococ !c 0.1 + 0.2 == 0.3 16:53 Out`Of`Control Why my server age is 2.8 years, in real its much older? 16:53 rdococ MinetestBot, fix your math skills 16:57 Krock Out`Of`Control, it takes "game_time", which seems to be counting the seconds it's been used 17:00 Out`Of`Control Krock: dunno map is much older than that value 17:01 Taose Would I be correct in thinking the only generator that supports grayscale is Real Terrain 0.1.0? 17:02 rdococ hm 17:02 rdococ should I create a cool lua terrain generator? 17:02 rdococ I know how to create a cool desert biome with dunes if people are interested 17:03 rdococ s/create/create a function to generate/ 17:08 swift110 hey all 17:15 swift110 hey Krock 17:15 swift110 long time now see 17:16 Krock hey swift110 17:16 Krock you're alright? 17:17 rdococ hi 17:29 Taose I forgot how dark it gets in minetest... 18:10 AspireMint Hello, quick question, can i "safely" shutdown server with ^C ? Server is running but not responding. Cannot join, but mt process is running. 18:12 jas_ that's my favorite way 18:12 jas_ (yes i thinkit's ok) 18:12 AspireMint no corrupted map? 18:13 sfan5 yes but make sure to do it just once 18:13 sfan5 and no this definitely won't corrupt your map 18:13 AspireMint ok, but if yes, i will find you.. x) 18:13 rdococ lol 18:21 AspireMint ok, everything looks fine (almost got heart attack), thank you sfan5 ! 18:24 rdococ lol 18:25 rdococ I'm pretty sure ^C allows the server to proceed with its shutdown routine anyway 18:25 AspireMint well not ^C but kill command x) 18:33 habeangur if the server program does not handle CtrlC in that way, someone should add it 18:33 habeangur and I forgot what does kill send by default 18:33 habeangur but kill -2 is CtrlC 18:33 habeangur kill -15 Terminate(can handle that) 18:34 habeangur and kill -9 KILL(cannot handle that) 18:35 deltasquared habeangur: yep Ctrl-C sends SIGINT, which is signal 2. 18:35 deltasquared I would be suprised if it does not handle Ctrl-C, might have to watch that when experimenting with the server before shoving it in a systemd service 18:36 sfan5 it does handle sigint 18:40 AspireMint O.O i didnt use -9 /me hides 18:41 rdococ no, using -9 is probably a bad idea :P 18:41 AspireMint but everything is ok x) 20:17 Out`Of`Control AspireMint: you run minetest as root? 20:18 * deltasquared starts to look for buffer overflow exploits 20:18 deltasquared AspireMint: needless to say, that is not a good idea 20:37 AspireMint Out`Of`Control, sometimes x) 20:37 AspireMint often* :-D 21:04 Out`Of`Control ho had idea replacing fake fire ( homedecor) with real fire?