Time Nick Message 15:34 MTDiscord Are particle velocities in nodes/s? 16:00 Krock @Lone_Wolf yes 16:03 independent56 I have a 2 questions about advtrains. 16:04 independent56 1 - why do routes refuse to set sometimes, forcing me to use the map to find the stopped trains andfind the front of the queue, and enable that one route? 16:05 independent56 2 - Do railway maintainers on servers suffer this problem on a regular basis? 16:05 independent56 3 - Does this happen in LF? 16:05 independent56 4 - If not, why not? 16:08 independent56 Forgive me, i lied about the quantity of questions 16:15 MTDiscord Sweet, thanks 16:17 Krock LF = linefeed 16:17 Krock CR = carriage return ?? 16:18 specing LF = linux forks 16:24 independent56 Yeah, sorry. I am used to calling it "LF" because i wrote about the server a lot (in a degrading way) in a personal document. 16:25 independent56 LF is entirely for trains. But my passion for trains caused me to overlook the quality of moderation there 16:46 erlehmann i want to create an LBM that updates node meta with new content. is it a good idea to register the lbm name based on the new content i want to put in the node meta? 16:47 SwissalpS a descriptive name is a good name :) 16:49 Krock ignore comments and descriptive names. return to minimalism. use one-letter variables and compress your code! 16:52 erlehmann SwissalpS, Krock i mean this so that if the content changes the node meta is always updated 17:01 SwissalpS something tells me we are responding to a question you did not ask. In other words: I probably didn't quite understand exactly what you are asking 17:04 MTDiscord An LBM is triggered when a node is contained in a mapblock which is just loaded, i.e. from disk or mapgen. If what you want is to set meta every time a node is actually placed into the world, then that can be more or less complex, depending on the ways that node could be placed. 17:05 MTDiscord You can use an on_construct call to catch most ways a node can be placed; you miss only vmanips and fluid transform IIRC. An LBM is useful to update nodes that already existed in the map before you add the construction hook. 17:06 erlehmann yeah so 17:07 erlehmann in this case mineclone2 has removed formspecs from node metas 17:07 erlehmann but mineclonia has them there 17:07 erlehmann you know, it's the lag friendly solution 17:07 erlehmann so if you migrate a server from mineclone2 past commit 819dbc6224c3b96ad4094cccf3d9150f3ef61d45 to mineclonia, ender chests will not work 17:08 erlehmann i want to introduce an LBM that sets the formspec for existing ender chests 17:08 erlehmann it is, as Warr1024 correctly assumed, usually set when an ender chest is built 17:09 SwissalpS yeah, sounds like lbm can help there. one time only needed, most likely. 17:09 erlehmann well, the trick is: by making the name of the lbm depend on the formspec using minetest.sha1(formspec) (is that correct?), i want to ensure that every time the formspec is updated, a new lbm is created. 17:10 erlehmann now i am looking for reasons to not do that 17:10 MTDiscord LBMs have to have a modname: prefix, but other than that, I don't see much problem with that idea 17:10 MTDiscord except in the case where they change the formspec to A, then to B, then back to A again 17:11 SwissalpS one would need to carefully test that with every update 17:11 MTDiscord yeah, it feels like either manual versioning, or an external script that's a bit more complex than just the formspec contents itself, would be needed. 17:11 SwissalpS you can also leave a trail in the meta of the node too. 17:12 erlehmann wdym trail 17:13 MTDiscord Keeping track of past values in the node won't help you inform the engine of the need to run an LBM to find those nodes in the first place though. 17:13 SwissalpS most likely the lbm that deletes meta does not delete all entries, only certain known ones. so your own meta would stay untouched. Alowing you to check it and other meta entries to determine what needs to be added. you could cache data in your own keys for example 17:13 MTDiscord So if they change the formspec from A to B to A2 then you'll need to retire the A and the B LBMs and have an A2 one to make sure that all the ones that have run both A and B go back to A again. 17:14 erlehmann nah in this case the meta is pretty easy 17:14 SwissalpS Warr: true, unless you have the lbm run on every load and look for specific node. 17:14 MTDiscord You ... frankly could just run on every load I guess :-) 17:14 MTDiscord Checking a meta string is not THAT expensive. 17:14 SwissalpS it sounds like the simpler solution yes. 17:15 MTDiscord The wasted effort of rechecking a handful of nodes unnecessarily may be well worth it to avoid the headaches of having to track down every weird corner cases that upstream changes may trigger. 17:15 SwissalpS +1 17:15 MTDiscord Just (1) try the run_on_every_load option or whatever it's called, and then (2) don't worry about it again unless you encounter a problem with it, and then come back and ask again :-) 17:16 MTDiscord Ender chests should be rare enough that you wouldn't notice a problem anyway. Somebody would have to build an entire fortress out of the things before e.g. slow loading times from this should become a problem. 17:17 SwissalpS dynamically creating lbms sounds like asking for trouble 17:18 MTDiscord I mean, modding MT is asking for trouble to begin with ... and automatic dynamic LBMs sounds interesting :-) 17:18 MTDiscord If you don't like asking for trouble then you don't want to see what I've done with ABMs :-) 17:19 erlehmann Warr1024 show and tell 17:20 erlehmann pls 17:21 MTDiscord Exhibit A: the engine caches info about ABMs for speed, but the cache strategy is completely disabled if there are more than like 63 ABMs. I have a game that has 82 ABMs. I realize that many of them have similar signatures from the engine's perspective, so I create a system for automatically multiplexing them that allows me to squash them into about 36 and make caching work again. 17:21 MTDiscord https://gitlab.com/sztest/nodecore/-/blob/master/mods/nc_api_active/abmmux.lua 17:23 MTDiscord Exhibit B: ABM neighbor checks are expensive, so if you want an ABM to run when common node A is next to rare node B, it's more efficient to check for B next to A, but I have a number of ABMs already written in the first form, and it would be a pain to invert them across the whole mod ecosystem. Instead, I'd rather just add a "neighbor_invert" flag to the ABM API that does this for me in the most reasonable way I can: 17:23 MTDiscord https://gitlab.com/sztest/nodecore/-/blob/master/mods/nc_api_active/abminvert.lua 17:24 MTDiscord There's probably other crazy stuff in there too. I used to have an auto-rate-limiting ABM system, but that ended up being stubbed out as ABM time budgeting constraints have evolved to make it no longer make sense. 17:25 erlehmann Warr1024 what is the reason for the caching being disabled? 17:48 robyndrake what version of lua is used with minetest, and where can I download such an interpretor? 17:50 robyndrake please? 17:51 Krock Lua 5.1 17:51 Krock with with JIT or without 17:51 Krock luarocks might use it, dunno. 17:52 MTDiscord erlehmann: A single 64-bit integer is used as a bitmap to track the applicable/not-applicable state of an ABM within a given mapblock, and if there are too many ABMs to fit in that bitmap then it just gives up on the whole thing. I don't know exactly why it was done this way or what would have had to be done differently to allow it to expand dynamically. 17:54 robyndrake will lua 5.1.5 work Krock, and thank you btw 17:54 Krock robyndrake: yes 17:54 robyndrake Thank you again 17:55 Krock !next 17:55 MinetestBot Another satisfied customer. Next! 21:25 erlehmann https://content.minetest.net/help/content_flags/ 21:25 erlehmann the content flags are all for disgusting stuff 21:26 erlehmann i guess buttplug.io interfacing would be banned :( 21:26 erlehmann oh 21:26 erlehmann i can just say it is for the xbox controller ^^ 21:26 erlehmann of my … xbox 21:26 erlehmann hehe 21:35 MTDiscord Not necessarily "disgusting" but "potentially objectionable". Tags are things you'd be looking to find, content flags are things you'd be looking to avoid. 21:36 MTDiscord I believe the de facto standard is that content with no content flags should be PEGI7 and content flags allow for specific exceptions to that standard where set. 21:37 MTDiscord Of course there are some packages that use them incorrectly, like a few that use the "horror" flag somewhat tongue-in-cheek. 22:35 Calinou Map Tools 2.2.0 released. Coin crafting recipes are now disabled by default: https://github.com/minetest-mods/maptools/releases/tag/v2.2.0 22:44 Calinou also More Blocks 2.2.0: https://github.com/minetest-mods/moreblocks/releases/tag/v2.2.0 22:44 Calinou and More Ores 2.1.0: https://github.com/minetest-mods/moreores/releases/tag/v2.1.0 23:39 MTDiscord Nice updates :+1: