Time Nick Message 02:28 MTDiscord weird question but is the m_bgcolor affected by brightness 03:24 MTDiscord sfan5, https://youtu.be/pT0zbd2Y-Jc 03:25 MTDiscord yes i've actually removed more than i added back in 13:08 Guest5738 Error occur whin I open minetesr game 5.4.1win64 Microsoft Visual C++ Runtime Library ------ This application has requested the Runtime to terminate it in an unusual way . ---------Please contact the application's support team for more information. 14:28 ceddral good morning, is there currently an intended way for mods to access the allow_metadata_inventory_* callbacks? as far as i'm aware going through core.registered_items[... is not what i'm meant to do. 14:32 sfan5 access all of them at once? 14:33 MTDiscord I believe there are minetest-global-level hooks for inventory movement ... but I don't know how they interact with the per-def ones. Might be worth looking into those and maybe experimenting. 14:34 sfan5 there's minetest.register_allow_player_inventory_action and minetest.register_on_player_inventory_action for the players own inventory 14:35 sfan5 but no global hooks that'd allow you to control any interactions of a given player with node inventories 14:35 MTDiscord tbf there are a lot of things inside registered_items that don't have adequate minetest.on_something hooks and I'm tempted to rip them all out. I already had to do that with on_timer and it's already a mess, but not as bad as if I had tried to modify registered_items to monkey-patch it in... 14:35 sfan5 (just per-node in the definition as you've mentioned) 14:37 MTDiscord I think the fundamental disconnect here is that MT was designed with the idea that mods would add materials to the game, and define all of their behaviors. What I want to do is add materials and SOME behaviors in one layer, and then in higher layers, add more unifying behaviors between materials across different mods. I already ran into a case where I needed a minetest.register_nodetimer() in essence to do this, so I ended up making 14:37 MTDiscord a game-specific API. 14:38 ceddral by access i meant call not modify 14:39 ceddral currently mods that interact with inventories just seem to carry their own white/blacklists of which inventories they're allowed to take from 14:39 MTDiscord You mean basically like to determine whether a player COULD access something in order to decide whether your mod will do that thing? 14:39 ceddral yes 14:39 MTDiscord In that case, digging inside registered_items and plucking out the relevant hooks to call is probably the canonical way to do it. 14:39 sfan5 yes, it's fine if you're emulating what the engine would do 14:40 MTDiscord I do this sort of thing often enough myself that I don't really think too hard about it anymore when I do :-) 14:50 ceddral oh i think i just went down the wrong rabbit hole too, to end up at 'core.'. `ItemStack("foo"):get_definition().allow_metadata_inventory_take(...)` looks more like what i should be using 14:50 ceddral thank you two 14:51 sfan5 ItemStack("foo"):get_definition() is equivalent to minetest.registered_items[ItemStack("foo"):get_name()] 14:51 sfan5 and `core` is the internal name for `minetest` 14:51 sfan5 just fyi 14:52 ceddral perfect, thanks 14:52 MTDiscord Also it may not necessarily be safe to just call allow_metadata_inventory_take or any other hook on a definition, without checking to see whether it's actually set or not. Some attributes have a fallback default, like on_place, and I think should be always safe to call, while others may not... 14:54 ceddral time to go patch some mods :) 17:13 rubenwardy register_on_leaveplayer is no longer called in singleplayer 17:14 MTDiscord it ever was? 17:14 rubenwardy yes 17:18 Krock I don't think it ever was? 17:19 rubenwardy I remember there being code to kick players from the server before shutting down 17:23 rubenwardy lol, 5.0.0 no longer compiles for me 17:25 Krock yes. Irrlicht Mt2 is probably not compatible with 5.0.0 17:25 rubenwardy I deleted the cache, it should be picking up system irrlicht 17:25 rubenwardy the error is in finding `m_conn` in clientiface.cpp 17:25 rubenwardy I give up 18:14 sfan5 when I need to test something on old versions I usually just grab the windows build and run it in wine 18:14 rubenwardy haha that makes sense 18:15 MTDiscord outstanding move 18:15 celeron55_ wine is the universal linux ABI 18:15 celeron55_ 100% compatible, always 18:15 MTDiscord sfan5, i've done the necessary work for a properly smoothed out skybox 18:16 rubenwardy wine is a gem 18:16 MTDiscord I prefer my wine infused with subatomic particles by vaporized water 18:18 rubenwardy I prefer rum 18:19 rubenwardy A while back, some friends and I bought a variety of rum together to try it all. The best was the raspberry rum 20:25 Desour rubenwardy: probably #11246 . you have to include the stuff that is used there. (I've noticed this too recently) 20:25 ShadowBot https://github.com/minetest/minetest/issues/11246 -- Fix build for newer versions of GCC by lhofhansl 21:14 Desour FYI, there's actually a tool to check for missing and unneeded includes (https://include-what-you-use.org/). I've just tried running it on minetest, it has complaints for almost every file it seems 21:17 MTDiscord Does the tool warn about includes that are found transitively? Some people would say that transitive includes are a bad practice and are prone to causing errors. 21:18 MTDiscord BTW I've run into errors caused by transitive includes relying on certain system libs on SOL, so this is a very valid concern. 21:20 Desour it doesn't explicitly say that some specific symbol is just there because of transitive includes, so I wouldn't call it "warn". but its suggestions don't use transitive includes 21:21 Desour and there's also an option to just scream about include statements that should be added to avoid transitive include issues 21:22 Desour and I you can also allow some transitive includes via a "mapping file" 21:31 sfan5 almost all transitive includes inside the codebase should be fine 21:31 sfan5 what isn't is for system libs, since those (can) change anytime 21:43 MTDiscord And it does suck when you just want to compile something and a third party dependency blows up because GCC 10 changed an internal include they took for granted. Big pain.